From: Daniel Sandler Date: Fri, 8 Jan 2010 19:37:41 +0000 (-0500) Subject: Refresh date display at midnight. X-Git-Tag: android-x86-2.2~36^2^2~5 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e7c9540b179fdafb69cdc5e05a2d769f4be9463a;p=android-x86%2Fpackages-apps-DeskClock.git Refresh date display at midnight. Fixes http://b/2341789 --- diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java index 4c02174..73a7448 100644 --- a/src/com/android/deskclock/DeskClock.java +++ b/src/com/android/deskclock/DeskClock.java @@ -177,7 +177,8 @@ public class DeskClock extends Activity { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); - if (Intent.ACTION_DATE_CHANGED.equals(action)) { + if (DEBUG) Log.d(LOG_TAG, "mIntentReceiver.onReceive: action=" + action + ", intent=" + intent); + if (Intent.ACTION_DATE_CHANGED.equals(action) || ACTION_MIDNIGHT.equals(action)) { refreshDate(); } else if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { handleBatteryUpdate( @@ -570,10 +571,17 @@ public class DeskClock extends Activity { registerReceiver(mIntentReceiver, filter); 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;