Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        // 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);
        }