/**
  * @param \EE_Message_Resource_Manager $message_resource_manager
  * @return array|bool
  * @throws \EE_Error
  */
 protected static function _activate_new_message_types_for_active_messengers_and_generate_default_templates(EE_Message_Resource_Manager $message_resource_manager)
 {
     /** @type EE_messenger[] $active_messengers */
     $active_messengers = $message_resource_manager->active_messengers();
     $installed_message_types = $message_resource_manager->installed_message_types();
     $templates_created = false;
     foreach ($active_messengers as $active_messenger) {
         $default_message_type_names_for_messenger = $active_messenger->get_default_message_types();
         $default_message_type_names_to_activate = array();
         // looping through each default message type reported by the messenger
         // and setup the actual message types to activate.
         foreach ($default_message_type_names_for_messenger as $default_message_type_name_for_messenger) {
             // if already active or has already been activated before we skip
             // (otherwise we might reactivate something user's intentionally deactivated.)
             // we also skip if the message type is not installed.
             if ($message_resource_manager->has_message_type_been_activated_for_messenger($default_message_type_name_for_messenger, $active_messenger->name) || $message_resource_manager->is_message_type_active_for_messenger($active_messenger->name, $default_message_type_name_for_messenger) || !isset($installed_message_types[$default_message_type_name_for_messenger])) {
                 continue;
             }
             $default_message_type_names_to_activate[] = $default_message_type_name_for_messenger;
         }
         //let's activate!
         $message_resource_manager->ensure_message_types_are_active($default_message_type_names_to_activate, $active_messenger->name, false);
         //activate the templates for these message types
         if (!empty($default_message_type_names_to_activate)) {
             $templates_created = EEH_MSG_Template::generate_new_templates($active_messenger->name, $default_message_type_names_for_messenger, '', true);
         }
     }
     return $templates_created;
 }