Merge "Dreams (now Screen Candy) development." into ics-mr1

This commit is contained in:
Daniel Sandler
2011-11-19 20:42:19 -08:00
committed by Android (Google) Code Review
3 changed files with 36 additions and 19 deletions

View File

@@ -4020,21 +4020,26 @@ public final class Settings {
"setup_prepaid_detection_redir_host";
/**
* The user's preferred "dream" (interactive screensaver) component.
*
* This component will be launched by the PhoneWindowManager after the user's chosen idle
* timeout (specified by {@link #DREAM_TIMEOUT}).
* Whether the screensaver is enabled.
* @hide
*/
public static final String DREAM_COMPONENT =
"dream_component";
public static final String SCREENSAVER_ENABLED = "screensaver_enabled";
/**
* The delay before a "dream" is started (set to 0 to disable).
* The user's chosen screensaver component.
*
* 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_TIMEOUT =
"dream_timeout";
public static final String SCREENSAVER_COMPONENT = "screensaver_component";
/**
* Whether the screensaver should be automatically launched when the device is inserted
* into a (desk) dock.
* @hide
*/
public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";
/** {@hide} */
public static final String NETSTATS_ENABLED = "netstats_enabled";

View File

@@ -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

View File

@@ -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();
}
}