diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java index f36084386f486..0cadbfd23dbad 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -456,7 +456,7 @@ public class AppStandbyController implements AppStandbyInternal { mSystemServicesReady = true; // Offload to handler thread to avoid boot time impact. - mHandler.post(mInjector::updatePowerWhitelistCache); + mHandler.post(AppStandbyController.this::updatePowerWhitelistCache); boolean userFileExists; synchronized (mAppIdleLock) { @@ -1684,6 +1684,14 @@ public class AppStandbyController implements AppStandbyInternal { } } + private void updatePowerWhitelistCache() { + if (mInjector.getBootPhase() < PHASE_SYSTEM_SERVICES_READY) { + return; + } + mInjector.updatePowerWhitelistCache(); + postCheckIdleStates(UserHandle.USER_ALL); + } + private class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { @@ -1999,10 +2007,7 @@ public class AppStandbyController implements AppStandbyInternal { } } - private void updatePowerWhitelistCache() { - if (mBootPhase < PHASE_SYSTEM_SERVICES_READY) { - return; - } + void updatePowerWhitelistCache() { try { // Don't call out to DeviceIdleController with the lock held. final String[] whitelistedPkgs = @@ -2204,7 +2209,7 @@ public class AppStandbyController implements AppStandbyInternal { break; case PowerManager.ACTION_POWER_SAVE_WHITELIST_CHANGED: if (mSystemServicesReady) { - mHandler.post(mInjector::updatePowerWhitelistCache); + mHandler.post(AppStandbyController.this::updatePowerWhitelistCache); } break; } diff --git a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java index 1a04d2ff8c290..4dec7a1a0ab9f 100644 --- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java @@ -217,6 +217,10 @@ public class AppStandbyControllerTests { return mNonIdleWhitelistApps.contains(packageName); } + @Override + void updatePowerWhitelistCache() { + } + @Override boolean isRestrictedBucketEnabled() { return mIsRestrictedBucketEnabled;