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

Commit a9f993cb authored by Matthew Williams's avatar Matthew Williams
Browse files

Remove a minimum wake-up time for a job

BUG: 16407786
The alarm manager doesn't impose restrictions about how soon an alarm
is allowed to be set in the future, so neither will the JS.
This behaviour should be the default, but filing under above bug
b/c this needs to happen to make CTS easier to write.

Change-Id: I55b53de5faac84f01e2ac3ce5458bfa19d73df68
parent 03a4da6e
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -49,8 +49,6 @@ public class TimeController extends StateController {
    private final PendingIntent mDeadlineExpiredAlarmIntent;
    /** Set an alarm for the next job delay expiry. This*/
    private final PendingIntent mNextDelayExpiredAlarmIntent;
    /** Constant time determining how near in the future we'll set an alarm for. */
    private static final long MIN_WAKEUP_INTERVAL_MILLIS = 15 * 1000;

    private long mNextJobExpiredElapsedMillis;
    private long mNextDelayExpiredElapsedMillis;
@@ -218,11 +216,7 @@ public class TimeController extends StateController {
     * This alarm <b>will not</b> wake up the phone.
     */
    private void setDelayExpiredAlarm(long alarmTimeElapsedMillis) {
        final long earliestWakeupTimeElapsed =
                SystemClock.elapsedRealtime() + MIN_WAKEUP_INTERVAL_MILLIS;
        if (alarmTimeElapsedMillis < earliestWakeupTimeElapsed) {
            alarmTimeElapsedMillis = earliestWakeupTimeElapsed;
        }
        alarmTimeElapsedMillis = maybeAdjustAlarmTime(alarmTimeElapsedMillis);
        mNextDelayExpiredElapsedMillis = alarmTimeElapsedMillis;
        updateAlarmWithPendingIntent(mNextDelayExpiredAlarmIntent, mNextDelayExpiredElapsedMillis);
    }
@@ -233,15 +227,19 @@ public class TimeController extends StateController {
     * This alarm <b>will</b> wake up the phone.
     */
    private void setDeadlineExpiredAlarm(long alarmTimeElapsedMillis) {
        final long earliestWakeupTimeElapsed =
                SystemClock.elapsedRealtime() + MIN_WAKEUP_INTERVAL_MILLIS;
        if (alarmTimeElapsedMillis < earliestWakeupTimeElapsed) {
            alarmTimeElapsedMillis = earliestWakeupTimeElapsed;
        }
        alarmTimeElapsedMillis = maybeAdjustAlarmTime(alarmTimeElapsedMillis);
        mNextJobExpiredElapsedMillis = alarmTimeElapsedMillis;
        updateAlarmWithPendingIntent(mDeadlineExpiredAlarmIntent, mNextJobExpiredElapsedMillis);
    }

    private long maybeAdjustAlarmTime(long proposedAlarmTimeElapsedMillis) {
        final long earliestWakeupTimeElapsed = SystemClock.elapsedRealtime();
        if (proposedAlarmTimeElapsedMillis < earliestWakeupTimeElapsed) {
            return earliestWakeupTimeElapsed;
        }
        return proposedAlarmTimeElapsedMillis;
    }

    private void updateAlarmWithPendingIntent(PendingIntent pi, long alarmTimeElapsed) {
        ensureAlarmService();
        if (alarmTimeElapsed == Long.MAX_VALUE) {