Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bf68027 authored by Makoto Onuki's avatar Makoto Onuki
Browse files

Make DPM.clearProfileOwner() public.

Bug 26827204

Change-Id: Ib32e5370b493aa3e36b869d9ed3d78782df4c895
parent 5ddbc2af
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5788,6 +5788,7 @@ package android.app.admin {
    method public void clearCrossProfileIntentFilters(android.content.ComponentName);
    method public void clearDeviceOwnerApp(java.lang.String);
    method public void clearPackagePersistentPreferredActivities(android.content.ComponentName, java.lang.String);
    method public void clearProfileOwner(android.content.ComponentName);
    method public void clearUserRestriction(android.content.ComponentName, java.lang.String);
    method public deprecated android.os.UserHandle createAndInitializeUser(android.content.ComponentName, java.lang.String, java.lang.String, android.content.ComponentName, android.os.Bundle);
    method public android.os.UserHandle createAndManageUser(android.content.ComponentName, java.lang.String, android.content.ComponentName, android.os.PersistableBundle, int);
+1 −0
Original line number Diff line number Diff line
@@ -5790,6 +5790,7 @@ package android.app.admin {
    method public void clearCrossProfileIntentFilters(android.content.ComponentName);
    method public void clearDeviceOwnerApp(java.lang.String);
    method public void clearPackagePersistentPreferredActivities(android.content.ComponentName, java.lang.String);
    method public void clearProfileOwner(android.content.ComponentName);
    method public void clearUserRestriction(android.content.ComponentName, java.lang.String);
    method public deprecated android.os.UserHandle createAndInitializeUser(android.content.ComponentName, java.lang.String, java.lang.String, android.content.ComponentName, android.os.Bundle);
    method public android.os.UserHandle createAndManageUser(android.content.ComponentName, java.lang.String, android.content.ComponentName, android.os.PersistableBundle, int);
+2 −3
Original line number Diff line number Diff line
@@ -3185,15 +3185,14 @@ public class DevicePolicyManager {
    }

    /**
     * @hide
     * Clears the active profile owner and removes all user restrictions. The caller must
     * be from the same package as the active profile owner for this user, otherwise a
     * SecurityException will be thrown.
     *
     * <p>This doesn't work for managed profile owners.
     *
     * @param admin The component to remove as the profile owner.
     * @return
     */
    @SystemApi
    public void clearProfileOwner(@NonNull ComponentName admin) {
        if (mService != null) {
            try {
+3 −2
Original line number Diff line number Diff line
@@ -5343,7 +5343,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        if (!mHasFeature) {
            return;
        }
        UserHandle callingUser = mInjector.binderGetCallingUserHandle();
        final UserHandle callingUser = mInjector.binderGetCallingUserHandle();
        final int userId = callingUser.getIdentifier();
        enforceNotManagedProfile(userId, "clear profile owner");
        // Check if this is the profile owner who is calling
        final ActiveAdmin admin =
                getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
@@ -5351,7 +5353,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
            admin.disableCamera = false;
            admin.userRestrictions = null;
            clearUserPoliciesLocked(callingUser);
            final int userId = callingUser.getIdentifier();
            mOwners.removeProfileOwner(userId);
            mOwners.writeProfileOwner(userId);
        }