Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5762,6 +5762,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName); api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5890,6 +5890,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName); api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5764,6 +5764,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName); core/java/android/app/admin/DevicePolicyManager.java +29 −5 Original line number Diff line number Diff line Loading @@ -88,13 +88,15 @@ public class DevicePolicyManager { private final Context mContext; private final IDevicePolicyManager mService; private boolean mParentInstance; private static final String REMOTE_EXCEPTION_MESSAGE = "Failed to talk with device policy manager service"; private DevicePolicyManager(Context context) { private DevicePolicyManager(Context context, boolean parentInstance) { this(context, IDevicePolicyManager.Stub.asInterface( ServiceManager.getService(Context.DEVICE_POLICY_SERVICE))); mParentInstance = parentInstance; } /** @hide */ Loading @@ -106,7 +108,7 @@ public class DevicePolicyManager { /** @hide */ public static DevicePolicyManager create(Context context) { DevicePolicyManager me = new DevicePolicyManager(context); DevicePolicyManager me = new DevicePolicyManager(context, false); return me.mService != null ? me : null; } Loading Loading @@ -1031,7 +1033,7 @@ public class DevicePolicyManager { public void setPasswordQuality(@NonNull ComponentName admin, int quality) { if (mService != null) { try { mService.setPasswordQuality(admin, quality); mService.setPasswordQuality(admin, quality, mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading @@ -1052,7 +1054,7 @@ public class DevicePolicyManager { public int getPasswordQuality(@Nullable ComponentName admin, int userHandle) { if (mService != null) { try { return mService.getPasswordQuality(admin, userHandle); return mService.getPasswordQuality(admin, userHandle, mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading Loading @@ -1622,7 +1624,7 @@ public class DevicePolicyManager { public boolean isActivePasswordSufficient() { if (mService != null) { try { return mService.isActivePasswordSufficient(myUserId()); return mService.isActivePasswordSufficient(myUserId(), mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading Loading @@ -1791,6 +1793,9 @@ public class DevicePolicyManager { * not acceptable for the current constraints or if the user has not been decrypted yet. */ public boolean resetPassword(String password, int flags) { if (mParentInstance) { throw new SecurityException("Reset password does not work across profiles."); } if (mService != null) { try { return mService.resetPassword(password, flags); Loading Loading @@ -4927,4 +4932,23 @@ public class DevicePolicyManager { } return null; } /** * Obtains a {@link DevicePolicyManager} whose calls act on the parent profile. * * <p> Note only some methods will work on the parent Manager. * * @return a new instance of {@link DevicePolicyManager} that acts on the parent profile. */ public DevicePolicyManager getParentProfileInstance(@NonNull ComponentName admin) { try { if (!mService.isManagedProfile(admin)) { throw new SecurityException("The current user does not have a parent profile."); } return new DevicePolicyManager(mContext, true); } catch (RemoteException re) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return null; } } } core/java/android/app/admin/IDevicePolicyManager.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ import java.util.List; * {@hide} */ interface IDevicePolicyManager { void setPasswordQuality(in ComponentName who, int quality); int getPasswordQuality(in ComponentName who, int userHandle); void setPasswordQuality(in ComponentName who, int quality, boolean parent); int getPasswordQuality(in ComponentName who, int userHandle, boolean parent); void setPasswordMinimumLength(in ComponentName who, int length); int getPasswordMinimumLength(in ComponentName who, int userHandle); Loading Loading @@ -67,7 +67,7 @@ interface IDevicePolicyManager { long getPasswordExpiration(in ComponentName who, int userHandle); boolean isActivePasswordSufficient(int userHandle); boolean isActivePasswordSufficient(int userHandle, boolean parent); int getCurrentFailedPasswordAttempts(int userHandle); int getProfileWithMinimumFailedPasswordsForWipe(int userHandle); Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5762,6 +5762,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName);
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5890,6 +5890,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName);
api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5764,6 +5764,7 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName); method public long getMaximumTimeToLock(android.content.ComponentName); method public boolean getPackageSuspended(android.content.ComponentName, java.lang.String); method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName); method public long getPasswordExpiration(android.content.ComponentName); method public long getPasswordExpirationTimeout(android.content.ComponentName); method public int getPasswordHistoryLength(android.content.ComponentName);
core/java/android/app/admin/DevicePolicyManager.java +29 −5 Original line number Diff line number Diff line Loading @@ -88,13 +88,15 @@ public class DevicePolicyManager { private final Context mContext; private final IDevicePolicyManager mService; private boolean mParentInstance; private static final String REMOTE_EXCEPTION_MESSAGE = "Failed to talk with device policy manager service"; private DevicePolicyManager(Context context) { private DevicePolicyManager(Context context, boolean parentInstance) { this(context, IDevicePolicyManager.Stub.asInterface( ServiceManager.getService(Context.DEVICE_POLICY_SERVICE))); mParentInstance = parentInstance; } /** @hide */ Loading @@ -106,7 +108,7 @@ public class DevicePolicyManager { /** @hide */ public static DevicePolicyManager create(Context context) { DevicePolicyManager me = new DevicePolicyManager(context); DevicePolicyManager me = new DevicePolicyManager(context, false); return me.mService != null ? me : null; } Loading Loading @@ -1031,7 +1033,7 @@ public class DevicePolicyManager { public void setPasswordQuality(@NonNull ComponentName admin, int quality) { if (mService != null) { try { mService.setPasswordQuality(admin, quality); mService.setPasswordQuality(admin, quality, mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading @@ -1052,7 +1054,7 @@ public class DevicePolicyManager { public int getPasswordQuality(@Nullable ComponentName admin, int userHandle) { if (mService != null) { try { return mService.getPasswordQuality(admin, userHandle); return mService.getPasswordQuality(admin, userHandle, mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading Loading @@ -1622,7 +1624,7 @@ public class DevicePolicyManager { public boolean isActivePasswordSufficient() { if (mService != null) { try { return mService.isActivePasswordSufficient(myUserId()); return mService.isActivePasswordSufficient(myUserId(), mParentInstance); } catch (RemoteException e) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } Loading Loading @@ -1791,6 +1793,9 @@ public class DevicePolicyManager { * not acceptable for the current constraints or if the user has not been decrypted yet. */ public boolean resetPassword(String password, int flags) { if (mParentInstance) { throw new SecurityException("Reset password does not work across profiles."); } if (mService != null) { try { return mService.resetPassword(password, flags); Loading Loading @@ -4927,4 +4932,23 @@ public class DevicePolicyManager { } return null; } /** * Obtains a {@link DevicePolicyManager} whose calls act on the parent profile. * * <p> Note only some methods will work on the parent Manager. * * @return a new instance of {@link DevicePolicyManager} that acts on the parent profile. */ public DevicePolicyManager getParentProfileInstance(@NonNull ComponentName admin) { try { if (!mService.isManagedProfile(admin)) { throw new SecurityException("The current user does not have a parent profile."); } return new DevicePolicyManager(mContext, true); } catch (RemoteException re) { Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return null; } } }
core/java/android/app/admin/IDevicePolicyManager.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ import java.util.List; * {@hide} */ interface IDevicePolicyManager { void setPasswordQuality(in ComponentName who, int quality); int getPasswordQuality(in ComponentName who, int userHandle); void setPasswordQuality(in ComponentName who, int quality, boolean parent); int getPasswordQuality(in ComponentName who, int userHandle, boolean parent); void setPasswordMinimumLength(in ComponentName who, int length); int getPasswordMinimumLength(in ComponentName who, int userHandle); Loading Loading @@ -67,7 +67,7 @@ interface IDevicePolicyManager { long getPasswordExpiration(in ComponentName who, int userHandle); boolean isActivePasswordSufficient(int userHandle); boolean isActivePasswordSufficient(int userHandle, boolean parent); int getCurrentFailedPasswordAttempts(int userHandle); int getProfileWithMinimumFailedPasswordsForWipe(int userHandle); Loading