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 4423cfdae..699919834 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java @@ -8,7 +8,6 @@ import com.vk.core.dialogs.alert.VkAlertDialog; import com.vtosters.lite.R; import ru.vtosters.lite.concurrent.VTExecutors; import ru.vtosters.lite.downloaders.notifications.NotificationChannels; -import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook; import ru.vtosters.lite.ssfs.UsersList; import ru.vtosters.lite.themes.ThemesManager; import ru.vtosters.lite.ui.dialogs.DisableBattery; @@ -39,7 +38,8 @@ public class MainActivityInjector { NotificationChannels.createChannels(); } - if (AndroidUtils.isInstallFromUpdate(activity) && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) { + if (Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) { + Preferences.updateBuildNumber(); 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 9eae929ed..888408864 100644 --- a/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java +++ b/app/src/main/java/ru/vtosters/lite/themes/ThemesManager.java @@ -120,7 +120,7 @@ public class ThemesManager { initPaths(app); validateModApk(); - if (!AndroidUtils.isInstallFromUpdate(app) && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) { + if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) { ResourcesLoader.init(app); ResourcesLoader.load(app, modApk.getAbsolutePath(), false); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java index b60848dc0..eca713aa9 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Start.java @@ -17,7 +17,7 @@ public class Start { if (Build.VERSION.SDK_INT >= 23) { activity.requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 228); } - if (getBoolValue("showAlert", true)) + if (getBoolValue("showAlert", true) && AndroidUtils.isFirstInstall(activity)) new VkAlertDialog.Builder(activity) .setTitle(R.string.warning) .setMessage(getWelcome()) 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 e66516c7c..c0cbb70b6 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -201,14 +201,14 @@ public class AndroidUtils { return null; } - public static boolean isInstallFromUpdate(Context context) { + public static boolean isFirstInstall(Context context) { try { long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime; long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime; - return firstInstallTime != lastUpdateTime; + return firstInstallTime == lastUpdateTime; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); - return false; + return true; } } } \ 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 b29904031..957d16177 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -16,6 +16,7 @@ import java.security.NoSuchAlgorithmException; import static java.lang.Long.MAX_VALUE; import static ru.vtosters.lite.proxy.ProxyUtils.setProxy; import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; +import static ru.vtosters.lite.utils.AndroidUtils.getPackageName; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters; import static ru.vtosters.lite.utils.SignatureChecker.validateAppSignature; import static ru.vtosters.lite.utils.VTVerifications.isPrometheus; @@ -289,6 +290,24 @@ public class Preferences { public static boolean checkupdates() { return !getBoolValue("isRoamingState", false) && isValidSignature() && BuildConfig.BUILD_TYPE.equals("release"); } + + public static boolean isNewBuild() { + try { + return getPreferences().getLong("setupTime", 0L) != AndroidUtils.getGlobalContext().getPackageManager().getPackageInfo(getPackageName(), 0).lastUpdateTime; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return false; + } + } + + public static void updateBuildNumber() { + try { + getPreferences().edit().putLong("setupTime", AndroidUtils.getGlobalContext().getPackageManager().getPackageInfo(getPackageName(), 0).lastUpdateTime).apply(); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + } + public static boolean isValidSignature() { try { return validateAppSignature();