/**
  * This returns the default messengers to generate templates for on activation of EE.
  * It considers:
  * - whether a messenger is already active in the db.
  * - whether a messenger has been made active at any time in the past.
  *
  * @static
  * @param  EE_Message_Resource_Manager $message_resource_manager
  * @return EE_messenger[]
  */
 protected static function _get_default_messengers_to_generate_on_activation(EE_Message_Resource_Manager $message_resource_manager)
 {
     $active_messengers = $message_resource_manager->active_messengers();
     $installed_messengers = $message_resource_manager->installed_messengers();
     $has_activated = $message_resource_manager->get_has_activated_messengers_option();
     $messengers_to_generate = array();
     foreach ($installed_messengers as $installed_messenger) {
         //if installed messenger is a messenger that should be activated on install
         //and is not already active
         //and has never been activated
         if (!$installed_messenger->activate_on_install || isset($active_messengers[$installed_messenger->name]) || isset($has_activated[$installed_messenger->name])) {
             continue;
         }
         $messengers_to_generate[$installed_messenger->name] = $installed_messenger;
     }
     return $messengers_to_generate;
 }