From 7990d269aa9832f10447fc8a75be616c587fe9df Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Sun, 25 Dec 2022 16:58:13 +0300 Subject: [PATCH] refactored icon manager --- .../lite/ui/components/IconManager.java | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/IconManager.java b/app/src/main/java/ru/vtosters/lite/ui/components/IconManager.java index 85179f82d..42ea38784 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/IconManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/IconManager.java @@ -1,15 +1,10 @@ package ru.vtosters.lite.ui.components; -import static ru.vtosters.lite.utils.AndroidUtils.edit; -import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; -import static ru.vtosters.lite.utils.AndroidUtils.getPackageName; -import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; -import static ru.vtosters.lite.utils.Preferences.hasVerification; -import static ru.vtosters.lite.utils.Preferences.isValidSignature; - import android.content.ComponentName; import android.content.pm.PackageManager; import android.util.Log; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.Preferences; import java.util.Arrays; import java.util.List; @@ -44,11 +39,11 @@ public class IconManager { ); public static List icons() { - return hasVerification() && isValidSignature() ? sIconsPlusNames : sIconsNames; // delete later sdk check + return Preferences.hasVerification() && Preferences.isValidSignature() ? sIconsPlusNames : sIconsNames; // delete later sdk check } public static List iconsValues() { - return hasVerification() && isValidSignature() ? sIconsPlus : sIcons; // delete later sdk check + return Preferences.hasVerification() && Preferences.isValidSignature() ? sIconsPlus : sIcons; // delete later sdk check } public static void switchComponent(String icon, String appName, String oldIcon, String oldAppName) { @@ -64,7 +59,7 @@ public class IconManager { Log.d("IconManager", "iconSwitcher: icon = " + icon + ", appname = " + appName); - List iconsList = (hasVerification() && isValidSignature()) ? sIconsPlus : sIcons; + List iconsList = (Preferences.hasVerification() && Preferences.isValidSignature()) ? sIconsPlus : sIcons; List labelsList = sLabels; if (oldIcon != null && oldAppName != null) { @@ -82,10 +77,15 @@ public class IconManager { // get labels index labelIndex = labelsList.indexOf(appName); - String currentState = getPreferences().getString("components_enabled", "11"); + String currentState = "11"; - if (oldIconIndex != -1 && oldLabelIndex != -1) { - currentState = oldIconIndex + "" + oldLabelIndex; + main: for (int i = 0; i < iconsList.size(); i++) { + for (int o = 0; o < labelsList.size(); o++) { + if (isComponentEnabled("id" + i + "" + o)) { + currentState = i + "" + o; + break main; + } + } } String newState = iconIndex + "" + labelIndex; @@ -96,17 +96,19 @@ public class IconManager { // disable current component to prevent conflict with custom value switchIcon("id" + currentState, false); - // save custom value - edit().putString("components_enabled", newState).commit(); // enable custom value switchIcon("id" + newState, true); } // Component switcher for changing app icon public static void switchIcon(String componentName, Boolean enabled) { - getGlobalContext().getPackageManager().setComponentEnabledSetting( - new ComponentName(getPackageName(), getPackageName() + "." + componentName), + AndroidUtils.getGlobalContext().getPackageManager().setComponentEnabledSetting( + new ComponentName(AndroidUtils.getPackageName(), AndroidUtils.getPackageName() + "." + componentName), enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } + + public static boolean isComponentEnabled(String componentName) { + return AndroidUtils.getGlobalContext().getPackageManager().getComponentEnabledSetting(new ComponentName(AndroidUtils.getPackageName(), AndroidUtils.getPackageName() + "." + componentName)) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; + } }