summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/AppOpsService.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java
index 4caeba84b202..238bf927c43e 100644
--- a/services/core/java/com/android/server/AppOpsService.java
+++ b/services/core/java/com/android/server/AppOpsService.java
@@ -2277,6 +2277,16 @@ public class AppOpsService extends IAppOpsService.Stub {
ClientRestrictionState opRestrictions = mOpUserRestrictions.valueAt(i);
opRestrictions.removeUser(userHandle);
}
+ removeUidsForUserLocked(userHandle);
+ }
+ }
+
+ private void removeUidsForUserLocked(int userHandle) {
+ for (int i = mUidStates.size() - 1; i >= 0; --i) {
+ final int uid = mUidStates.keyAt(i);
+ if (UserHandle.getUserId(uid) == userHandle) {
+ mUidStates.removeAt(i);
+ }
}
}
@@ -2396,6 +2406,12 @@ public class AppOpsService extends IAppOpsService.Stub {
perUserExcludedPackages = null;
}
}
+ if (perUserRestrictions != null) {
+ perUserRestrictions.remove(userId);
+ if (perUserRestrictions.size() <= 0) {
+ perUserRestrictions = null;
+ }
+ }
}
public boolean isDefault() {