Update internal change-of-date alarm whenever timezone changes

We weren't updating the next-midnight alarm when the device time
zone was changed, meaning that the date-change broadcast did not
happen appropriately.

Bug: 117577062
Test: manual
Test: atest CtsAlarmManagerTestCases
Change-Id: I8d565f5c7da58a99e984b11d7745698e15bf47ef
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index af33cbc..622b5fe 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -1455,6 +1455,10 @@
         TimeZone.setDefault(null);
 
         if (timeZoneWasChanged) {
+            // Don't wait for broadcasts to update our midnight alarm
+            mClockReceiver.scheduleDateChangedEvent();
+
+            // And now let everyone else know
             Intent intent = new Intent(Intent.ACTION_TIMEZONE_CHANGED);
             intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
                     | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND