diff options
| author | 2011-11-19 20:44:40 -0800 | |
|---|---|---|
| committer | 2011-11-19 20:44:40 -0800 | |
| commit | 25a43adabb70aa769a097c6cb09d71b031431677 (patch) | |
| tree | 206b7cb7837d4c1d2df60c3ff60f448dc55e1298 | |
| parent | 73b02758485b8a938318c608fcf828f660cced0d (diff) | |
| parent | 9b5d7a59f336a96e73f5f485f6e366e078a70497 (diff) | |
am 9b5d7a59: Merge "Dreams (now Screen Candy) development." into ics-mr1
* commit '9b5d7a59f336a96e73f5f485f6e366e078a70497':
Dreams (now Screen Candy) development.
3 files changed, 35 insertions, 18 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index b0321694c675..ee3215c6c34f 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -4020,21 +4020,26 @@ public final class Settings { "setup_prepaid_detection_redir_host"; /** - * The user's preferred "dream" (interactive screensaver) component. + * Whether the screensaver is enabled. + * @hide + */ + public static final String SCREENSAVER_ENABLED = "screensaver_enabled"; + + /** + * The user's chosen screensaver component. * - * This component will be launched by the PhoneWindowManager after the user's chosen idle - * timeout (specified by {@link #DREAM_TIMEOUT}). + * This component will be launched by the PhoneWindowManager after a timeout when not on + * battery, or upon dock insertion (if SCREENSAVER_ACTIVATE_ON_DOCK is set to 1). * @hide */ - public static final String DREAM_COMPONENT = - "dream_component"; + public static final String SCREENSAVER_COMPONENT = "screensaver_component"; /** - * The delay before a "dream" is started (set to 0 to disable). + * Whether the screensaver should be automatically launched when the device is inserted + * into a (desk) dock. * @hide */ - public static final String DREAM_TIMEOUT = - "dream_timeout"; + public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock"; /** {@hide} */ public static final String NETSTATS_ENABLED = "netstats_enabled"; diff --git a/packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java b/packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java index 00352969d743..20a1c5026d8f 100644 --- a/packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java +++ b/packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java @@ -24,7 +24,7 @@ public class DreamsDockLauncher extends Activity { private static void launchDream(Context context) { try { String component = Settings.Secure.getString( - context.getContentResolver(), Settings.Secure.DREAM_COMPONENT); + context.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT); if (component == null) { component = context.getResources().getString( com.android.internal.R.string.config_defaultDreamComponent); @@ -52,6 +52,12 @@ public class DreamsDockLauncher extends Activity { public static class DockEventReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + final boolean activateOnDock = 0 != Settings.Secure.getInt( + context.getContentResolver(), + Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1); + + if (!activateOnDock) return; + if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) { Bundle extras = intent.getExtras(); int state = extras diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 920aab869371..e1676b8f754a 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -400,7 +400,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { // visual screen saver support int mScreenSaverTimeout = 0; - boolean mScreenSaverEnabled = true; + boolean mScreenSaverEnabledByUser = false; + boolean mScreenSaverMayRun = true; // false if a wakelock is held boolean mPluggedIn; // Behavior of ENDCALL Button. (See Settings.System.END_BUTTON_BEHAVIOR.) @@ -465,9 +466,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { Settings.Secure.DEFAULT_INPUT_METHOD), false, this); resolver.registerContentObserver(Settings.System.getUriFor( "fancy_rotation_anim"), false, this); + resolver.registerContentObserver(Settings.Secure.getUriFor( + Settings.Secure.SCREENSAVER_ENABLED), false, this); if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) { resolver.registerContentObserver(Settings.Secure.getUriFor( - Settings.Secure.DREAM_TIMEOUT), false, this); + "screensaver_timeout"), false, this); } // otherwise SCREEN_OFF_TIMEOUT will do nicely updateSettings(); } @@ -933,9 +936,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { updateRotation = true; } + mScreenSaverEnabledByUser = 0 != Settings.Secure.getInt(resolver, + Settings.Secure.SCREENSAVER_ENABLED, 1); + if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) { mScreenSaverTimeout = Settings.Secure.getInt(resolver, - Settings.Secure.DREAM_TIMEOUT, 0); + "screensaver_timeout", 0); } else { mScreenSaverTimeout = Settings.System.getInt(resolver, Settings.System.SCREEN_OFF_TIMEOUT, 0); @@ -3451,7 +3457,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { Runnable mScreenSaverActivator = new Runnable() { public void run() { - if (!(mScreenSaverEnabled && mScreenOnEarly)) { + if (!(mScreenSaverMayRun && mScreenOnEarly)) { Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?"); return; } @@ -3464,7 +3470,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { try { String component = Settings.Secure.getString( - mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT); + mContext.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT); if (component == null) { component = mContext.getResources().getString(R.string.config_defaultDreamComponent); } @@ -3492,13 +3498,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mScreenSaverActivator == null) return; mHandler.removeCallbacks(mScreenSaverActivator); - if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) { + if (mScreenSaverEnabledByUser && mScreenSaverMayRun && mScreenOnEarly && mScreenSaverTimeout > 0) { if (localLOGV) Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now"); mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout); } else { if (localLOGV) { - if (mScreenSaverTimeout == 0) + if (!mScreenSaverEnabledByUser || mScreenSaverTimeout == 0) Log.v(TAG, "screen saver disabled by user"); else if (!mScreenOnEarly) Log.v(TAG, "screen saver disabled while screen off"); @@ -3714,7 +3720,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { // The window manager has just grabbed a wake lock. This is our cue to disable the screen // saver. synchronized (mLock) { - mScreenSaverEnabled = false; + mScreenSaverMayRun = false; } } @@ -3728,7 +3734,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { synchronized (mLock) { // even if the keyguard is up, now that all the wakelocks have been released, we // should re-enable the screen saver - mScreenSaverEnabled = true; + mScreenSaverMayRun = true; updateScreenSaverTimeoutLocked(); } } |