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

Commit 9145c9c1 authored by Hui Wang's avatar Hui Wang Committed by Automerger Merge Worker
Browse files

Merge "Update the BroadcastQueue logic for runtime permissions" am: 1465700c am: 58c6e7f1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1858818

Change-Id: I0cf3f31125b822cea35003e816f8325bf61762dd
parents d61cdd1c 58c6e7f1
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -1568,17 +1568,23 @@ public final class BroadcastQueue {
                    perm = PackageManager.PERMISSION_DENIED;
                }

                if (perm == PackageManager.PERMISSION_GRANTED) {
                    skip = true;
                    break;
                }

                int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
                if (appOp != AppOpsManager.OP_NONE) {
                    if (mService.getAppOpsManager().checkOpNoThrow(appOp,
                    // When there is an app op associated with the permission,
                    // skip when both the permission and the app op are
                    // granted.
                    if ((perm == PackageManager.PERMISSION_GRANTED) && (
                                mService.getAppOpsManager().checkOpNoThrow(appOp,
                                info.activityInfo.applicationInfo.uid,
                                info.activityInfo.packageName)
                            == AppOpsManager.MODE_ALLOWED) {
                            == AppOpsManager.MODE_ALLOWED)) {
                        skip = true;
                        break;
                    }
                } else {
                    // When there is no app op associated with the permission,
                    // skip when permission is granted.
                    if (perm == PackageManager.PERMISSION_GRANTED) {
                        skip = true;
                        break;
                    }