summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2015-04-23 10:30:43 -0700
committerDianne Hackborn <hackbod@google.com>2015-04-23 10:30:43 -0700
commit35d54037758a2bbf14da8d54a85394a02d1dc8d8 (patch)
tree3f8bf28ea9fbc3ce0a0611b4550fe20123523155 /services
parenta1f6211e795be5101ab763dd451b307ae56c8cad (diff)
downloadframeworks_base-35d54037758a2bbf14da8d54a85394a02d1dc8d8.zip
frameworks_base-35d54037758a2bbf14da8d54a85394a02d1dc8d8.tar.gz
frameworks_base-35d54037758a2bbf14da8d54a85394a02d1dc8d8.tar.bz2
Hopefully fix issue #20297662: Statusbar clock not updating
Make sure that whenever we no longer have a pending-idle-until alarm, we get all of the pending alarms re-added. Change-Id: I7e80bc02afff22827d876ef5d4a381ebb62ec8e3
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/AlarmManagerService.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 5d02576..0e3867d 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -566,13 +566,22 @@ class AlarmManagerService extends SystemService {
}
void restorePendingWhileIdleAlarmsLocked() {
+ // Bring pending alarms back into the main list.
final long nowElapsed = SystemClock.elapsedRealtime();
- for (int i=mPendingWhileIdleAlarms.size() - 1; i >= 0 && mPendingIdleUntil != null; i --) {
+ for (int i=mPendingWhileIdleAlarms.size() - 1; i >= 0 && mPendingIdleUntil == null; i--) {
Alarm a = mPendingWhileIdleAlarms.remove(i);
reAddAlarmLocked(a, nowElapsed, false);
}
+
+ // Reschedule everything.
rescheduleKernelAlarmsLocked();
updateNextAlarmClockLocked();
+
+ // And send a TIME_TICK right now, since it is important to get the UI updated.
+ try {
+ mTimeTickSender.send();
+ } catch (PendingIntent.CanceledException e) {
+ }
}
static final class InFlight extends Intent {