Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a32632e0 authored by Sooraj S's avatar Sooraj S 👽
Browse files

Updater: check maintenance version

parent a5327e26
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -101,12 +101,14 @@ public class Utils {
        int[] updateVersionParts = parseSemVer(update.getVersion());
        int updateMajorVersion = updateVersionParts[0];
        int updateMinorVersion = updateVersionParts[1];
        Log.d(TAG, "Update : Major "+updateMajorVersion +" Minor "+ updateMinorVersion );
        int updateMaintenanceVersion = updateVersionParts[2];
        Log.d(TAG, "Update : Major "+updateMajorVersion +" Minor "+ updateMinorVersion +" Maintenance " + updateMaintenanceVersion);

        int[] deviceVersionParts = parseSemVer(SystemProperties.get(Constants.PROP_BUILD_VERSION));
        int deviceMajorVersion = deviceVersionParts[0];
        int deviceMinorVersion = deviceVersionParts[1];
        Log.d(TAG, "Device : Major "+ deviceMajorVersion +" Minor "+ deviceMinorVersion );
        int deviceMaintenanceVersion = deviceVersionParts[2];
        Log.d(TAG, "Device : Major "+ deviceMajorVersion +" Minor "+ deviceMinorVersion + " Maintenance " + deviceMaintenanceVersion);


        if (!SystemProperties.getBoolean(Constants.PROP_UPDATER_ALLOW_DOWNGRADING, false) &&
@@ -126,10 +128,18 @@ public class Utils {
            Log.d(TAG, update.getName() + " is Older to current Major version");
            return false;
        }
        if(updateMinorVersion > deviceMinorVersion){
            Log.d(TAG, update.getName() + " is Newer to current Minor version");
            return true;
        }
        if(updateMinorVersion < deviceMinorVersion){
            Log.d(TAG, update.getName() + " is Older to current Minor version");
            return false;
        }
        if(updateMaintenanceVersion < deviceMaintenanceVersion){
            Log.d(TAG, update.getName() + " is Older to current Minor version");
            return false;
        }

        return true;
    }
@@ -138,7 +148,12 @@ public class Utils {
        String[] versionParts = versionCode.split(Pattern.quote("."));
        int major = Integer.parseInt(versionParts[0]);
        int minor = Integer.parseInt(versionParts[1]);
        return new int[]{ major, minor };
        int maintenance = 0;
        if (versionParts.length == 3 ){
            maintenance = Integer.parseInt(versionParts[2]);
            return new int[]{ major, minor ,maintenance};
        }
        return new int[]{ major, minor ,maintenance};
    }

    public static boolean canInstall(UpdateBaseInfo update) {