fixed cringe build update detection

This commit is contained in:
gdlbo
2023-03-25 22:24:33 +03:00
parent ababaad45f
commit ed751bdc30
4 changed files with 14 additions and 13 deletions
@@ -39,8 +39,7 @@ public class MainActivityInjector {
NotificationChannels.createChannels(); NotificationChannels.createChannels();
} }
if(Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) { if (AndroidUtils.isInstallFromUpdate(activity) && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) {
Preferences.updateBuildNumber();
updateBinsAndTmpArchive(activity); updateBinsAndTmpArchive(activity);
} }
@@ -8,6 +8,7 @@ import com.google.devrel.gmscore.tools.apk.arsc.BinaryResourceFile;
import com.vtosters.lite.R; import com.vtosters.lite.R;
import ru.vtosters.lite.themes.loaders.ResourcesLoader; import ru.vtosters.lite.themes.loaders.ResourcesLoader;
import ru.vtosters.lite.themes.utils.ArscEditor; import ru.vtosters.lite.themes.utils.ArscEditor;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.IOUtils; import ru.vtosters.lite.utils.IOUtils;
import ru.vtosters.lite.utils.Preferences; import ru.vtosters.lite.utils.Preferences;
import ru.vtosters.lite.utils.ThemesUtils; import ru.vtosters.lite.utils.ThemesUtils;
@@ -119,7 +120,7 @@ public class ThemesManager {
initPaths(app); initPaths(app);
validateModApk(); validateModApk();
if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) { if (!AndroidUtils.isInstallFromUpdate(app) && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) {
ResourcesLoader.init(app); ResourcesLoader.init(app);
ResourcesLoader.load(app, modApk.getAbsolutePath(), false); ResourcesLoader.load(app, modApk.getAbsolutePath(), false);
} }
@@ -200,4 +200,15 @@ public class AndroidUtils {
} }
return null; 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;
}
}
} }
@@ -289,16 +289,6 @@ public class Preferences {
public static boolean checkupdates() { public static boolean checkupdates() {
return !getBoolValue("isRoamingState", false) && isValidSignature() && BuildConfig.BUILD_TYPE.equals("release"); 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() { public static boolean isValidSignature() {
try { try {
return validateAppSignature(); return validateAppSignature();