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
This commit is contained in:
shafik
2019-03-08 18:05:59 +00:00
parent 3057634fd7
commit 92ea53f448
4 changed files with 44 additions and 12 deletions

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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)}.
*

View File

@@ -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();
}
// TODO: Do we set this on the parent params, the child params, or
// both?
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);