From 425317aeea6f4878c04961475131ceb86befdf7e Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Thu, 12 Nov 2020 19:04:28 -0800 Subject: [PATCH] Avoid calling postOneTimeCheckIdleStates on boot. When we used Settings flags, we didn't call postOneTimeCheckIdleStates() on boot. Remove it from the boot path when using DeviceConfig to avoid unnecessary work. Bug: 172193270 Test: atest AppStandbyControllerTests Change-Id: I6b05eb4a6565e49c051d3a2ca41986d873acf4e8 --- .../com/android/server/usage/AppStandbyController.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 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 6f7dde292c563..1157ee905b860 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -2390,7 +2390,8 @@ public class AppStandbyController implements AppStandbyInternal { false, this); mInjector.registerDeviceConfigPropertiesChangedListener(this); // Load all the constants. - onPropertiesChanged(mInjector.getDeviceConfigProperties()); + // postOneTimeCheckIdleStates() doesn't need to be called on boot. + processProperties(mInjector.getDeviceConfigProperties()); updateSettings(); } @@ -2402,6 +2403,11 @@ public class AppStandbyController implements AppStandbyInternal { @Override public void onPropertiesChanged(DeviceConfig.Properties properties) { + processProperties(properties); + postOneTimeCheckIdleStates(); + } + + private void processProperties(DeviceConfig.Properties properties) { boolean timeThresholdsUpdated = false; synchronized (mAppIdleLock) { for (String name : properties.getKeyset()) { @@ -2482,7 +2488,6 @@ public class AppStandbyController implements AppStandbyInternal { } } } - postOneTimeCheckIdleStates(); } private void updateTimeThresholds() {