From 768b71940202fd0b9ad4ce48354d0a674f58951e Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 28 Aug 2023 15:05:38 +0530 Subject: [PATCH 1/4] Updater: Fix version not displaying build name - Our version is not full integers Change-Id: I22f028bbd4033049bfd022604cda06fb315644f2 --- .../java/org/lineageos/updater/UpdaterReceiver.java | 3 +-- .../java/org/lineageos/updater/UpdatesActivity.java | 2 +- .../org/lineageos/updater/UpdatesListAdapter.java | 2 +- .../main/java/org/lineageos/updater/misc/Utils.java | 11 ----------- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/lineageos/updater/UpdaterReceiver.java b/app/src/main/java/org/lineageos/updater/UpdaterReceiver.java index 6584c04d..081b8d97 100644 --- a/app/src/main/java/org/lineageos/updater/UpdaterReceiver.java +++ b/app/src/main/java/org/lineageos/updater/UpdaterReceiver.java @@ -31,7 +31,6 @@ import androidx.preference.PreferenceManager; import org.lineageos.updater.misc.BuildInfoUtils; import org.lineageos.updater.misc.Constants; import org.lineageos.updater.misc.StringGenerator; -import org.lineageos.updater.misc.Utils; import java.text.DateFormat; @@ -62,7 +61,7 @@ public class UpdaterReceiver extends BroadcastReceiver { String buildDate = StringGenerator.getDateLocalizedUTC(context, DateFormat.MEDIUM, preferences.getLong(Constants.PREF_INSTALL_NEW_TIMESTAMP, 0)); String buildInfo = context.getString(R.string.list_build_version_date_e, - Utils.getDisplayVersion(BuildInfoUtils.getBuildVersion()), buildDate); + BuildInfoUtils.getBuildVersion(), buildDate); Intent notificationIntent = new Intent(context, UpdatesActivity.class); PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, diff --git a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java index 1161a82b..181d0871 100644 --- a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java +++ b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java @@ -175,7 +175,7 @@ public class UpdatesActivity extends UpdatesListActivity { TextView headerTitle = findViewById(R.id.header_title); headerTitle.setText(getString(R.string.header_title_text_e, - Utils.getDisplayVersion(BuildInfoUtils.getDisplayVersion()))); + BuildInfoUtils.getDisplayVersion())); updateLastCheckedString(); diff --git a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java index 775584f4..04bfb5f9 100644 --- a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java +++ b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java @@ -271,7 +271,7 @@ public class UpdatesListAdapter extends RecyclerView.Adapter= 20) ? String.valueOf((int)floatVersion) : version; - } } -- GitLab From 7f9cab7b2898175889627316cb68cc2f90f1503a Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 28 Aug 2023 15:48:34 +0530 Subject: [PATCH 2/4] Updater: Cleanup check for update code - Remove unused code. - Use variable for duplicated code of lines. Change-Id: Iad699dcd958f0f99e9aec72b02f3c7d778e15d5f --- .../java/org/lineageos/updater/misc/Utils.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/lineageos/updater/misc/Utils.java b/app/src/main/java/org/lineageos/updater/misc/Utils.java index b968c059..77487965 100644 --- a/app/src/main/java/org/lineageos/updater/misc/Utils.java +++ b/app/src/main/java/org/lineageos/updater/misc/Utils.java @@ -335,9 +335,11 @@ public class Utils { int[] updateVersionParts = parseSemVer(update.getVersion()); int updateMajorVersion = updateVersionParts[0]; int updateMinorVersion = updateVersionParts[1]; - int updateMaintenanceVersion = updateVersionParts.length > 2 ? updateVersionParts[2] : 0; - float thisUpdate = Float.parseFloat(updateMajorVersion + "." + updateMinorVersion); - if (updateMajorVersion*10000+updateMinorVersion*100+updateMaintenanceVersion >= highestMajorVersion*10000+highestMinorVersion*100+highestMaintenanceVersion) { + int updateMaintenanceVersion = updateVersionParts.length > 2 + ? updateVersionParts[2] : 0; + if (updateMajorVersion * 10000 + updateMinorVersion * 100 + updateMaintenanceVersion + >= highestMajorVersion * 10000 + highestMinorVersion * 100 + + highestMaintenanceVersion) { highestMajorVersion = updateMajorVersion; highestMinorVersion = updateMinorVersion; highestMaintenanceVersion = updateMaintenanceVersion; @@ -345,11 +347,13 @@ public class Utils { hasUpdate = true; } } + String updateVersion = highestMajorVersion + "." + highestMinorVersion + + (highestMaintenanceVersion > 0 ? "." + highestMaintenanceVersion : ""); if (hasUpdate) { - updateSystemUpdaterService(context, STATUS_WAITING_DOWNLOAD, highestMajorVersion + "." + highestMinorVersion + (highestMaintenanceVersion > 0 ? "." + highestMaintenanceVersion : "")); + updateSystemUpdaterService(context, STATUS_WAITING_DOWNLOAD, updateVersion); return true; } else { - updateSystemUpdaterService(context, STATUS_IDLE, highestMajorVersion+"."+highestMinorVersion+(highestMaintenanceVersion > 0 ? "." + highestMaintenanceVersion : "")); + updateSystemUpdaterService(context, STATUS_IDLE, updateVersion); return false; } } -- GitLab From 6e0aa3725d5093c0dc3f807d8c0a61700c5e585c Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 28 Aug 2023 17:37:31 +0530 Subject: [PATCH 3/4] Updater: Fix checking android version Change-Id: Idadeb0f087b4c13e9eaaa8e3cd8194a72e7c82d7 --- .../java/org/lineageos/updater/misc/Utils.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/lineageos/updater/misc/Utils.java b/app/src/main/java/org/lineageos/updater/misc/Utils.java index 77487965..eec811b6 100644 --- a/app/src/main/java/org/lineageos/updater/misc/Utils.java +++ b/app/src/main/java/org/lineageos/updater/misc/Utils.java @@ -68,7 +68,9 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.Locale; +import java.util.Objects; import java.util.UUID; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -129,11 +131,20 @@ public class Utils { return update; } + public static int parseAndroidVersion(String versionString) { + // Parse android versions such as 8.1.0. + // Older updates still shows in ota requests. + Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); + Matcher matcher = pattern.matcher(versionString); + return matcher.matches() ? Integer.parseInt(Objects.requireNonNull(matcher.group(1))) + : Float.valueOf(versionString).intValue(); + } + public static boolean isCompatible(UpdateBaseInfo update) { String updateAndroidVersion = update.getAndroidVersion(); if (!updateAndroidVersion.isEmpty()) { - final int updateOSVersion = Float.valueOf(updateAndroidVersion).intValue(); - final int deviceOSVersion = Float.valueOf(Build.VERSION.RELEASE).intValue(); + final int updateOSVersion = parseAndroidVersion(updateAndroidVersion); + final int deviceOSVersion = parseAndroidVersion(Build.VERSION.RELEASE); if (deviceOSVersion > updateOSVersion) { Log.d(TAG, "Update : Skipping " + update.getName() + " since the installed version " + deviceOSVersion + " is newer than update " + updateOSVersion); -- GitLab From 856b9724185135a24f8b216228bbf568b47cdee6 Mon Sep 17 00:00:00 2001 From: althafvly Date: Tue, 29 Aug 2023 20:01:35 +0530 Subject: [PATCH 4/4] Updater: Avoid nullexception for android version check - mAndroidVersion wasn't before update so getAndroidVersion() was null. Change-Id: Ic195cc09dbbc4e7a082a6004316bc190ffe89dac --- .../main/java/org/lineageos/updater/UpdatesListAdapter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java index 04bfb5f9..8f42f62e 100644 --- a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java +++ b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java @@ -273,9 +273,10 @@ public class UpdatesListAdapter extends RecyclerView.Adapter