summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2020-07-16 13:48:00 -0700
committerSudheer Shanka <sudheersai@google.com>2020-07-16 23:48:32 -0700
commit67eaf157db28e5338c414bf78d18fe0726e92b0a (patch)
tree777ce3454f03871e4eda2eb157117b40a8724ae1
parent4eca322f615041b4fe56a4a6701553ac074f3a22 (diff)
Check app idle states and inform listeners on power-save-wl change.
Bug: 161477606 Test: atest ./hostsidetests/net/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java Change-Id: I0bb436f4c45b135c8e9c873c9073ef4a505192f7
-rw-r--r--apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java17
-rw-r--r--services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java4
2 files changed, 15 insertions, 6 deletions
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 f36084386f48..0cadbfd23dba 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 1a04d2ff8c29..4dec7a1a0ab9 100644
--- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
@@ -218,6 +218,10 @@ public class AppStandbyControllerTests {
}
@Override
+ void updatePowerWhitelistCache() {
+ }
+
+ @Override
boolean isRestrictedBucketEnabled() {
return mIsRestrictedBucketEnabled;
}