Loading src/org/lineageos/updater/misc/Utils.java +20 −6 Original line number Diff line number Diff line Loading @@ -61,7 +61,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; Loading Loading @@ -123,15 +125,27 @@ 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) { if (!update.getAndroidVersion().isEmpty()) { final int majorAndroidVersion = Integer.parseInt(update.getAndroidVersion().contains(".") ? update.getAndroidVersion().split(".")[0] : update.getAndroidVersion()); final int majorDeviceAndroidVersion = Integer.parseInt(Build.VERSION.RELEASE.contains(".") ? Build.VERSION.RELEASE.split(".")[0] : Build.VERSION.RELEASE); if (majorDeviceAndroidVersion > majorAndroidVersion) { Log.d(TAG, "Update : removing " + update.getName() + " current " + majorDeviceAndroidVersion+" update " + majorAndroidVersion); String updateAndroidVersion = update.getAndroidVersion(); if (!updateAndroidVersion.isEmpty()) { 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); return false; } } int[] updateVersionParts = parseSemVer(update.getVersion()); int updateMajorVersion = updateVersionParts[0]; int updateMinorVersion = updateVersionParts[1]; Loading Loading
src/org/lineageos/updater/misc/Utils.java +20 −6 Original line number Diff line number Diff line Loading @@ -61,7 +61,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; Loading Loading @@ -123,15 +125,27 @@ 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) { if (!update.getAndroidVersion().isEmpty()) { final int majorAndroidVersion = Integer.parseInt(update.getAndroidVersion().contains(".") ? update.getAndroidVersion().split(".")[0] : update.getAndroidVersion()); final int majorDeviceAndroidVersion = Integer.parseInt(Build.VERSION.RELEASE.contains(".") ? Build.VERSION.RELEASE.split(".")[0] : Build.VERSION.RELEASE); if (majorDeviceAndroidVersion > majorAndroidVersion) { Log.d(TAG, "Update : removing " + update.getName() + " current " + majorDeviceAndroidVersion+" update " + majorAndroidVersion); String updateAndroidVersion = update.getAndroidVersion(); if (!updateAndroidVersion.isEmpty()) { 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); return false; } } int[] updateVersionParts = parseSemVer(update.getVersion()); int updateMajorVersion = updateVersionParts[0]; int updateMinorVersion = updateVersionParts[1]; Loading