Store pending OTA state and make it accessible via polling api.
Change-Id: Ieb71dfb902371a683b17561f51ba9c2c730eb37b
Test: gts-tradefed run gts -a armeabi-v7a -m GtsGmscoreHostTestCases -t com.google.android.gts.devicepolicy.DeviceOwnerTest
Bug: 31000521
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index c95e011..6d6ada6 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -20,7 +20,6 @@
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
@@ -28,7 +27,6 @@
import android.annotation.UserIdInt;
import android.annotation.WorkerThread;
import android.app.Activity;
-import android.app.admin.PasswordMetrics;
import android.app.IServiceConnection;
import android.app.admin.SecurityLog.SecurityEvent;
import android.content.ComponentName;
@@ -5536,7 +5534,7 @@
* {@link DevicePolicyManager#setApplicationRestrictions} was called, or an empty
* {@link Bundle} if no restrictions have been set.
* @throws SecurityException if {@code admin} is not a device or profile owner.
- * @see {@link #setApplicationRestrictionsManagingPackage}
+ * @see #setApplicationRestrictionsManagingPackage
*/
@WorkerThread
public @NonNull Bundle getApplicationRestrictions(
@@ -6221,6 +6219,23 @@
}
/**
+ * Called by device or profile owners to get information about a pending system update.
+ *
+ * @param admin Which profile or device owner this request is associated with.
+ * @return Information about a pending system update or {@code null} if no update pending.
+ * @throws SecurityException if {@code admin} is not a device or profile owner.
+ * @see DeviceAdminReceiver#onSystemUpdatePending(Context, Intent, long)
+ */
+ public @Nullable SystemUpdateInfo getPendingSystemUpdate(@NonNull ComponentName admin) {
+ throwIfParentInstance("getPendingSystemUpdate");
+ try {
+ return mService.getPendingSystemUpdate(admin);
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Called by profile or device owners to set the default response for future runtime permission
* requests by applications. The policy can allow for normal operation which prompts the user to
* grant a permission, or can allow automatic granting or denying of runtime permission requests