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

Commit 69d4b575 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Log time tick alarms

So we can be sure that our time ticks were scheduled and are
working properly - or not.

Change-Id: I6b3beac69a324ea577ce2f14d041b6b90d1f9800
Fixes: 113550401
Test: adb shell dumpsys activity service com.android.systemui
parent 322a8b21
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -157,6 +157,12 @@ public class DozeLog {
        log("missedTick by=" + delay);
    }

    public static void traceTimeTickScheduled(long when, long triggerAt) {
        if (!ENABLED) return;
        log("timeTickScheduled at=" + FORMAT.format(new Date(when)) + " triggerAt="
                + FORMAT.format(new Date(triggerAt)));
    }

    public static void traceKeyguard(boolean showing) {
        if (!ENABLED) return;
        log("keyguard " + showing);
+6 −2
Original line number Diff line number Diff line
@@ -158,8 +158,12 @@ public class DozeUi implements DozeMachine.Part {
            return;
        }

        long delta = roundToNextMinute(System.currentTimeMillis()) - System.currentTimeMillis();
        mTimeTicker.schedule(delta, AlarmTimeout.MODE_IGNORE_IF_SCHEDULED);
        long time = System.currentTimeMillis();
        long delta = roundToNextMinute(time) - System.currentTimeMillis();
        boolean scheduled = mTimeTicker.schedule(delta, AlarmTimeout.MODE_IGNORE_IF_SCHEDULED);
        if (scheduled) {
            DozeLog.traceTimeTickScheduled(time, time + delta);
        }
        mLastTimeTickElapsed = SystemClock.elapsedRealtime();
    }

+11 −2
Original line number Diff line number Diff line
@@ -44,7 +44,15 @@ public class AlarmTimeout implements AlarmManager.OnAlarmListener {
        mHandler = handler;
    }

    public void schedule(long timeout, int mode) {
    /**
     * Schedules an alarm in {@code timeout} milliseconds in the future.
     *
     * @param timeout How long to wait from now.
     * @param mode {@link #MODE_CRASH_IF_SCHEDULED}, {@link #MODE_IGNORE_IF_SCHEDULED} or
     *             {@link #MODE_RESCHEDULE_IF_SCHEDULED}.
     * @return {@code true} when scheduled successfully, {@code false} otherwise.
     */
    public boolean schedule(long timeout, int mode) {
        switch (mode) {
            case MODE_CRASH_IF_SCHEDULED:
                if (mScheduled) {
@@ -53,7 +61,7 @@ public class AlarmTimeout implements AlarmManager.OnAlarmListener {
                break;
            case MODE_IGNORE_IF_SCHEDULED:
                if (mScheduled) {
                    return;
                    return false;
                }
                break;
            case MODE_RESCHEDULE_IF_SCHEDULED:
@@ -68,6 +76,7 @@ public class AlarmTimeout implements AlarmManager.OnAlarmListener {
        mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + timeout, mTag, this, mHandler);
        mScheduled = true;
        return true;
    }

    public boolean isScheduled() {