From 72e972d5c2eb02d1d1ade4a03b6d6e23780836b5 Mon Sep 17 00:00:00 2001 From: Rhed Jao Date: Thu, 14 Oct 2021 12:02:52 +0000 Subject: [PATCH] Revert "Revert "Fixes incorrect array type comparison"" This reverts commit bf3e37f712e55c28bc610a12694e86aa45d5af77. Reason for revert: 187853334 Change-Id: I21071979d056486738c24dde0bccdf5971992f24 --- .../core/java/com/android/server/pm/AppsFilter.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java index 9f443ddd58fbe..afb91dad700c2 100644 --- a/services/core/java/com/android/server/pm/AppsFilter.java +++ b/services/core/java/com/android/server/pm/AppsFilter.java @@ -18,6 +18,7 @@ package com.android.server.pm; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; import static android.os.UserHandle.USER_ALL; +import static android.os.UserHandle.USER_NULL; import static android.provider.DeviceConfig.NAMESPACE_PACKAGE_MANAGER_SERVICE; import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE; @@ -858,8 +859,14 @@ public class AppsFilter implements Watchable, Snappable { private void updateEntireShouldFilterCache(int subjectUserId) { mStateProvider.runWithState((settings, users) -> { - int userId = subjectUserId; - if (!ArrayUtils.contains(users, subjectUserId)) { + int userId = USER_NULL; + for (int u = 0; u < users.length; u++) { + if (subjectUserId == users[u].id) { + userId = subjectUserId; + break; + } + } + if (userId == USER_NULL) { Slog.e(TAG, "We encountered a new user that isn't a member of known users, " + "updating the whole cache"); userId = USER_ALL; @@ -881,7 +888,7 @@ public class AppsFilter implements Watchable, Snappable { if (UserHandle.getUserId(uid2) == userId) { continue; } - cache.setValueAt(uid1, uid2, mShouldFilterCache.valueAt(uid1, uid2)); + cache.put(uid1, uid2, mShouldFilterCache.get(uid1, uid2)); } } }