From 6e37178770f41ffcf8013e9460170140bcc6c130 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 10 Dec 2009 13:05:40 -0500 Subject: [PATCH] Re-schedule screen saver mode when returning to normal. Fixes http://b/2317620 --- src/com/android/deskclock/DeskClock.java | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java index 73a7448..3b3ce44 100644 --- a/src/com/android/deskclock/DeskClock.java +++ b/src/com/android/deskclock/DeskClock.java @@ -167,8 +167,6 @@ public class DeskClock extends Activity { private boolean mLaunchedFromDock = false; - private int mIdleTimeoutEpoch = 0; - private Random mRNG; private PendingIntent mMidnightIntent; @@ -207,9 +205,7 @@ public class DeskClock extends Activity { } else if (m.what == UPDATE_WEATHER_DISPLAY_MSG) { updateWeatherDisplay(); } else if (m.what == SCREEN_SAVER_TIMEOUT_MSG) { - if (m.arg1 == mIdleTimeoutEpoch) { - saveScreen(); - } + saveScreen(); } else if (m.what == SCREEN_SAVER_MOVE_MSG) { moveScreenSaver(); } @@ -264,6 +260,14 @@ public class DeskClock extends Activity { win.setAttributes(winParams); } + private void scheduleScreenSaver() { + // reschedule screen saver + mHandy.removeMessages(SCREEN_SAVER_TIMEOUT_MSG); + mHandy.sendMessageDelayed( + Message.obtain(mHandy, SCREEN_SAVER_TIMEOUT_MSG), + SCREEN_SAVER_TIMEOUT); + } + private void restoreScreen() { if (!mScreenSaverMode) return; if (DEBUG) Log.d(LOG_TAG, "restoreScreen"); @@ -272,6 +276,9 @@ public class DeskClock extends Activity { doDim(false); // restores previous dim mode // policy: update weather info when returning from screen saver if (mPluggedIn) requestWeatherDataFetch(); + + scheduleScreenSaver(); + refreshAll(); } @@ -592,10 +599,7 @@ public class DeskClock extends Activity { setWakeLock(mPluggedIn); - mIdleTimeoutEpoch++; - mHandy.sendMessageDelayed( - Message.obtain(mHandy, SCREEN_SAVER_TIMEOUT_MSG, mIdleTimeoutEpoch, 0), - SCREEN_SAVER_TIMEOUT); + scheduleScreenSaver(); final boolean launchedFromDock = getIntent().hasCategory(Intent.CATEGORY_DESK_DOCK); @@ -613,7 +617,9 @@ public class DeskClock extends Activity { public void onPause() { if (DEBUG) Log.d(LOG_TAG, "onPause"); - // Turn off the screen saver. (But don't un-dim.) + // Turn off the screen saver and cancel any pending timeouts. + // (But don't un-dim.) + mHandy.removeMessages(SCREEN_SAVER_TIMEOUT_MSG); restoreScreen(); // Other things we don't want to be doing in the background. -- 2.11.0