OSDN Git Service

am 60d04edf: am e7c9540b: Refresh date display at midnight.
authorDaniel Sandler <dsandler@google.com>
Sat, 9 Jan 2010 00:56:46 +0000 (16:56 -0800)
committerAndroid Git Automerger <android-git-automerger@android.com>
Sat, 9 Jan 2010 00:56:46 +0000 (16:56 -0800)
Merge commit '60d04edf7496f3370cb848f696b268825b47295a'

* commit '60d04edf7496f3370cb848f696b268825b47295a':
  Refresh date display at midnight.

1  2 
src/com/android/deskclock/DeskClock.java

@@@ -568,21 -570,18 +569,28 @@@ public class DeskClock extends Activit
          filter.addAction(ACTION_MIDNIGHT);
          registerReceiver(mIntentReceiver, filter);
  
 +        // Listen for updates to weather data
 +        Uri weatherNotificationUri = new Uri.Builder()
 +            .scheme(android.content.ContentResolver.SCHEME_CONTENT)
 +            .authority(WEATHER_CONTENT_AUTHORITY)
 +            .path(WEATHER_CONTENT_PATH)
 +            .build();
 +        getContentResolver().registerContentObserver(
 +            weatherNotificationUri, true, mContentObserver);
 +
 +        // Elaborate mechanism to find out when the day rolls over
          Calendar today = Calendar.getInstance();
+         today.set(Calendar.HOUR_OF_DAY, 0);
+         today.set(Calendar.MINUTE, 0);
+         today.set(Calendar.SECOND, 0);
          today.add(Calendar.DATE, 1);
+         long alarmTimeUTC = today.getTimeInMillis() + today.get(Calendar.ZONE_OFFSET);
          mMidnightIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_MIDNIGHT), 0);
          AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
-         am.setRepeating(AlarmManager.RTC, today.getTimeInMillis(), AlarmManager.INTERVAL_DAY, mMidnightIntent);
+         am.setRepeating(AlarmManager.RTC, alarmTimeUTC, AlarmManager.INTERVAL_DAY, mMidnightIntent);
+         if (DEBUG) Log.d(LOG_TAG, "set repeating midnight event at "
+             + alarmTimeUTC + " repeating every "
+             + AlarmManager.INTERVAL_DAY + " with intent: " + mMidnightIntent);
  
          // un-dim when resuming
          mDimmed = false;