diff options
| author | 2016-01-14 00:59:58 +0000 | |
|---|---|---|
| committer | 2016-01-14 00:59:58 +0000 | |
| commit | 6a8c328d7386d19f4590dfbfc71338b1ec208fb7 (patch) | |
| tree | 37ed5a93611f75ffd3cdff0e4ad717e8890e048e | |
| parent | b05f242bc809196a58b1142665a336fc23dc7f9c (diff) | |
| parent | a5c71060174c5357c75592998fb095e768eca8bd (diff) | |
Merge "UsageStats: Use new settings key idle_duration2 for app idle" into mnc-dr1.5-dev am: d2e215978b
am: a5c7106017
* commit 'a5c71060174c5357c75592998fb095e768eca8bd':
UsageStats: Use new settings key idle_duration2 for app idle
3 files changed, 20 insertions, 4 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9a7d7bb583a7..87922b06711e 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7281,10 +7281,12 @@ public final class Settings { * The following keys are supported: * * <pre> - * idle_duration (long) + * idle_duration2 (long) * wallclock_threshold (long) * parole_interval (long) * parole_duration (long) + * + * idle_duration (long) // This is deprecated and used to circumvent b/26355386. * </pre> * * <p> diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index c9710be44d7c..f8ed8a360ebc 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -280,6 +280,11 @@ public class UsageStatsService extends SystemService implements mHandler.sendEmptyMessageDelayed(MSG_FLUSH_TO_DISK, FLUSH_INTERVAL); } + @Override + public long getAppIdleRollingWindowDurationMillis() { + return mAppIdleWallclockThresholdMillis * 2; + } + private void cleanUpRemovedUsersLocked() { final List<UserInfo> users = mUserManager.getUsers(true); if (users == null || users.size() == 0) { @@ -1107,7 +1112,13 @@ public class UsageStatsService extends SystemService implements * Observe settings changes for {@link Settings.Global#APP_IDLE_CONSTANTS}. */ private class SettingsObserver extends ContentObserver { - private static final String KEY_IDLE_DURATION = "idle_duration"; + /** + * This flag has been used to disable app idle on older builds with bug b/26355386. + */ + @Deprecated + private static final String KEY_IDLE_DURATION_OLD = "idle_duration"; + + private static final String KEY_IDLE_DURATION = "idle_duration2"; private static final String KEY_WALLCLOCK_THRESHOLD = "wallclock_threshold"; private static final String KEY_PAROLE_INTERVAL = "parole_interval"; private static final String KEY_PAROLE_DURATION = "parole_duration"; diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java index addb1a1737d4..25cc13c34050 100644 --- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java @@ -68,6 +68,7 @@ class UserUsageStatsService { interface StatsUpdatedListener { void onStatsUpdated(); + long getAppIdleRollingWindowDurationMillis(); } UserUsageStatsService(Context context, int userId, File usageStatsDir, @@ -581,9 +582,11 @@ class UserUsageStatsService { */ void refreshAppIdleRollingWindow(final long currentTimeMillis, final long deviceUsageTime) { // Start the rolling window for AppIdle requests. + final long startRangeMillis = currentTimeMillis - + mListener.getAppIdleRollingWindowDurationMillis(); + List<IntervalStats> stats = mDatabase.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, - currentTimeMillis - (1000 * 60 * 60 * 24 * 2), currentTimeMillis, - new StatCombiner<IntervalStats>() { + startRangeMillis, currentTimeMillis, new StatCombiner<IntervalStats>() { @Override public void combine(IntervalStats stats, boolean mutable, List<IntervalStats> accumulatedResult) { |