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

Commit 59e6b3c8 authored by Jing Ji's avatar Jing Ji Committed by Android (Google) Code Review
Browse files

Merge "Only evaluate the appops when the preflight check says soft denied"

parents b9ede251 bf16066b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import android.hardware.usb.UsbManager;
import android.healthconnect.HealthConnectManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.permission.PermissionCheckerManager;
import android.util.ArraySet;
import android.util.SparseArray;

@@ -880,11 +881,12 @@ public abstract class ForegroundServiceTypePolicy {
        int checkPermission(@NonNull Context context, @NonNull String name, int callerUid,
                int callerPid, String packageName, boolean allowWhileInUse) {
            // Simple case, check if it's already granted.
            if (PermissionChecker.checkPermissionForPreflight(context, name,
                    callerPid, callerUid, packageName) == PERMISSION_GRANTED) {
            @PackageManager.PermissionResult int result;
            if ((result = PermissionChecker.checkPermissionForPreflight(context, name,
                    callerPid, callerUid, packageName)) == PERMISSION_GRANTED) {
                return PERMISSION_GRANTED;
            }
            if (allowWhileInUse) {
            if (allowWhileInUse && result == PermissionCheckerManager.PERMISSION_SOFT_DENIED) {
                // Check its appops
                final int opCode = AppOpsManager.permissionToOpCode(name);
                final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class);