Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1559fed4 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

DO NOT MERGE ANYWHERE: UsageStats: Use new settings key idle_duration2 for app idle

Ignores the old, re-appropriated key "idle_duration" which is now
set to a high value in order to force disable app idle on devices
with bug b/26355386

Bug:26355386
Change-Id: Iff9de843ad6e547d29c1583687fc7f7ce7e15090
parent 2bd90c6a
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -7274,10 +7274,12 @@ public final class Settings {
         * The following keys are supported:
         * The following keys are supported:
         *
         *
         * <pre>
         * <pre>
         * idle_duration        (long)
         * idle_duration2       (long)
         * wallclock_threshold  (long)
         * wallclock_threshold  (long)
         * parole_interval      (long)
         * parole_interval      (long)
         * parole_duration      (long)
         * parole_duration      (long)
         *
         * idle_duration        (long) // This is deprecated and used to circumvent b/26355386.
         * </pre>
         * </pre>
         *
         *
         * <p>
         * <p>
+12 −1
Original line number Original line Diff line number Diff line
@@ -280,6 +280,11 @@ public class UsageStatsService extends SystemService implements
        mHandler.sendEmptyMessageDelayed(MSG_FLUSH_TO_DISK, FLUSH_INTERVAL);
        mHandler.sendEmptyMessageDelayed(MSG_FLUSH_TO_DISK, FLUSH_INTERVAL);
    }
    }


    @Override
    public long getAppIdleRollingWindowDurationMillis() {
        return mAppIdleWallclockThresholdMillis * 2;
    }

    private void cleanUpRemovedUsersLocked() {
    private void cleanUpRemovedUsersLocked() {
        final List<UserInfo> users = mUserManager.getUsers(true);
        final List<UserInfo> users = mUserManager.getUsers(true);
        if (users == null || users.size() == 0) {
        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}.
     * Observe settings changes for {@link Settings.Global#APP_IDLE_CONSTANTS}.
     */
     */
    private class SettingsObserver extends ContentObserver {
    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_WALLCLOCK_THRESHOLD = "wallclock_threshold";
        private static final String KEY_PAROLE_INTERVAL = "parole_interval";
        private static final String KEY_PAROLE_INTERVAL = "parole_interval";
        private static final String KEY_PAROLE_DURATION = "parole_duration";
        private static final String KEY_PAROLE_DURATION = "parole_duration";
+5 −2
Original line number Original line Diff line number Diff line
@@ -68,6 +68,7 @@ class UserUsageStatsService {


    interface StatsUpdatedListener {
    interface StatsUpdatedListener {
        void onStatsUpdated();
        void onStatsUpdated();
        long getAppIdleRollingWindowDurationMillis();
    }
    }


    UserUsageStatsService(Context context, int userId, File usageStatsDir,
    UserUsageStatsService(Context context, int userId, File usageStatsDir,
@@ -581,9 +582,11 @@ class UserUsageStatsService {
     */
     */
    void refreshAppIdleRollingWindow(final long currentTimeMillis, final long deviceUsageTime) {
    void refreshAppIdleRollingWindow(final long currentTimeMillis, final long deviceUsageTime) {
        // Start the rolling window for AppIdle requests.
        // Start the rolling window for AppIdle requests.
        final long startRangeMillis = currentTimeMillis -
                mListener.getAppIdleRollingWindowDurationMillis();

        List<IntervalStats> stats = mDatabase.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,
        List<IntervalStats> stats = mDatabase.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,
                currentTimeMillis - (1000 * 60 * 60 * 24 * 2), currentTimeMillis,
                startRangeMillis, currentTimeMillis, new StatCombiner<IntervalStats>() {
                new StatCombiner<IntervalStats>() {
                    @Override
                    @Override
                    public void combine(IntervalStats stats, boolean mutable,
                    public void combine(IntervalStats stats, boolean mutable,
                                        List<IntervalStats> accumulatedResult) {
                                        List<IntervalStats> accumulatedResult) {