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

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

Merge "Add PermissionControllerManager.isApplicationQualifiedForRole()."

parents debba62d 23ce29ed
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import com.android.packageinstaller.permission.model.AppPermissions;
import com.android.packageinstaller.permission.model.Permission;
import com.android.packageinstaller.permission.model.PermissionUsages;
import com.android.packageinstaller.permission.utils.Utils;
import com.android.packageinstaller.role.service.PermissionControllerServiceImplRoleMixin;

import org.xmlpull.v1.XmlSerializer;

@@ -575,7 +576,7 @@ public final class PermissionControllerServiceImpl extends PermissionControllerS
        return numApps;
    }

    @Override public @NonNull List<RuntimePermissionUsageInfo> onPermissionUsageResult(
    @Override public @NonNull List<RuntimePermissionUsageInfo> onGetPermissionUsages(
            boolean countSystem, long numMillis) {
        ArraySet<String> launcherPkgs = getLauncherPackages(this);

@@ -630,4 +631,11 @@ public final class PermissionControllerServiceImpl extends PermissionControllerS
        }
        return users;
    }

    @Override
    public boolean onIsApplicationQualifiedForRole(@NonNull String roleName,
            @NonNull String packageName) {
        return PermissionControllerServiceImplRoleMixin.onIsApplicationQualifiedForRole(roleName,
                packageName, this);
    }
}
+49 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.packageinstaller.role.service;

import android.content.Context;

import androidx.annotation.NonNull;

import com.android.packageinstaller.role.model.Role;
import com.android.packageinstaller.role.model.Roles;

/**
 * Mixin for {@link com.android.packageinstaller.permission.service.PermissionControllerServiceImpl}
 * methods that are related to roles.
 */
public class PermissionControllerServiceImplRoleMixin {

    private PermissionControllerServiceImplRoleMixin() {}

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