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

Commit 92ea53f4 authored by shafik's avatar shafik
Browse files

API cleanup: add boolean param to setEnableRollback

Mark PackageInstaller.SessionParams#setEnableRollback() as @removed and
@deprecated.
Add PackageInstaller.SessionParams#setEnableRollback(enable).
Replace old API usages in RollbackTestUtils with the new API.

Also, add PackageInstaller.SessionInfo#getEnableRollback().

Fixes: 127282838
Test: atest RollbackTest
Change-Id: I696680207be5ac06560d2abb525f91a100301b4c
parent 3057634f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1576,6 +1576,7 @@ package android.content.pm {
    method public boolean getAllocateAggressive();
    method @Deprecated public boolean getAllowDowngrade();
    method public boolean getDontKillApp();
    method public boolean getEnableRollback();
    method @Nullable public String[] getGrantedRuntimePermissions();
    method public boolean getInstallAsFullApp(boolean);
    method public boolean getInstallAsInstantApp(boolean);
@@ -1587,7 +1588,7 @@ package android.content.pm {
    method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean);
    method @Deprecated public void setAllowDowngrade(boolean);
    method public void setDontKillApp(boolean);
    method public void setEnableRollback();
    method public void setEnableRollback(boolean);
    method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]);
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setInstallAsApex();
    method public void setInstallAsInstantApp(boolean);
+8 −0
Original line number Diff line number Diff line
@@ -60,6 +60,14 @@ package android.content {

}

package android.content.pm {

  public static class PackageInstaller.SessionParams implements android.os.Parcelable {
    method @Deprecated public void setEnableRollback();
  }

}

package android.location {

  public class LocationManager {
+29 −0
Original line number Diff line number Diff line
@@ -1448,13 +1448,32 @@ public class PackageInstaller {

        /**
         * Request that rollbacks be enabled for the given upgrade.
         *
         * @removed
         * @deprecated use {@link #setEnableRollback(boolean)} instead.
         * @hide
         */
        @Deprecated
        @SystemApi
        public void setEnableRollback() {
            installFlags |= PackageManager.INSTALL_ENABLE_ROLLBACK;
        }

        /**
         * Request that rollbacks be enabled or disabled for the given upgrade.
         *
         * @param enable set to {@code true} to enable, {@code false} to disable
         * @hide
         */
        @SystemApi
        public void setEnableRollback(boolean enable) {
            if (enable) {
                installFlags |= PackageManager.INSTALL_ENABLE_ROLLBACK;
            } else {
                installFlags &= ~PackageManager.INSTALL_ENABLE_ROLLBACK;
            }
        }

        /**
         * @deprecated use {@link #setRequestDowngrade(boolean)}.
         * {@hide}
@@ -2057,6 +2076,16 @@ public class PackageInstaller {
            return (installFlags & PackageManager.INSTALL_VIRTUAL_PRELOAD) != 0;
        }

        /**
         * Return whether rollback is enabled or disabled for the given upgrade.
         *
         * @hide
         */
        @SystemApi
        public boolean getEnableRollback() {
            return (installFlags & PackageManager.INSTALL_ENABLE_ROLLBACK) != 0;
        }

        /**
         * Get the value set in {@link SessionParams#setAllocateAggressive(boolean)}.
         *
+5 −11
Original line number Diff line number Diff line
@@ -165,9 +165,7 @@ class RollbackTestUtils {
        PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
        PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
                PackageInstaller.SessionParams.MODE_FULL_INSTALL);
        if (enableRollback) {
            params.setEnableRollback();
        }
        params.setEnableRollback(enableRollback);
        int sessionId = packageInstaller.createSession(params);
        session = packageInstaller.openSession(sessionId);

@@ -224,11 +222,9 @@ class RollbackTestUtils {
        if (staged) {
            multiPackageParams.setStaged();
        }
        if (enableRollback) {
        // TODO: Do we set this on the parent params, the child params, or
        // both?
            multiPackageParams.setEnableRollback();
        }
        multiPackageParams.setEnableRollback(enableRollback);
        int multiPackageId = packageInstaller.createSession(multiPackageParams);
        PackageInstaller.Session multiPackage = packageInstaller.openSession(multiPackageId);

@@ -242,9 +238,7 @@ class RollbackTestUtils {
            if (resourceName.endsWith(".apex")) {
                params.setInstallAsApex();
            }
            if (enableRollback) {
                params.setEnableRollback();
            }
            params.setEnableRollback(enableRollback);
            int sessionId = packageInstaller.createSession(params);
            session = packageInstaller.openSession(sessionId);