summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java40
-rw-r--r--services/usage/java/com/android/server/usage/AppStandbyController.java14
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.