summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Sandler <dsandler@android.com> 2011-11-19 20:44:40 -0800
committer Android Git Automerger <android-git-automerger@android.com> 2011-11-19 20:44:40 -0800
commit25a43adabb70aa769a097c6cb09d71b031431677 (patch)
tree206b7cb7837d4c1d2df60c3ff60f448dc55e1298
parent73b02758485b8a938318c608fcf828f660cced0d (diff)
parent9b5d7a59f336a96e73f5f485f6e366e078a70497 (diff)
am 9b5d7a59: Merge "Dreams (now Screen Candy) development." into ics-mr1
* commit '9b5d7a59f336a96e73f5f485f6e366e078a70497': Dreams (now Screen Candy) development.
-rw-r--r--core/java/android/provider/Settings.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java8
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java24
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();
}
}