summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2009-12-10 13:05:40 -0500
committerDaniel Sandler <dsandler@google.com>2010-01-15 23:48:05 -0500
commit6e37178770f41ffcf8013e9460170140bcc6c130 (patch)
treec071b51436223407787374972cc67f369ee920e2
parent3866899a033d0cef4d168df93e0d1f65837dfe9e (diff)
downloadandroid_packages_apps_DeskClock-6e37178770f41ffcf8013e9460170140bcc6c130.tar.gz
android_packages_apps_DeskClock-6e37178770f41ffcf8013e9460170140bcc6c130.tar.bz2
android_packages_apps_DeskClock-6e37178770f41ffcf8013e9460170140bcc6c130.zip
Re-schedule screen saver mode when returning to normal.
Fixes http://b/2317620
-rw-r--r--src/com/android/deskclock/DeskClock.java26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java
index 73a744873..3b3ce44f1 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.