Loading core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -7314,6 +7314,7 @@ package android.app.admin { field public static final int RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT = 2; // 0x2 field public static final int RESET_PASSWORD_REQUIRE_ENTRY = 1; // 0x1 field public static final int SKIP_SETUP_WIZARD = 1; // 0x1 field public static final int UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION = 1; // 0x1 field public static final int WIPE_EUICC = 4; // 0x4 field public static final int WIPE_EXTERNAL_STORAGE = 1; // 0x1 field public static final int WIPE_RESET_PROTECTION_DATA = 2; // 0x2 Loading Loading @@ -7467,6 +7468,7 @@ package android.app.admin { public final class UnsafeStateException extends java.lang.IllegalStateException implements android.os.Parcelable { method public int describeContents(); method public int getReason(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.admin.UnsafeStateException> CREATOR; } core/api/test-current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -389,7 +389,8 @@ package android.app.admin { method public boolean isFactoryResetProtectionPolicySupported(); method @NonNull public static String operationToString(int); method @RequiresPermission("android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS") public void provisionFullyManagedDevice(@NonNull android.app.admin.FullyManagedDeviceProvisioningParams) throws android.app.admin.ProvisioningException; method @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public void setNextOperationSafety(int, boolean); method @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public void setNextOperationSafety(int, int); method @NonNull public static String unsafeOperationReasonToString(int); field public static final String ACTION_DATA_SHARING_RESTRICTION_APPLIED = "android.app.action.DATA_SHARING_RESTRICTION_APPLIED"; field public static final String ACTION_MANAGED_PROFILE_CREATED = "android.app.action.MANAGED_PROFILE_CREATED"; field public static final String ACTION_PROVISIONED_MANAGED_DEVICE = "android.app.action.PROVISIONED_MANAGED_DEVICE"; Loading Loading @@ -456,6 +457,7 @@ package android.app.admin { field public static final int PROVISIONING_RESULT_SETTING_PROFILE_OWNER_FAILED = 4; // 0x4 field public static final int PROVISIONING_RESULT_SET_DEVICE_OWNER_FAILED = 7; // 0x7 field public static final int PROVISIONING_RESULT_STARTING_PROFILE_FAILED = 5; // 0x5 field public static final int UNSAFE_OPERATION_REASON_NONE = -1; // 0xffffffff } public final class FullyManagedDeviceProvisioningParams implements android.os.Parcelable { Loading Loading @@ -512,6 +514,7 @@ package android.app.admin { } public final class UnsafeStateException extends java.lang.IllegalStateException implements android.os.Parcelable { ctor public UnsafeStateException(int, int); method public int getOperation(); } Loading core/java/android/app/admin/DevicePolicyManager.java +32 −2 Original line number Diff line number Diff line Loading @@ -2905,6 +2905,35 @@ public class DevicePolicyManager { return DebugUtils.constantToString(DevicePolicyManager.class, PREFIX_OPERATION, operation); } private static final String PREFIX_UNSAFE_OPERATION_REASON = "UNSAFE_OPERATION_REASON_"; /** @hide */ @IntDef(prefix = PREFIX_UNSAFE_OPERATION_REASON, value = { UNSAFE_OPERATION_REASON_NONE, UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION }) @Retention(RetentionPolicy.SOURCE) public static @interface UnsafeOperationReason { } /** @hide */ @TestApi public static final int UNSAFE_OPERATION_REASON_NONE = -1; /** * Indicates that a {@link UnsafeStateException} was thrown because the operation would distract * the driver of the vehicle. */ public static final int UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION = 1; /** @hide */ @NonNull @TestApi public static String unsafeOperationReasonToString(@UnsafeOperationReason int reason) { return DebugUtils.constantToString(DevicePolicyManager.class, PREFIX_UNSAFE_OPERATION_REASON, reason); } /** @hide */ public void resetNewUserDisclaimer() { if (mService != null) { Loading Loading @@ -13098,10 +13127,11 @@ public class DevicePolicyManager { */ @TestApi @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS) public void setNextOperationSafety(@DevicePolicyOperation int operation, boolean safe) { public void setNextOperationSafety(@DevicePolicyOperation int operation, @UnsafeOperationReason int reason) { if (mService != null) { try { mService.setNextOperationSafety(operation, safe); mService.setNextOperationSafety(operation, reason); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } core/java/android/app/admin/DevicePolicySafetyChecker.java +6 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.app.admin; import android.annotation.NonNull; import android.app.admin.DevicePolicyManager.DevicePolicyOperation; import android.app.admin.DevicePolicyManager.UnsafeOperationReason; import com.android.internal.os.IResultReceiver; Loading @@ -30,14 +31,16 @@ public interface DevicePolicySafetyChecker { /** * Returns whether the given {@code operation} can be safely executed at the moment. */ boolean isDevicePolicyOperationSafe(@DevicePolicyOperation int operation); @UnsafeOperationReason int getUnsafeOperationReason(@DevicePolicyOperation int operation); /** * Returns a new exception for when the given {@code operation} cannot be safely executed. */ @NonNull default UnsafeStateException newUnsafeStateException(@DevicePolicyOperation int operation) { return new UnsafeStateException(operation); default UnsafeStateException newUnsafeStateException(@DevicePolicyOperation int operation, @UnsafeOperationReason int reason) { return new UnsafeStateException(operation, reason); } /** Loading core/java/android/app/admin/IDevicePolicyManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -491,7 +491,7 @@ interface IDevicePolicyManager { void setManagedProfileMaximumTimeOff(in ComponentName admin, long timeoutMs); boolean canProfileOwnerResetPasswordWhenLocked(int userId); void setNextOperationSafety(int operation, boolean safe); void setNextOperationSafety(int operation, int reason); String getEnrollmentSpecificId(String callerPackage); void setOrganizationIdForUser(in String callerPackage, in String enterpriseId, int userId); Loading Loading
core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -7314,6 +7314,7 @@ package android.app.admin { field public static final int RESET_PASSWORD_DO_NOT_ASK_CREDENTIALS_ON_BOOT = 2; // 0x2 field public static final int RESET_PASSWORD_REQUIRE_ENTRY = 1; // 0x1 field public static final int SKIP_SETUP_WIZARD = 1; // 0x1 field public static final int UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION = 1; // 0x1 field public static final int WIPE_EUICC = 4; // 0x4 field public static final int WIPE_EXTERNAL_STORAGE = 1; // 0x1 field public static final int WIPE_RESET_PROTECTION_DATA = 2; // 0x2 Loading Loading @@ -7467,6 +7468,7 @@ package android.app.admin { public final class UnsafeStateException extends java.lang.IllegalStateException implements android.os.Parcelable { method public int describeContents(); method public int getReason(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.admin.UnsafeStateException> CREATOR; }
core/api/test-current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -389,7 +389,8 @@ package android.app.admin { method public boolean isFactoryResetProtectionPolicySupported(); method @NonNull public static String operationToString(int); method @RequiresPermission("android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS") public void provisionFullyManagedDevice(@NonNull android.app.admin.FullyManagedDeviceProvisioningParams) throws android.app.admin.ProvisioningException; method @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public void setNextOperationSafety(int, boolean); method @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public void setNextOperationSafety(int, int); method @NonNull public static String unsafeOperationReasonToString(int); field public static final String ACTION_DATA_SHARING_RESTRICTION_APPLIED = "android.app.action.DATA_SHARING_RESTRICTION_APPLIED"; field public static final String ACTION_MANAGED_PROFILE_CREATED = "android.app.action.MANAGED_PROFILE_CREATED"; field public static final String ACTION_PROVISIONED_MANAGED_DEVICE = "android.app.action.PROVISIONED_MANAGED_DEVICE"; Loading Loading @@ -456,6 +457,7 @@ package android.app.admin { field public static final int PROVISIONING_RESULT_SETTING_PROFILE_OWNER_FAILED = 4; // 0x4 field public static final int PROVISIONING_RESULT_SET_DEVICE_OWNER_FAILED = 7; // 0x7 field public static final int PROVISIONING_RESULT_STARTING_PROFILE_FAILED = 5; // 0x5 field public static final int UNSAFE_OPERATION_REASON_NONE = -1; // 0xffffffff } public final class FullyManagedDeviceProvisioningParams implements android.os.Parcelable { Loading Loading @@ -512,6 +514,7 @@ package android.app.admin { } public final class UnsafeStateException extends java.lang.IllegalStateException implements android.os.Parcelable { ctor public UnsafeStateException(int, int); method public int getOperation(); } Loading
core/java/android/app/admin/DevicePolicyManager.java +32 −2 Original line number Diff line number Diff line Loading @@ -2905,6 +2905,35 @@ public class DevicePolicyManager { return DebugUtils.constantToString(DevicePolicyManager.class, PREFIX_OPERATION, operation); } private static final String PREFIX_UNSAFE_OPERATION_REASON = "UNSAFE_OPERATION_REASON_"; /** @hide */ @IntDef(prefix = PREFIX_UNSAFE_OPERATION_REASON, value = { UNSAFE_OPERATION_REASON_NONE, UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION }) @Retention(RetentionPolicy.SOURCE) public static @interface UnsafeOperationReason { } /** @hide */ @TestApi public static final int UNSAFE_OPERATION_REASON_NONE = -1; /** * Indicates that a {@link UnsafeStateException} was thrown because the operation would distract * the driver of the vehicle. */ public static final int UNSAFE_OPERATION_REASON_DRIVING_DISTRACTION = 1; /** @hide */ @NonNull @TestApi public static String unsafeOperationReasonToString(@UnsafeOperationReason int reason) { return DebugUtils.constantToString(DevicePolicyManager.class, PREFIX_UNSAFE_OPERATION_REASON, reason); } /** @hide */ public void resetNewUserDisclaimer() { if (mService != null) { Loading Loading @@ -13098,10 +13127,11 @@ public class DevicePolicyManager { */ @TestApi @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS) public void setNextOperationSafety(@DevicePolicyOperation int operation, boolean safe) { public void setNextOperationSafety(@DevicePolicyOperation int operation, @UnsafeOperationReason int reason) { if (mService != null) { try { mService.setNextOperationSafety(operation, safe); mService.setNextOperationSafety(operation, reason); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); }
core/java/android/app/admin/DevicePolicySafetyChecker.java +6 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.app.admin; import android.annotation.NonNull; import android.app.admin.DevicePolicyManager.DevicePolicyOperation; import android.app.admin.DevicePolicyManager.UnsafeOperationReason; import com.android.internal.os.IResultReceiver; Loading @@ -30,14 +31,16 @@ public interface DevicePolicySafetyChecker { /** * Returns whether the given {@code operation} can be safely executed at the moment. */ boolean isDevicePolicyOperationSafe(@DevicePolicyOperation int operation); @UnsafeOperationReason int getUnsafeOperationReason(@DevicePolicyOperation int operation); /** * Returns a new exception for when the given {@code operation} cannot be safely executed. */ @NonNull default UnsafeStateException newUnsafeStateException(@DevicePolicyOperation int operation) { return new UnsafeStateException(operation); default UnsafeStateException newUnsafeStateException(@DevicePolicyOperation int operation, @UnsafeOperationReason int reason) { return new UnsafeStateException(operation, reason); } /** Loading
core/java/android/app/admin/IDevicePolicyManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -491,7 +491,7 @@ interface IDevicePolicyManager { void setManagedProfileMaximumTimeOff(in ComponentName admin, long timeoutMs); boolean canProfileOwnerResetPasswordWhenLocked(int userId); void setNextOperationSafety(int operation, boolean safe); void setNextOperationSafety(int operation, int reason); String getEnrollmentSpecificId(String callerPackage); void setOrganizationIdForUser(in String callerPackage, in String enterpriseId, int userId); Loading