Merge changes I72e979ce,I183b8a48

* changes:
  Add @IntDef for status of committed rollback.
  Use test stubs for RollbackTests, not system stubs.
This commit is contained in:
TreeHugger Robot
2019-03-12 16:25:25 +00:00
committed by Android (Google) Code Review
12 changed files with 98 additions and 17 deletions

View File

@@ -1836,10 +1836,8 @@ package android.content.rollback {
public final class RollbackManager {
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void commitRollback(int, @NonNull java.util.List<android.content.pm.VersionedPackage>, @NonNull android.content.IntentSender);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void expireRollbackForPackage(@NonNull String);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<android.content.rollback.RollbackInfo> getAvailableRollbacks();
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<android.content.rollback.RollbackInfo> getRecentlyCommittedRollbacks();
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void reloadPersistedData();
field public static final String EXTRA_STATUS = "android.content.rollback.extra.STATUS";
field public static final String EXTRA_STATUS_MESSAGE = "android.content.rollback.extra.STATUS_MESSAGE";
field public static final int STATUS_FAILURE = 1; // 0x1

View File

@@ -11,8 +11,10 @@ package android {
field public static final String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
field public static final String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
field public static final String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
field public static final String READ_CELL_BROADCASTS = "android.permission.READ_CELL_BROADCASTS";
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
field public static final String WRITE_DEVICE_CONFIG = "android.permission.WRITE_DEVICE_CONFIG";
field public static final String WRITE_MEDIA_STORAGE = "android.permission.WRITE_MEDIA_STORAGE";
field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
}
@@ -596,6 +598,7 @@ package android.content {
method public int getUserId();
method public void setAutofillOptions(@Nullable android.content.AutofillOptions);
method public void setContentCaptureOptions(@Nullable android.content.ContentCaptureOptions);
field public static final String ROLLBACK_SERVICE = "rollback";
}
public class ContextWrapper extends android.content.Context {
@@ -603,6 +606,7 @@ package android.content {
}
public class Intent implements java.lang.Cloneable android.os.Parcelable {
field public static final String ACTION_ROLLBACK_COMMITTED = "android.intent.action.ROLLBACK_COMMITTED";
field public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
}
@@ -626,6 +630,12 @@ package android.content.pm {
ctor public LauncherApps(android.content.Context);
}
public static class PackageInstaller.SessionParams implements android.os.Parcelable {
method public void setEnableRollback(boolean);
method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setInstallAsApex();
method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
}
public abstract class PackageManager {
method public abstract boolean arePermissionsIndividuallyControlled();
method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract String getDefaultBrowserPackageNameAsUser(int);
@@ -686,6 +696,44 @@ package android.content.res {
}
package android.content.rollback {
public final class PackageRollbackInfo implements android.os.Parcelable {
method public int describeContents();
method @NonNull public String getPackageName();
method @NonNull public android.content.pm.VersionedPackage getVersionRolledBackFrom();
method @NonNull public android.content.pm.VersionedPackage getVersionRolledBackTo();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.content.rollback.PackageRollbackInfo> CREATOR;
}
public final class RollbackInfo implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.List<android.content.pm.VersionedPackage> getCausePackages();
method public int getCommittedSessionId();
method @NonNull public java.util.List<android.content.rollback.PackageRollbackInfo> getPackages();
method public int getRollbackId();
method public boolean isStaged();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.content.rollback.RollbackInfo> CREATOR;
}
public final class RollbackManager {
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void commitRollback(int, @NonNull java.util.List<android.content.pm.VersionedPackage>, @NonNull android.content.IntentSender);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void expireRollbackForPackage(@NonNull String);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<android.content.rollback.RollbackInfo> getAvailableRollbacks();
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<android.content.rollback.RollbackInfo> getRecentlyCommittedRollbacks();
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void reloadPersistedData();
field public static final String EXTRA_STATUS = "android.content.rollback.extra.STATUS";
field public static final String EXTRA_STATUS_MESSAGE = "android.content.rollback.extra.STATUS_MESSAGE";
field public static final int STATUS_FAILURE = 1; // 0x1
field public static final int STATUS_FAILURE_INSTALL = 3; // 0x3
field public static final int STATUS_FAILURE_ROLLBACK_UNAVAILABLE = 2; // 0x2
field public static final int STATUS_SUCCESS = 0; // 0x0
}
}
package android.database.sqlite {
public class SQLiteCompatibilityWalFlags {
@@ -2015,8 +2063,8 @@ package android.provider {
method @RequiresPermission("android.permission.READ_DEVICE_CONFIG") public static String getString(String, String, String);
method public static void removeOnPropertiesChangedListener(@NonNull android.provider.DeviceConfig.OnPropertiesChangedListener);
method public static void removeOnPropertyChangedListener(@NonNull android.provider.DeviceConfig.OnPropertyChangedListener);
method @RequiresPermission("android.permission.WRITE_DEVICE_CONFIG") public static void resetToDefaults(int, @Nullable String);
method @RequiresPermission("android.permission.WRITE_DEVICE_CONFIG") public static boolean setProperty(String, String, String, boolean);
method @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static void resetToDefaults(int, @Nullable String);
method @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static boolean setProperty(String, String, String, boolean);
field public static final String NAMESPACE_AUTOFILL = "autofill";
field public static final String NAMESPACE_CONTENT_CAPTURE = "content_capture";
}
@@ -2044,6 +2092,13 @@ package android.provider {
method @Nullable public String getString(@NonNull String, @Nullable String);
}
public static interface DeviceConfig.Rollback {
field public static final String BOOT_NAMESPACE = "rollback_boot";
field public static final String ENABLE_ROLLBACK_TIMEOUT = "enable_rollback_timeout";
field public static final String NAMESPACE = "rollback";
field public static final String ROLLBACK_LIFETIME_IN_MILLIS = "rollback_lifetime_in_millis";
}
public final class MediaStore {
method @RequiresPermission(android.Manifest.permission.CLEAR_APP_USER_DATA) public static void deleteContributedMedia(android.content.Context, String, android.os.UserHandle) throws java.io.IOException;
method @RequiresPermission(android.Manifest.permission.CLEAR_APP_USER_DATA) public static long getContributedMediaSize(android.content.Context, String, android.os.UserHandle) throws java.io.IOException;

View File

@@ -4089,7 +4089,7 @@ public abstract class Context {
* @see #getSystemService(String)
* @hide
*/
@SystemApi
@SystemApi @TestApi
public static final String ROLLBACK_SERVICE = "rollback";
/**

View File

@@ -2441,7 +2441,7 @@ public class Intent implements Parcelable, Cloneable {
*
* @hide
*/
@SystemApi
@SystemApi @TestApi
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_ROLLBACK_COMMITTED =
"android.intent.action.ROLLBACK_COMMITTED";

View File

@@ -24,6 +24,7 @@ import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.app.ActivityManager;
import android.app.AppGlobals;
@@ -1465,7 +1466,7 @@ public class PackageInstaller {
* @param enable set to {@code true} to enable, {@code false} to disable
* @hide
*/
@SystemApi
@SystemApi @TestApi
public void setEnableRollback(boolean enable) {
if (enable) {
installFlags |= PackageManager.INSTALL_ENABLE_ROLLBACK;
@@ -1591,7 +1592,7 @@ public class PackageInstaller {
*
* {@hide}
*/
@SystemApi
@SystemApi @TestApi
@RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
public void setStaged() {
this.isStaged = true;
@@ -1602,7 +1603,7 @@ public class PackageInstaller {
*
* {@hide}
*/
@SystemApi
@SystemApi @TestApi
@RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
public void setInstallAsApex() {
installFlags |= PackageManager.INSTALL_APEX;

View File

@@ -18,6 +18,7 @@ package android.content.rollback;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.content.pm.VersionedPackage;
import android.os.Parcel;
import android.os.Parcelable;
@@ -31,7 +32,7 @@ import java.util.ArrayList;
*
* @hide
*/
@SystemApi
@SystemApi @TestApi
public final class PackageRollbackInfo implements Parcelable {
private final VersionedPackage mVersionRolledBackFrom;

View File

@@ -18,6 +18,7 @@ package android.content.rollback;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.content.pm.VersionedPackage;
import android.os.Parcel;
import android.os.Parcelable;
@@ -30,7 +31,7 @@ import java.util.List;
*
* @hide
*/
@SystemApi
@SystemApi @TestApi
public final class RollbackInfo implements Parcelable {
/**

View File

@@ -16,16 +16,20 @@
package android.content.rollback;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.content.Context;
import android.content.IntentSender;
import android.content.pm.ParceledListSlice;
import android.content.pm.VersionedPackage;
import android.os.RemoteException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
/**
@@ -38,7 +42,7 @@ import java.util.List;
* @see PackageInstaller.SessionParams#setEnableRollback()
* @hide
*/
@SystemApi
@SystemApi @TestApi
@SystemService(Context.ROLLBACK_SERVICE)
public final class RollbackManager {
private final String mCallerPackageName;
@@ -111,6 +115,20 @@ public final class RollbackManager {
public static final String EXTRA_STATUS_MESSAGE =
"android.content.rollback.extra.STATUS_MESSAGE";
/**
* Status result of committing a rollback.
*
* @hide
*/
@IntDef(prefix = "STATUS_", value = {
STATUS_SUCCESS,
STATUS_FAILURE,
STATUS_FAILURE_ROLLBACK_UNAVAILABLE,
STATUS_FAILURE_INSTALL,
})
@Retention(RetentionPolicy.SOURCE)
public @interface Status {};
/**
* The rollback was successfully committed.
*/
@@ -175,8 +193,11 @@ public final class RollbackManager {
*
* @throws SecurityException if the caller does not have the
* MANAGE_ROLLBACKS permission.
*
* @hide
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS)
@TestApi
public void reloadPersistedData() {
try {
mBinder.reloadPersistedData();
@@ -194,8 +215,11 @@ public final class RollbackManager {
* @param packageName the name of the package to expire data for.
* @throws SecurityException if the caller does not have the
* MANAGE_ROLLBACKS permission.
*
* @hide
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS)
@TestApi
public void expireRollbackForPackage(@NonNull String packageName) {
try {
mBinder.expireRollbackForPackage(packageName);

View File

@@ -322,7 +322,7 @@ public final class DeviceConfig {
*
* @hide
*/
@SystemApi
@SystemApi @TestApi
public interface Rollback {
/**

View File

@@ -2524,7 +2524,7 @@
<permission android:name="android.permission.WRITE_GSERVICES"
android:protectionLevel="signature|privileged" />
<!-- @SystemApi @hide Allows an application to modify config settings.
<!-- @SystemApi @TestApi @hide Allows an application to modify config settings.
<p>Not for use by third-party applications. -->
<permission android:name="android.permission.WRITE_DEVICE_CONFIG"
android:protectionLevel="signature|configurator"/>
@@ -3917,7 +3917,7 @@
<permission android:name="android.permission.PACKAGE_ROLLBACK_AGENT"
android:protectionLevel="signature" />
<!-- @SystemApi @hide Allows managing apk level rollbacks. -->
<!-- @SystemApi @TestApi @hide Allows managing apk level rollbacks. -->
<permission android:name="android.permission.MANAGE_ROLLBACKS"
android:protectionLevel="signature|verifier" />

View File

@@ -684,7 +684,8 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
* @param status the RollbackManager.STATUS_* code with the failure.
* @param message the failure message.
*/
private void sendFailure(IntentSender statusReceiver, int status, String message) {
private void sendFailure(IntentSender statusReceiver, @RollbackManager.Status int status,
String message) {
Log.e(TAG, message);
try {
final Intent fillIn = new Intent();

View File

@@ -118,7 +118,7 @@ android_test {
":com.android.tests.rollback.testapex.RollbackTestApexV2",
],
test_config: "RollbackTest.xml",
sdk_version: "system_current",
sdk_version: "test_current",
}
java_test_host {