diff options
| -rw-r--r-- | services/autofill/java/com/android/server/autofill/AutofillManagerService.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java index 9b833f71869b..21398e37e6c5 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java @@ -588,7 +588,7 @@ public final class AutofillManagerService extends SystemService { private void addCompatibilityModeRequestsLocked(@NonNull AutofillManagerServiceImpl service , int userId) { - mAutofillCompatState.reset(); + mAutofillCompatState.reset(userId); final ArrayMap<String, Long> compatPackages = service.getCompatibilityPackagesLocked(); if (compatPackages == null || compatPackages.isEmpty()) { @@ -721,6 +721,9 @@ public final class AutofillManagerService extends SystemService { static final class AutofillCompatState { private final Object mLock = new Object(); + /** + * Map of app->compat_state per user. + */ @GuardedBy("mLock") private SparseArray<ArrayMap<String, PackageCompatState>> mUserSpecs; @@ -787,11 +790,17 @@ public final class AutofillManagerService extends SystemService { } } - void reset() { + void reset(int userId) { synchronized (mLock) { if (mUserSpecs != null) { - mUserSpecs.clear(); - mUserSpecs = null; + mUserSpecs.delete(userId); + final int newSize = mUserSpecs.size(); + if (newSize == 0) { + if (sVerbose) Slog.v(TAG, "reseting mUserSpecs"); + mUserSpecs = null; + } else { + if (sVerbose) Slog.v(TAG, "mUserSpecs down to " + newSize); + } } } } @@ -806,7 +815,7 @@ public final class AutofillManagerService extends SystemService { for (int i = 0; i < mUserSpecs.size(); i++) { final int user = mUserSpecs.keyAt(i); pw.print(prefix); pw.print("User: "); pw.println(user); - final ArrayMap<String,PackageCompatState> perUser = mUserSpecs.get(i); + final ArrayMap<String, PackageCompatState> perUser = mUserSpecs.valueAt(i); for (int j = 0; j < perUser.size(); j++) { final String packageName = perUser.keyAt(j); final PackageCompatState state = perUser.valueAt(j); |