Exemple #1
0
        /// <summary>
        /// Populate the grid from installed apps
        /// </summary>
        /// <returns></returns>
        private async Task PopulateAsync()
        {
            // Load configuration
            Config config = new Config();

            ConfigPersistence.LoadConfig(config);

            // Process apps in background
            var apps = await Task.Run(() =>
            {
                AndroidJNI.AttachCurrentThread();

                try
                {
                    return(AppProcessor.ProcessApps(config));
                }
                finally
                {
                    AndroidJNI.DetachCurrentThread();
                }
            });

            // Populate the panel content
            await PopulatePanelContentAsync(config, apps);
        }
Exemple #2
0
        public void OnSkyboxSelected(string skyboxPath)
        {
            // Update text
            this.skyBoxButton.GetComponentInChildren <TextMeshProUGUI>().text = SkyboxHandler.GetSkyboxNameFromPath(skyboxPath);

            // Save config with new skybox selection
            if (!this.config.background.Equals(skyboxPath, StringComparison.OrdinalIgnoreCase))
            {
                this.config.background = skyboxPath;
                ConfigPersistence.SaveConfig(this.config);
            }
        }
        /// <summary>
        /// Populate the grid from installed apps
        /// </summary>
        /// <returns></returns>
        private async Task PopulateAsync(bool isRenameMode = false)
        {
            // Load configuration
            var config = ConfigPersistence.LoadConfig();

            // Set skybox
            if (!isRenameMode)
            {
                this.skyboxHandler.SetSkybox(config.background);
            }

            // Process apps in background
            var apps = await Task.Run(() =>
            {
                AndroidJNI.AttachCurrentThread();

                try
                {
                    return(AppProcessor.ProcessApps(config, isRenameMode));
                }
                finally
                {
                    AndroidJNI.DetachCurrentThread();
                }
            });

            // Download updates in the background
            if (!isRenameMode && config.autoUpdate && !GlobalState.Instance.CheckedForUpdate)
            {
                GlobalState.Instance.CheckedForUpdate = true;
                AssetsDownloader.DownloadAssetsAsync(config, this.downloadStatusIndicator);
            }

            // Populate the panel content
            if (!isRenameMode)
            {
                await PopulatePanelContentAsync(config, apps);
            }
            else
            {
                await PopulateRenamePanelContentAsync(config, apps);
            }
        }
        public void OpenSettings()
        {
            Debug.Log("Open Settings");
            this.panelContainer.SetActive(false);
            this.openSettingsButton.SetActive(false);
            this.closeSettingsButton.SetActive(true);
            this.settingsContainer.SetActive(true);

            // Load config
            ConfigPersistence.LoadConfig(this.config);

            // Set current cols & rows
            var colsSlider = this.gridCols.GetComponent <Slider>();

            colsSlider.value = this.config.gridSize.cols;
            var colsText = this.gridColsText.GetComponent <TextMeshProUGUI>();

            colsText.text = string.Format("{0} Cols", this.config.gridSize.cols);

            var rowsSlider = this.gridRows.GetComponent <Slider>();

            rowsSlider.value = this.config.gridSize.rows;

            var rowsText = this.gridRowsText.GetComponent <TextMeshProUGUI>();

            rowsText.text = string.Format("{0} Rows", this.config.gridSize.rows);

            // Set 2D toggle
            this.show2DToggle.GetComponent <Toggle>().SetIsOnWithoutNotify(this.config.show2D);

            // Set auto tab mode
            if (this.config.autoCategory.Equals(Config.Category_Top, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoTop.isOn = true;
            }
            else if (this.config.autoCategory.Equals(Config.Category_Left, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoLeft.isOn = true;
            }
            else if (this.config.autoCategory.Equals(Config.Category_Right, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoRight.isOn = true;
            }
            else
            {
                this.tabsAutoOff.isOn = true;
            }

            // Set custom tab mode
            if (this.config.customCategory.Equals(Config.Category_Top, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomTop.isOn = true;
            }
            else if (this.config.customCategory.Equals(Config.Category_Left, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomLeft.isOn = true;
            }
            else if (this.config.customCategory.Equals(Config.Category_Right, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomRight.isOn = true;
            }
            else
            {
                this.tabsCustomOff.isOn = true;
            }
        }
        private void PersistConfig()
        {
            bool saveConfig = false;

            // Update grid size
            var cols = (int)gridCols.GetComponent <Slider>().value;
            var rows = (int)gridRows.GetComponent <Slider>().value;

            if (cols != this.config.gridSize.cols ||
                rows != this.config.gridSize.rows)
            {
                this.config.gridSize.cols = cols;
                this.config.gridSize.rows = rows;
                saveConfig = true;
            }

            // Update 2D toggle
            var show2D = this.show2DToggle.GetComponent <Toggle>().isOn;

            if (show2D != this.config.show2D)
            {
                this.config.show2D = show2D;
                saveConfig         = true;
            }

            // Update auto tab mode
            string tabAutoMode;

            if (this.tabsAutoTop.isOn)
            {
                tabAutoMode = Config.Category_Top;
            }
            else if (this.tabsAutoLeft.isOn)
            {
                tabAutoMode = Config.Category_Left;
            }
            else if (this.tabsAutoRight.isOn)
            {
                tabAutoMode = Config.Category_Right;
            }
            else
            {
                tabAutoMode = Config.Category_Off;
            }

            if (!this.config.autoCategory.Equals(tabAutoMode, StringComparison.OrdinalIgnoreCase))
            {
                this.config.autoCategory = tabAutoMode;
                saveConfig = true;
            }

            // Update auto tab mode
            string tabCustomMode;

            if (this.tabsCustomTop.isOn)
            {
                tabCustomMode = Config.Category_Top;
            }
            else if (this.tabsCustomLeft.isOn)
            {
                tabCustomMode = Config.Category_Left;
            }
            else if (this.tabsCustomRight.isOn)
            {
                tabCustomMode = Config.Category_Right;
            }
            else
            {
                tabCustomMode = Config.Category_Off;
            }

            if (!this.config.customCategory.Equals(tabCustomMode, StringComparison.OrdinalIgnoreCase))
            {
                this.config.customCategory = tabCustomMode;
                saveConfig = true;
            }

            // Persist configuration & re-populate
            if (saveConfig)
            {
                ConfigPersistence.SaveConfig(this.config);
            }

            // If we touched the config file or we deleted the hidden apps file, re-populate the grid
            if (saveConfig || deletedHiddenAppsFile)
            {
                Debug.Log("Re-populating panel");
                SceneManager.LoadScene(SceneManager.GetActiveScene().name);
            }
        }
Exemple #6
0
        public void OpenSettings()
        {
            Debug.Log("Open Settings");
            this.panelContainer.SetActive(false);
            this.openSettingsButton.SetActive(false);
            this.closeSettingsButton.SetActive(true);
            this.settingsContainer.SetActive(true);

            this.deletedHiddenAppsFile = false;
            this.deletedRenameFiles    = false;

            // Load config
            this.config = ConfigPersistence.LoadConfig();

            // Skybox callback
            this.skyboxHandler.OnSkyboxSelected = OnSkyboxSelected;

            // Set current cols & rows
            var colsSlider = this.gridCols.GetComponent <Slider>();

            colsSlider.value = this.config.gridSize.cols;
            var colsText = this.gridColsText.GetComponent <TextMeshProUGUI>();

            colsText.text = string.Format("{0} Cols", this.config.gridSize.cols);

            var rowsSlider = this.gridRows.GetComponent <Slider>();

            rowsSlider.value = this.config.gridSize.rows;

            var rowsText = this.gridRowsText.GetComponent <TextMeshProUGUI>();

            rowsText.text = string.Format("{0} Rows", this.config.gridSize.rows);

            // initialize sort mode
            InitializeSortMode();

            // Set 2D toggle
            this.show2DToggle.GetComponent <Toggle>().SetIsOnWithoutNotify(this.config.show2D);

            // Set skybox button text
            this.skyBoxButton.GetComponentInChildren <TextMeshProUGUI>().text = SkyboxHandler.GetSkyboxNameFromPath(this.config.background);

            // Set auto-update toggle
            this.autoUpdateToggle.GetComponent <Toggle>().SetIsOnWithoutNotify(this.config.autoUpdate);

            // Set auto tab mode
            if (this.config.autoCategory.Equals(Config.Category_Top, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoTop.isOn = true;
            }
            else if (this.config.autoCategory.Equals(Config.Category_Left, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoLeft.isOn = true;
            }
            else if (this.config.autoCategory.Equals(Config.Category_Right, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsAutoRight.isOn = true;
            }
            else
            {
                this.tabsAutoOff.isOn = true;
            }

            // Set custom tab mode
            if (this.config.customCategory.Equals(Config.Category_Top, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomTop.isOn = true;
            }
            else if (this.config.customCategory.Equals(Config.Category_Left, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomLeft.isOn = true;
            }
            else if (this.config.customCategory.Equals(Config.Category_Right, StringComparison.OrdinalIgnoreCase))
            {
                this.tabsCustomRight.isOn = true;
            }
            else
            {
                this.tabsCustomOff.isOn = true;
            }
        }