/// <summary> /// Gets all Android permissions required by the given module if it's enabled. /// If the module is disable, an empty list will be returned. /// </summary> /// <returns>The android permissions required by module.</returns> /// <param name="mod">Mod.</param> internal static List <AndroidPermission> GetAndroidPermissionsRequiredByModule(Module mod) { var modulePermissions = new List <AndroidPermission>(); var manager = GetModuleManager(mod); if (manager == null) { return(modulePermissions); } // Is this composite module? var compManager = manager as CompositeModuleManager; if (compManager != null) // Is a composite module { foreach (Submodule submod in compManager.SelfSubmodules) { if (EM_Settings.IsSubmoduleEnable(submod) && compManager.AndroidPermissionHolderForSubmodule(submod) != null) { modulePermissions.AddRange(compManager.AndroidPermissionHolderForSubmodule(submod).GetAndroidPermissions()); } } } else // Is a normal module { if (EM_Settings.IsModuleEnable(mod) && manager.AndroidPermissionsHolder != null) { modulePermissions.AddRange(manager.AndroidPermissionsHolder.GetAndroidPermissions()); } } return(modulePermissions); }
/// <summary> /// Gets all iOS Info.plist items required by the given module if it's enabled. /// If the module is disable, an empty list will be returned. /// </summary> /// <returns>The IOS info items required by module.</returns> /// <param name="mod">Mod.</param> internal static List <iOSInfoPlistItem> GetIOSInfoItemsRequiredByModule(Module mod) { var moduleInfoItems = new List <iOSInfoPlistItem>(); var manager = GetModuleManager(mod); if (manager == null) { return(moduleInfoItems); } // Is this composite module? var compManager = manager as CompositeModuleManager; if (compManager != null) // Is a composite module { foreach (Submodule submod in compManager.SelfSubmodules) { if (EM_Settings.IsSubmoduleEnable(submod) && compManager.iOSInfoItemsHolderForSubmodule(submod) != null) { moduleInfoItems.AddRange(compManager.iOSInfoItemsHolderForSubmodule(submod).GetIOSInfoPlistKeys()); } } } else // Is a normal module { if (EM_Settings.IsModuleEnable(mod) && manager.iOSInfoItemsHolder != null) { moduleInfoItems.AddRange(manager.iOSInfoItemsHolder.GetIOSInfoPlistKeys()); } } return(moduleInfoItems); }
// Makes sure that everything is set up properly so that all modules function as expected. internal static void CheckModules() { foreach (Module mod in Enum.GetValues(typeof(Module))) { var manager = GetModuleManager(mod); if (manager == null) { continue; } // Is this composite module? var compManager = manager as CompositeModuleManager; if (compManager != null) // Is really a composite module { foreach (Submodule submod in compManager.SelfSubmodules) { if (EM_Settings.IsSubmoduleEnable(submod)) { compManager.EnableSubmodule(submod); } else { compManager.DisableSubmodule(submod); } } } else // Is a normal module { if (EM_Settings.IsModuleEnable(mod)) { manager.EnableModule(); } else { manager.DisableModule(); } } } }
internal static List <string> GetAndroidManifestTemplatePathsForModule(Module mod) { var paths = new List <string>(); var manager = EM_PluginManager.GetModuleManager(mod); if (manager == null) { return(paths); } // Is this composite module? var compManager = manager as CompositeModuleManager; if (compManager != null) // Is a composite module { foreach (Submodule submod in compManager.SelfSubmodules) { if (EM_Settings.IsSubmoduleEnable(submod)) { var submodPaths = compManager.AndroidManifestTemplatePathsForSubmodule(submod); if (submodPaths != null && submodPaths.Count > 0) { paths.AddRange(submodPaths); } } } } else // Is a normal module { if (EM_Settings.IsModuleEnable(mod)) { paths = manager.AndroidManifestTemplatePaths; } } return(paths); }