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

Commit 477666d9 authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

No need for getProfileOwnerForUser as SystemApi

Rather use
context.createPackageContextAsUser(context.getPackageName(), 0, user)
        .getSystemService(DevicePolicyManager.class).getProfileOwner();

Test: Looked at permission restricted by device owner in UI
Fixes: 126699845
Change-Id: I3dc16fbe360aaeb416c526cacf5f55ce2c3a1b20
parent 6983ad3f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -667,7 +667,6 @@ package android.app.admin {
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedAccessibilityServices(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser();
    method @Nullable public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException;
    method @Nullable @RequiresPermission(value=android.Manifest.permission.INTERACT_ACROSS_USERS, conditional=true) public android.content.ComponentName getProfileOwnerAsUser(@NonNull android.os.UserHandle);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserProvisioningState();
    method public boolean isDeviceManaged();
+0 −1
Original line number Diff line number Diff line
@@ -6339,7 +6339,6 @@ public class DevicePolicyManager {
     */
    @RequiresPermission(value = android.Manifest.permission.INTERACT_ACROSS_USERS,
            conditional = true)
    @SystemApi
    public @Nullable ComponentName getProfileOwnerAsUser(@NonNull UserHandle user) {
        if (mService != null) {
            try {
+11 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -47,7 +48,16 @@ public class RestrictedLockUtils {
        if (dpm == null) {
            return null;
        }
        ComponentName adminComponent = dpm.getProfileOwnerAsUser(user);

        Context userContext;
        try {
            userContext = context.createPackageContextAsUser(context.getPackageName(), 0, user);
        } catch (PackageManager.NameNotFoundException e) {
            throw new IllegalStateException(e);
        }

        ComponentName adminComponent = userContext.getSystemService(
                DevicePolicyManager.class).getProfileOwner();
        if (adminComponent != null) {
            return new EnforcedAdmin(adminComponent, enforcedRestriction, user);
        }