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
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 @@
     }
 
     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 {