summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorLee Shombert <shombert@google.com>2022-01-06 23:14:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-01-06 23:14:05 +0000
commit9a686c07bac366d761d5973eb7d7fbc2cf01ac41 (patch)
treefb5196cd5719ee8357295fa60202ce559b887942 /core/java/android
parentbb5068359996253178aba8fe0aad9a832988ae96 (diff)
parent0cece3898b0f26b0fb026415d4c8f928d16296a3 (diff)
Merge "Prepare PropertyInvalidatedCache for SystemApi"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/accounts/AccountManager.java8
-rw-r--r--core/java/android/app/ApplicationPackageManager.java4
-rw-r--r--core/java/android/app/PropertyInvalidatedCache.java10
-rw-r--r--core/java/android/app/compat/ChangeIdStateCache.java2
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java8
-rw-r--r--core/java/android/bluetooth/BluetoothDevice.java2
-rw-r--r--core/java/android/content/pm/PackageManager.java14
-rw-r--r--core/java/android/hardware/display/DisplayManagerGlobal.java2
-rw-r--r--core/java/android/os/PowerManager.java4
-rw-r--r--core/java/android/os/UserManager.java8
-rw-r--r--core/java/android/permission/PermissionManager.java6
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;
}
};