diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 79fb86365b74d..2bbf280277ff4 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -27,6 +27,7 @@ import android.annotation.Size; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.UserHandleAware; +import android.annotation.UserIdInt; import android.app.Activity; import android.app.PropertyInvalidatedCache; import android.compat.annotation.UnsupportedAppUsage; @@ -349,6 +350,7 @@ public class AccountManager { private static final class UserIdPackage { + @UserIdInt public int userId; public String packageName; @@ -379,7 +381,8 @@ public class AccountManager { } PropertyInvalidatedCache mAccountsForUserCache = - new PropertyInvalidatedCache(CACHE_ACCOUNTS_DATA_SIZE, CACHE_KEY_ACCOUNTS_DATA_PROPERTY) { + new PropertyInvalidatedCache( + CACHE_ACCOUNTS_DATA_SIZE, CACHE_KEY_ACCOUNTS_DATA_PROPERTY) { @Override protected Account[] recompute(UserIdPackage userAndPackage) { try { @@ -389,6 +392,10 @@ public class AccountManager { } } @Override + protected boolean bypass(UserIdPackage query) { + return query.userId < 0; + } + @Override protected boolean debugCompareQueryResults(Account[] l, Account[] r) { if (l == r) { return true; diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 8709f071f222d..09b7aaa9545c2 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -2491,6 +2491,10 @@ public class UserManager { throw re.rethrowFromSystemServer(); } } + @Override + protected boolean bypass(Integer query) { + return query < 0; + } }; // Uses IS_USER_UNLOCKED_PROPERTY for invalidation as the APIs have the same dependencies. @@ -2505,6 +2509,10 @@ public class UserManager { throw re.rethrowFromSystemServer(); } } + @Override + protected boolean bypass(Integer query) { + return query < 0; + } }; /** {@hide} */