/**
  * @param \EE_messenger    $messenger
  * @param \EE_message_type $message_type
  * @param                  $GRP_ID
  * @param                  $global
  * @return array|mixed
  */
 protected static function _create_new_templates(EE_messenger $messenger, EE_message_type $message_type, $GRP_ID, $global)
 {
     //if we're creating a custom template then we don't need to use the defaults class
     if (!$global) {
         return EEH_MSG_Template::_create_custom_template_group($messenger, $message_type, $GRP_ID);
     }
     /** @type EE_Messages_Template_Defaults $Message_Template_Defaults */
     $Message_Template_Defaults = EE_Registry::factory('EE_Messages_Template_Defaults', array($messenger, $message_type, $GRP_ID));
     //generate templates
     $success = $Message_Template_Defaults->create_new_templates();
     //if creating the template failed.  Then we should deactivate the related message_type for the messenger because
     //its not active if it doesn't have a template.  Note this is only happening for GLOBAL template creation
     //attempts.
     if (!$success) {
         /** @var EE_Message_Resource_Manager $message_resource_manager */
         $message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
         $message_resource_manager->deactivate_message_type_for_messenger($message_type->name, $messenger->name);
     }
     /**
      * $success is in an array in the following format
      * array(
      *    'GRP_ID' => $new_grp_id,
      *    'MTP_context' => $first_context_in_new_templates,
      * )
      */
     return $success;
 }