From 80ff42c1abf87a4e81cb422446412973b46a75bd 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 e33603d..cfb599e 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; @@ -206,9 +204,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(); } @@ -263,6 +259,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"); @@ -271,6 +275,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(); } @@ -570,10 +577,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); @@ -591,7 +595,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