commit | 7ee646771b9031c29b1b850494a914f4ab929a25 | [log] [tgz] |
---|---|---|
author | Beverly <beverlyt@google.com> | Tue Aug 14 14:58:18 2018 -0400 |
committer | Beverly Tai <beverlyt@google.com> | Tue Feb 19 20:18:01 2019 +0000 |
tree | d092297ae3d94697edb5d7eb336b88c80dda6f5a | |
parent | 06cfb175bd9d7f2387cd96d81bf36bdf2d3e4137 [diff] |
Override old alarms in zen schedule Change-Id: I371a586d470e3e341a42fb5ae3b8f32929214c18 Merged-in: I371a586d470e3e341a42fb5ae3b8f32929214c18 Fixes: 112493468 Test: ScheduleCalendarTest (cherry picked from commit 4e76191a9f6e3aa7ddfb158e3e97994d6ca562b8)
diff --git a/core/java/android/service/notification/ScheduleCalendar.java b/core/java/android/service/notification/ScheduleCalendar.java index 8b7946c..6ed966e 100644 --- a/core/java/android/service/notification/ScheduleCalendar.java +++ b/core/java/android/service/notification/ScheduleCalendar.java
@@ -70,10 +70,10 @@ } // only allow alarms in the future if (nextAlarm > now) { - // store earliest alarm - if (mSchedule.nextAlarm == 0) { + if (mSchedule.nextAlarm == 0 || mSchedule.nextAlarm < now) { mSchedule.nextAlarm = nextAlarm; } else { + // store earliest alarm mSchedule.nextAlarm = Math.min(mSchedule.nextAlarm, nextAlarm); } } else if (mSchedule.nextAlarm < now) {
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java index 942a07a..b8a8274 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleCalendarTest.java
@@ -333,6 +333,17 @@ } @Test + public void testMaybeSetNextAlarm_expiredOldAlarm() { + mScheduleInfo.exitAtAlarm = true; + mScheduleInfo.nextAlarm = 998; + mScheduleCalendar.setSchedule(mScheduleInfo); + + mScheduleCalendar.maybeSetNextAlarm(1000, 1001); + + assertEquals(1001, mScheduleInfo.nextAlarm); + } + + @Test @FlakyTest public void testIsInSchedule_inScheduleOvernight() { Calendar cal = new GregorianCalendar();