Cache device provisioning package in AppStandbyController.

This is not going to change within a boot session, so no need to
keep querying it multiple times.

Fixes: 198303868
Test: treehugger verification
Change-Id: I9d93452ddd1a928607cfe13c5a49f919271be0e9
This commit is contained in:
Sudheer Shanka
2021-08-31 11:34:34 -07:00
parent 951010c5e3
commit 9a94852937

View File

@@ -264,6 +264,11 @@ public class AppStandbyController
// get the cached value
private static final long NETWORK_SCORER_CACHE_DURATION_MILLIS = 5000L;
// Cache the device provisioning package queried from resource config_deviceProvisioningPackage.
// Note that there is no synchronization on this method which is okay since in the worst case
// scenario, they might be a few extra reads from resources.
private String mCachedDeviceProvisioningPackage = null;
// Messages for the handler
static final int MSG_INFORM_LISTENERS = 3;
static final int MSG_FORCE_IDLE_STATE = 4;
@@ -1641,9 +1646,11 @@ public class AppStandbyController
* returns {@code false}.
*/
private boolean isDeviceProvisioningPackage(String packageName) {
String deviceProvisioningPackage = mContext.getResources().getString(
com.android.internal.R.string.config_deviceProvisioningPackage);
return deviceProvisioningPackage != null && deviceProvisioningPackage.equals(packageName);
if (mCachedDeviceProvisioningPackage == null) {
mCachedDeviceProvisioningPackage = mContext.getResources().getString(
com.android.internal.R.string.config_deviceProvisioningPackage);
}
return mCachedDeviceProvisioningPackage.equals(packageName);
}
private boolean isCarrierApp(String packageName) {