summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Severson <evanseverson@google.com> 2023-12-01 06:34:19 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-12-01 06:34:19 +0000
commitb1c0fa205e06f25ae99057e1635f6492defaf6b5 (patch)
tree3c32d05bbf0de684fdc7c0b4a2e522e814a3c129
parent9ea2396512e30e00f5d906acce2a3aaa0512a31d (diff)
parentee2998b3cb867caa468eebf11ba613670aed7da3 (diff)
Merge "Reduce unnecessary callbacks in AppOpsService." into main am: baa658bced am: ee2998b3cb
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2843775 Change-Id: I14bc98b0d595467d72a21317927e32f3ffd09458 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/appop/AppOpsCheckingServiceImpl.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/appop/AppOpsCheckingServiceImpl.java b/services/core/java/com/android/server/appop/AppOpsCheckingServiceImpl.java
index 4dfd9b076354..f0dd23ce832a 100644
--- a/services/core/java/com/android/server/appop/AppOpsCheckingServiceImpl.java
+++ b/services/core/java/com/android/server/appop/AppOpsCheckingServiceImpl.java
@@ -221,20 +221,24 @@ public class AppOpsCheckingServiceImpl implements AppOpsCheckingServiceInterface
synchronized (mLock) {
SparseIntArray opModes = mUidModes.get(uid, null);
if (opModes == null) {
- if (mode != defaultMode) {
- opModes = new SparseIntArray();
- mUidModes.put(uid, opModes);
- opModes.put(op, mode);
- scheduleWriteLocked();
+ if (mode == defaultMode) {
+ return false;
}
+ opModes = new SparseIntArray();
+ mUidModes.put(uid, opModes);
+ opModes.put(op, mode);
+ scheduleWriteLocked();
} else {
- if (opModes.indexOfKey(op) >= 0 && opModes.get(op) == mode) {
+ if (opModes.indexOfKey(op) >= 0) {
+ if (opModes.get(op) == mode) {
+ return false;
+ }
+ } else if (mode == defaultMode) {
return false;
}
if (mode == defaultMode) {
opModes.delete(op);
if (opModes.size() <= 0) {
- opModes = null;
mUidModes.delete(uid);
}
} else {