diff --git a/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java b/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java index 83fbb39e9..4423cfdae 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java @@ -39,8 +39,7 @@ public class MainActivityInjector { NotificationChannels.createChannels(); } - if(Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) { - Preferences.updateBuildNumber(); + if (AndroidUtils.isInstallFromUpdate(activity) && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) { updateBinsAndTmpArchive(activity); } diff --git a/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java b/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java index 07b979a79..9eae929ed 100644 --- a/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java +++ b/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java @@ -8,6 +8,7 @@ import com.google.devrel.gmscore.tools.apk.arsc.BinaryResourceFile; import com.vtosters.lite.R; import ru.vtosters.lite.themes.loaders.ResourcesLoader; import ru.vtosters.lite.themes.utils.ArscEditor; +import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.IOUtils; import ru.vtosters.lite.utils.Preferences; import ru.vtosters.lite.utils.ThemesUtils; @@ -119,7 +120,7 @@ public class ThemesManager { initPaths(app); validateModApk(); - if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) { + if (!AndroidUtils.isInstallFromUpdate(app) && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) { ResourcesLoader.init(app); ResourcesLoader.load(app, modApk.getAbsolutePath(), false); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java index 91ef40e58..e66516c7c 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -200,4 +200,15 @@ public class AndroidUtils { } return null; } + + public static boolean isInstallFromUpdate(Context context) { + try { + long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime; + long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime; + return firstInstallTime != lastUpdateTime; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return false; + } + } } \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java index 9b2d546b8..b29904031 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -289,16 +289,6 @@ public class Preferences { public static boolean checkupdates() { return !getBoolValue("isRoamingState", false) && isValidSignature() && BuildConfig.BUILD_TYPE.equals("release"); } - - public static boolean isNewBuild() { - return !getPreferences().getString("build_number", "") - .equals(About.getBuildNumber()); - } - - public static void updateBuildNumber() { - getPreferences().edit().putString("build_number", About.getBuildNumber()).commit(); - } - public static boolean isValidSignature() { try { return validateAppSignature();