summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2015-04-23 17:37:28 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-23 17:37:29 +0000
commitbe3d85fb96cf1634b05dbaad708127219d5e8ced (patch)
tree9c95716493074beb9a09fbc9073748efcaade46e /services
parent6446d97942b6b5b3108d4c8e53410b38497049d8 (diff)
parent35d54037758a2bbf14da8d54a85394a02d1dc8d8 (diff)
downloadframeworks_base-be3d85fb96cf1634b05dbaad708127219d5e8ced.zip
frameworks_base-be3d85fb96cf1634b05dbaad708127219d5e8ced.tar.gz
frameworks_base-be3d85fb96cf1634b05dbaad708127219d5e8ced.tar.bz2
Merge "Hopefully fix issue #20297662: Statusbar clock not updating"
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 {