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

Commit 8c9ce8b1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add PermissionControllerService.isRoleVisible() for app info shortcut."

parents 4cb0b5b3 5f4e5290
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -507,6 +507,11 @@ public final class PermissionControllerServiceImpl extends PermissionControllerS
                packageName, this);
    }

    @Override
    public boolean onIsRoleVisible(@NonNull String roleName) {
        return PermissionControllerServiceImplRoleMixin.onIsRoleVisible(roleName, this);
    }

    @Override
    public boolean onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String callerPackageName,
            @NonNull String packageName, @NonNull String unexpandedPermission, int grantState) {
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ public class VisibilityMixin {
     */
    public static boolean isVisible(@NonNull String resourceName, @NonNull Context context) {
        Resources resources = context.getResources();
        int resourceId = resources.getIdentifier(resourceName, "boolean", "android");
        int resourceId = resources.getIdentifier(resourceName, "bool", "android");
        if (resourceId == 0) {
            Log.w(LOG_TAG, "Cannot find resource for visibility: " + resourceName);
            return true;
+15 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.packageinstaller.role.service;

import android.content.Context;
import android.os.Process;

import androidx.annotation.NonNull;

@@ -46,4 +47,18 @@ public class PermissionControllerServiceImplRoleMixin {
        }
        return role.isPackageQualified(packageName, context);
    }

    /**
     * @see android.permission.PermissionControllerService#onIsRoleVisible(String)
     */
    public static boolean onIsRoleVisible(@NonNull String roleName, @NonNull Context context) {
        Role role = Roles.get(context).get(roleName);
        if (role == null) {
            return false;
        }
        if (!role.isAvailable(context)) {
            return false;
        }
        return role.isVisibleAsUser(Process.myUserHandle(), context);
    }
}