diff options
| author | Lee Shombert <shombert@google.com> | 2022-01-06 23:14:05 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-01-06 23:14:05 +0000 |
| commit | 9a686c07bac366d761d5973eb7d7fbc2cf01ac41 (patch) | |
| tree | fb5196cd5719ee8357295fa60202ce559b887942 /core/java | |
| parent | bb5068359996253178aba8fe0aad9a832988ae96 (diff) | |
| parent | 0cece3898b0f26b0fb026415d4c8f928d16296a3 (diff) | |
Merge "Prepare PropertyInvalidatedCache for SystemApi"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/accounts/AccountManager.java | 8 | ||||
| -rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 4 | ||||
| -rw-r--r-- | core/java/android/app/PropertyInvalidatedCache.java | 10 | ||||
| -rw-r--r-- | core/java/android/app/compat/ChangeIdStateCache.java | 2 | ||||
| -rw-r--r-- | core/java/android/bluetooth/BluetoothAdapter.java | 8 | ||||
| -rw-r--r-- | core/java/android/bluetooth/BluetoothDevice.java | 2 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 14 | ||||
| -rw-r--r-- | core/java/android/hardware/display/DisplayManagerGlobal.java | 2 | ||||
| -rw-r--r-- | core/java/android/os/PowerManager.java | 4 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 8 | ||||
| -rw-r--r-- | core/java/android/permission/PermissionManager.java | 6 |
11 files changed, 33 insertions, 35 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 2bbf280277ff..fa9de6e27282 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -384,7 +384,7 @@ public class AccountManager { new PropertyInvalidatedCache<UserIdPackage, Account[]>( CACHE_ACCOUNTS_DATA_SIZE, CACHE_KEY_ACCOUNTS_DATA_PROPERTY) { @Override - protected Account[] recompute(UserIdPackage userAndPackage) { + public Account[] recompute(UserIdPackage userAndPackage) { try { return mService.getAccountsAsUser(null, userAndPackage.userId, userAndPackage.packageName); } catch (RemoteException e) { @@ -392,11 +392,11 @@ public class AccountManager { } } @Override - protected boolean bypass(UserIdPackage query) { + public boolean bypass(UserIdPackage query) { return query.userId < 0; } @Override - protected boolean debugCompareQueryResults(Account[] l, Account[] r) { + public boolean resultEquals(Account[] l, Account[] r) { if (l == r) { return true; } else if (l == null || r == null) { @@ -455,7 +455,7 @@ public class AccountManager { new PropertyInvalidatedCache<AccountKeyData, String>(CACHE_USER_DATA_SIZE, CACHE_KEY_USER_DATA_PROPERTY) { @Override - protected String recompute(AccountKeyData accountKeyData) { + public String recompute(AccountKeyData accountKeyData) { Account account = accountKeyData.account; String key = accountKeyData.key; diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 44fb5db02f5d..49c75c49b2d7 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -802,7 +802,7 @@ public class ApplicationPackageManager extends PackageManager { new PropertyInvalidatedCache<HasSystemFeatureQuery, Boolean>( 256, "cache_key.has_system_feature") { @Override - protected Boolean recompute(HasSystemFeatureQuery query) { + public Boolean recompute(HasSystemFeatureQuery query) { try { return ActivityThread.currentActivityThread().getPackageManager(). hasSystemFeature(query.name, query.version); @@ -1098,7 +1098,7 @@ public class ApplicationPackageManager extends PackageManager { new PropertyInvalidatedCache<Integer, GetPackagesForUidResult>( 32, CACHE_KEY_PACKAGES_FOR_UID_PROPERTY) { @Override - protected GetPackagesForUidResult recompute(Integer uid) { + public GetPackagesForUidResult recompute(Integer uid) { try { return new GetPackagesForUidResult( ActivityThread.currentActivityThread(). diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java index ef4d7b1f42e2..978160c1c243 100644 --- a/core/java/android/app/PropertyInvalidatedCache.java +++ b/core/java/android/app/PropertyInvalidatedCache.java @@ -505,13 +505,13 @@ public abstract class PropertyInvalidatedCache<Query, Result> { * block. If this function returns null, the result of the cache query is null. There is no * "negative cache" in the query: we don't cache null results at all. */ - protected abstract Result recompute(Query query); + public abstract Result recompute(Query query); /** * Return true if the query should bypass the cache. The default behavior is to * always use the cache but the method can be overridden for a specific class. */ - protected boolean bypass(Query query) { + public boolean bypass(Query query) { return false; } @@ -519,7 +519,7 @@ public abstract class PropertyInvalidatedCache<Query, Result> { * Determines if a pair of responses are considered equal. Used to determine whether * a cache is inadvertently returning stale results when VERIFY is set to true. */ - protected boolean debugCompareQueryResults(Result cachedResult, Result fetchedResult) { + protected boolean resultEquals(Result cachedResult, Result fetchedResult) { // If a service crashes and returns a null result, the cached value remains valid. if (fetchedResult != null) { return Objects.equals(cachedResult, fetchedResult); @@ -990,11 +990,11 @@ public abstract class PropertyInvalidatedCache<Query, Result> { } } - protected Result maybeCheckConsistency(Query query, Result proposedResult) { + private Result maybeCheckConsistency(Query query, Result proposedResult) { if (VERIFY) { Result resultToCompare = recompute(query); boolean nonceChanged = (getCurrentNonce() != mLastSeenNonce); - if (!nonceChanged && !debugCompareQueryResults(proposedResult, resultToCompare)) { + if (!nonceChanged && !resultEquals(proposedResult, resultToCompare)) { Log.e(TAG, TextUtils.formatSimple( "cache %s inconsistent for %s is %s should be %s", cacheName(), queryToString(query), diff --git a/core/java/android/app/compat/ChangeIdStateCache.java b/core/java/android/app/compat/ChangeIdStateCache.java index 3d0bf91bf8d7..acd404b7d475 100644 --- a/core/java/android/app/compat/ChangeIdStateCache.java +++ b/core/java/android/app/compat/ChangeIdStateCache.java @@ -84,7 +84,7 @@ public final class ChangeIdStateCache } @Override - protected Boolean recompute(ChangeIdStateQuery query) { + public Boolean recompute(ChangeIdStateQuery query) { final long token = Binder.clearCallingIdentity(); try { if (query.type == ChangeIdStateQuery.QUERY_BY_PACKAGE_NAME) { diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index 9a0f02e8b2b6..7e5e96d802d9 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -1062,7 +1062,7 @@ public final class BluetoothAdapter { 8, BLUETOOTH_GET_STATE_CACHE_PROPERTY) { @Override @SuppressLint("AndroidFrameworkRequiresPermission") - protected Integer recompute(Void query) { + public Integer recompute(Void query) { try { return mService.getState(); } catch (RemoteException e) { @@ -2085,7 +2085,7 @@ public final class BluetoothAdapter { 8, BLUETOOTH_FILTERING_CACHE_PROPERTY) { @Override @SuppressLint("AndroidFrameworkRequiresPermission") - protected Boolean recompute(Void query) { + public Boolean recompute(Void query) { try { mServiceLock.readLock().lock(); if (mService != null) { @@ -2540,7 +2540,7 @@ public final class BluetoothAdapter { */ @Override @SuppressLint("AndroidFrameworkRequiresPermission") - protected Integer recompute(Void query) { + public Integer recompute(Void query) { try { return mService.getAdapterConnectionState(); } catch (RemoteException e) { @@ -2605,7 +2605,7 @@ public final class BluetoothAdapter { 8, BLUETOOTH_PROFILE_CACHE_PROPERTY) { @Override @SuppressLint("AndroidFrameworkRequiresPermission") - protected Integer recompute(Integer query) { + public Integer recompute(Integer query) { try { mServiceLock.readLock().lock(); if (mService != null) { diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index 93f026860856..fc99942cb784 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -1604,7 +1604,7 @@ public final class BluetoothDevice implements Parcelable, Attributable { 8, BLUETOOTH_BONDING_CACHE_PROPERTY) { @Override @SuppressLint("AndroidFrameworkRequiresPermission") - protected Integer recompute(BluetoothDevice query) { + public Integer recompute(BluetoothDevice query) { try { return sService.getBondState(query, mAttributionSource); } catch (RemoteException e) { diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 338dfd62f316..819cbb0f347d 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -10187,16 +10187,15 @@ public abstract class PackageManager { 16, PermissionManager.CACHE_KEY_PACKAGE_INFO, "getApplicationInfo") { @Override - protected ApplicationInfo recompute(ApplicationInfoQuery query) { + public ApplicationInfo recompute(ApplicationInfoQuery query) { return getApplicationInfoAsUserUncached( query.packageName, query.flags, query.userId); } @Override - protected ApplicationInfo maybeCheckConsistency( - ApplicationInfoQuery query, ApplicationInfo proposedResult) { + public boolean resultEquals(ApplicationInfo cached, ApplicationInfo fetched) { // Implementing this debug check for ApplicationInfo would require a // complicated deep comparison, so just bypass it for now. - return proposedResult; + return true; } }; @@ -10289,16 +10288,15 @@ public abstract class PackageManager { 32, PermissionManager.CACHE_KEY_PACKAGE_INFO, "getPackageInfo") { @Override - protected PackageInfo recompute(PackageInfoQuery query) { + public PackageInfo recompute(PackageInfoQuery query) { return getPackageInfoAsUserUncached( query.packageName, query.flags, query.userId); } @Override - protected PackageInfo maybeCheckConsistency( - PackageInfoQuery query, PackageInfo proposedResult) { + public boolean resultEquals(PackageInfo cached, PackageInfo fetched) { // Implementing this debug check for PackageInfo would require a // complicated deep comparison, so just bypass it for now. - return proposedResult; + return true; } }; diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java index e73116556758..616c42a909d3 100644 --- a/core/java/android/hardware/display/DisplayManagerGlobal.java +++ b/core/java/android/hardware/display/DisplayManagerGlobal.java @@ -128,7 +128,7 @@ public final class DisplayManagerGlobal { 8, // size of display cache CACHE_KEY_DISPLAY_INFO_PROPERTY) { @Override - protected DisplayInfo recompute(Integer id) { + public DisplayInfo recompute(Integer id) { try { return mDm.getDisplayInfo(id); } catch (RemoteException ex) { diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 74fffd0ae10d..92d652df35d9 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -1011,7 +1011,7 @@ public final class PowerManager { new PropertyInvalidatedCache<Void, Boolean>(MAX_CACHE_ENTRIES, CACHE_KEY_IS_POWER_SAVE_MODE_PROPERTY) { @Override - protected Boolean recompute(Void query) { + public Boolean recompute(Void query) { try { return mService.isPowerSaveMode(); } catch (RemoteException e) { @@ -1024,7 +1024,7 @@ public final class PowerManager { new PropertyInvalidatedCache<Void, Boolean>(MAX_CACHE_ENTRIES, CACHE_KEY_IS_INTERACTIVE_PROPERTY) { @Override - protected Boolean recompute(Void query) { + public Boolean recompute(Void query) { try { return mService.isInteractive(); } catch (RemoteException e) { diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index b3639e419a56..b4f3fa0ae80c 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -2754,7 +2754,7 @@ public class UserManager { new PropertyInvalidatedCache<Integer, Boolean>( 32, CACHE_KEY_IS_USER_UNLOCKED_PROPERTY) { @Override - protected Boolean recompute(Integer query) { + public Boolean recompute(Integer query) { try { return mService.isUserUnlocked(query); } catch (RemoteException re) { @@ -2762,7 +2762,7 @@ public class UserManager { } } @Override - protected boolean bypass(Integer query) { + public boolean bypass(Integer query) { return query < 0; } }; @@ -2772,7 +2772,7 @@ public class UserManager { new PropertyInvalidatedCache<Integer, Boolean>( 32, CACHE_KEY_IS_USER_UNLOCKED_PROPERTY) { @Override - protected Boolean recompute(Integer query) { + public Boolean recompute(Integer query) { try { return mService.isUserUnlockingOrUnlocked(query); } catch (RemoteException re) { @@ -2780,7 +2780,7 @@ public class UserManager { } } @Override - protected boolean bypass(Integer query) { + public boolean bypass(Integer query) { return query < 0; } }; diff --git a/core/java/android/permission/PermissionManager.java b/core/java/android/permission/PermissionManager.java index 61e48c587e1b..3ea50e98879b 100644 --- a/core/java/android/permission/PermissionManager.java +++ b/core/java/android/permission/PermissionManager.java @@ -1447,7 +1447,7 @@ public final class PermissionManager { new PropertyInvalidatedCache<PermissionQuery, Integer>( 2048, CACHE_KEY_PACKAGE_INFO, "checkPermission") { @Override - protected Integer recompute(PermissionQuery query) { + public Integer recompute(PermissionQuery query) { return checkPermissionUncached(query.permission, query.pid, query.uid); } }; @@ -1530,12 +1530,12 @@ public final class PermissionManager { new PropertyInvalidatedCache<PackageNamePermissionQuery, Integer>( 16, CACHE_KEY_PACKAGE_INFO, "checkPackageNamePermission") { @Override - protected Integer recompute(PackageNamePermissionQuery query) { + public Integer recompute(PackageNamePermissionQuery query) { return checkPackageNamePermissionUncached( query.permName, query.pkgName, query.userId); } @Override - protected boolean bypass(PackageNamePermissionQuery query) { + public boolean bypass(PackageNamePermissionQuery query) { return query.userId < 0; } }; |
