summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit9a686c07bac366d761d5973eb7d7fbc2cf01ac41 (patch)
treefb5196cd5719ee8357295fa60202ce559b887942
parentbb5068359996253178aba8fe0aad9a832988ae96 (diff)
parent0cece3898b0f26b0fb026415d4c8f928d16296a3 (diff)
Merge "Prepare PropertyInvalidatedCache for SystemApi"
-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
-rw-r--r--core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java12
-rw-r--r--core/tests/systemproperties/src/android/os/PropertyInvalidatedCacheTest.java2
-rw-r--r--location/java/android/location/LocationManager.java2
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java4
15 files changed, 43 insertions, 45 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;
}
};
diff --git a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
index 7a2c63f70dd1..fd3079fd295d 100644
--- a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
+++ b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
@@ -77,11 +77,11 @@ public class PropertyInvalidatedCacheTests {
PropertyInvalidatedCache<Integer, Boolean> testCache =
new PropertyInvalidatedCache<>(4, CACHE_PROPERTY) {
@Override
- protected Boolean recompute(Integer x) {
+ public Boolean recompute(Integer x) {
return tester.query(x);
}
@Override
- protected boolean bypass(Integer x) {
+ public boolean bypass(Integer x) {
return x % 13 == 0;
}
};
@@ -131,21 +131,21 @@ public class PropertyInvalidatedCacheTests {
PropertyInvalidatedCache<Integer, Boolean> cache1 =
new PropertyInvalidatedCache<>(4, CACHE_PROPERTY) {
@Override
- protected Boolean recompute(Integer x) {
+ public Boolean recompute(Integer x) {
return tester.query(x);
}
};
PropertyInvalidatedCache<Integer, Boolean> cache2 =
new PropertyInvalidatedCache<>(4, CACHE_PROPERTY) {
@Override
- protected Boolean recompute(Integer x) {
+ public Boolean recompute(Integer x) {
return tester.query(x);
}
};
PropertyInvalidatedCache<Integer, Boolean> cache3 =
new PropertyInvalidatedCache<>(4, CACHE_PROPERTY, "cache3") {
@Override
- protected Boolean recompute(Integer x) {
+ public Boolean recompute(Integer x) {
return tester.query(x);
}
};
@@ -171,7 +171,7 @@ public class PropertyInvalidatedCacheTests {
// Create a new cache1. Verify that the new instance is disabled.
cache1 = new PropertyInvalidatedCache<>(4, CACHE_PROPERTY) {
@Override
- protected Boolean recompute(Integer x) {
+ public Boolean recompute(Integer x) {
return tester.query(x);
}
};
diff --git a/core/tests/systemproperties/src/android/os/PropertyInvalidatedCacheTest.java b/core/tests/systemproperties/src/android/os/PropertyInvalidatedCacheTest.java
index c4080e822a3f..182bf6d165a0 100644
--- a/core/tests/systemproperties/src/android/os/PropertyInvalidatedCacheTest.java
+++ b/core/tests/systemproperties/src/android/os/PropertyInvalidatedCacheTest.java
@@ -35,7 +35,7 @@ public class PropertyInvalidatedCacheTest extends TestCase {
}
@Override
- protected String recompute(Integer qv) {
+ public String recompute(Integer qv) {
mRecomputeCount += 1;
return "foo" + qv.toString();
}
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 61caa0bf4660..9109a18f120e 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -3640,7 +3640,7 @@ public class LocationManager {
}
@Override
- protected Boolean recompute(Integer userId) {
+ public Boolean recompute(Integer userId) {
Preconditions.checkArgument(userId >= 0);
if (mManager == null) {
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 2295ed7f3876..574a356c43f2 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -194,7 +194,7 @@ public class SubscriptionManager {
}
@Override
- protected T recompute(Void aVoid) {
+ public T recompute(Void aVoid) {
T result = mDefaultValue;
try {
@@ -228,7 +228,7 @@ public class SubscriptionManager {
}
@Override
- protected T recompute(Integer query) {
+ public T recompute(Integer query) {
T result = mDefaultValue;
try {