diff options
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java | 40 | ||||
| -rw-r--r-- | services/usage/java/com/android/server/usage/AppStandbyController.java | 14 |
2 files changed, 35 insertions, 19 deletions
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 baa3e05a54b9..40edfd214dfe 100644 --- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java @@ -70,6 +70,10 @@ public class AppStandbyControllerTests { private static final long HOUR_MS = 60 * MINUTE_MS; private static final long DAY_MS = 24 * HOUR_MS; + private static final long WORKING_SET_THRESHOLD = 12 * HOUR_MS; + private static final long FREQUENT_THRESHOLD = 24 * HOUR_MS; + private static final long RARE_THRESHOLD = 48 * HOUR_MS; + private MyInjector mInjector; static class MyContextWrapper extends ContextWrapper { @@ -171,6 +175,14 @@ public class AppStandbyControllerTests { return packageName != null && packageName.equals(mBoundWidgetPackage); } + @Override + String getAppIdleSettings() { + return "screen_thresholds=0/0/0/" + HOUR_MS + ",elapsed_thresholds=0/" + + WORKING_SET_THRESHOLD + "/" + + FREQUENT_THRESHOLD + "/" + + RARE_THRESHOLD; + } + // Internal methods void setDisplayOn(boolean on) { @@ -228,12 +240,12 @@ public class AppStandbyControllerTests { AppStandbyController controller = setupController(); setChargingState(controller, true); - mInjector.mElapsedRealtime = 8 * DAY_MS; + mInjector.mElapsedRealtime = RARE_THRESHOLD + 1; assertFalse(controller.isAppIdleFilteredOrParoled(PACKAGE_1, USER_ID, mInjector.mElapsedRealtime, false)); setChargingState(controller, false); - mInjector.mElapsedRealtime = 16 * DAY_MS; + mInjector.mElapsedRealtime = 2 * RARE_THRESHOLD + 2; controller.checkIdleStates(USER_ID); assertTrue(controller.isAppIdleFilteredOrParoled(PACKAGE_1, USER_ID, mInjector.mElapsedRealtime, false)); @@ -273,26 +285,26 @@ public class AppStandbyControllerTests { reportEvent(controller, USER_INTERACTION, 0); // ACTIVE bucket - assertTimeout(controller, 11 * HOUR_MS, STANDBY_BUCKET_ACTIVE); + assertTimeout(controller, WORKING_SET_THRESHOLD - 1, STANDBY_BUCKET_ACTIVE); // WORKING_SET bucket - assertTimeout(controller, 25 * HOUR_MS, STANDBY_BUCKET_WORKING_SET); + assertTimeout(controller, WORKING_SET_THRESHOLD + 1, STANDBY_BUCKET_WORKING_SET); // WORKING_SET bucket - assertTimeout(controller, 47 * HOUR_MS, STANDBY_BUCKET_WORKING_SET); + assertTimeout(controller, FREQUENT_THRESHOLD - 1, STANDBY_BUCKET_WORKING_SET); // FREQUENT bucket - assertTimeout(controller, 4 * DAY_MS, STANDBY_BUCKET_FREQUENT); + assertTimeout(controller, FREQUENT_THRESHOLD + 1, STANDBY_BUCKET_FREQUENT); // RARE bucket - assertTimeout(controller, 9 * DAY_MS, STANDBY_BUCKET_RARE); + assertTimeout(controller, RARE_THRESHOLD + 1, STANDBY_BUCKET_RARE); - reportEvent(controller, USER_INTERACTION, 9 * DAY_MS); + reportEvent(controller, USER_INTERACTION, RARE_THRESHOLD + 1); - assertTimeout(controller, 9 * DAY_MS, STANDBY_BUCKET_ACTIVE); + assertTimeout(controller, RARE_THRESHOLD + 1, STANDBY_BUCKET_ACTIVE); // RARE bucket - assertTimeout(controller, 18 * DAY_MS, STANDBY_BUCKET_RARE); + assertTimeout(controller, RARE_THRESHOLD * 2 + 2, STANDBY_BUCKET_RARE); } @Test @@ -305,18 +317,18 @@ public class AppStandbyControllerTests { reportEvent(controller, USER_INTERACTION, 0); // ACTIVE bucket - assertTimeout(controller, 11 * HOUR_MS, STANDBY_BUCKET_ACTIVE); + assertTimeout(controller, WORKING_SET_THRESHOLD - 1, STANDBY_BUCKET_ACTIVE); // WORKING_SET bucket - assertTimeout(controller, 25 * HOUR_MS, STANDBY_BUCKET_WORKING_SET); + assertTimeout(controller, WORKING_SET_THRESHOLD + 1, STANDBY_BUCKET_WORKING_SET); // RARE bucket, should fail because the screen wasn't ON. - mInjector.mElapsedRealtime = 9 * DAY_MS; + mInjector.mElapsedRealtime = RARE_THRESHOLD + 1; controller.checkIdleStates(USER_ID); assertNotEquals(STANDBY_BUCKET_RARE, getStandbyBucket(controller)); mInjector.setDisplayOn(true); - assertTimeout(controller, 18 * DAY_MS, STANDBY_BUCKET_RARE); + assertTimeout(controller, RARE_THRESHOLD * 2 + 2, STANDBY_BUCKET_RARE); } @Test diff --git a/services/usage/java/com/android/server/usage/AppStandbyController.java b/services/usage/java/com/android/server/usage/AppStandbyController.java index 97f7de2a1b40..98a2e28ad62b 100644 --- a/services/usage/java/com/android/server/usage/AppStandbyController.java +++ b/services/usage/java/com/android/server/usage/AppStandbyController.java @@ -91,14 +91,14 @@ public class AppStandbyController { 0, 0, COMPRESS_TIME ? 120 * 1000 : 1 * ONE_HOUR, - COMPRESS_TIME ? 240 * 1000 : 8 * ONE_HOUR + COMPRESS_TIME ? 240 * 1000 : 2 * ONE_HOUR }; static final long[] ELAPSED_TIME_THRESHOLDS = { 0, COMPRESS_TIME ? 1 * ONE_MINUTE : 12 * ONE_HOUR, - COMPRESS_TIME ? 4 * ONE_MINUTE : 2 * ONE_DAY, - COMPRESS_TIME ? 16 * ONE_MINUTE : 8 * ONE_DAY + COMPRESS_TIME ? 4 * ONE_MINUTE : 24 * ONE_HOUR, + COMPRESS_TIME ? 16 * ONE_MINUTE : 48 * ONE_HOUR }; static final int[] THRESHOLD_BUCKETS = { @@ -1049,6 +1049,11 @@ public class AppStandbyController { int userId) { return appWidgetManager.isBoundWidgetPackage(packageName, userId); } + + String getAppIdleSettings() { + return Settings.Global.getString(mContext.getContentResolver(), + Settings.Global.APP_IDLE_CONSTANTS); + } } class AppStandbyHandler extends Handler { @@ -1181,8 +1186,7 @@ public class AppStandbyController { // Look at global settings for this. // TODO: Maybe apply different thresholds for different users. try { - mParser.setString(Settings.Global.getString(mContext.getContentResolver(), - Settings.Global.APP_IDLE_CONSTANTS)); + mParser.setString(mInjector.getAppIdleSettings()); } catch (IllegalArgumentException e) { Slog.e(TAG, "Bad value for app idle settings: " + e.getMessage()); // fallthrough, mParser is empty and all defaults will be returned. |