Skip to content

Commit 9b5d7a5

Browse files
dsandlerAndroid (Google) Code Review
authored andcommitted
Merge "Dreams (now Screen Candy) development." into ics-mr1
2 parents 0e2c2f3 + 2d54536 commit 9b5d7a5

File tree

3 files changed

+35
-18
lines changed

3 files changed

+35
-18
lines changed

core/java/android/provider/Settings.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4020,21 +4020,26 @@ public static final String getBluetoothInputDevicePriorityKey(String address) {
40204020
"setup_prepaid_detection_redir_host";
40214021

40224022
/**
4023-
* The user's preferred "dream" (interactive screensaver) component.
4023+
* Whether the screensaver is enabled.
4024+
* @hide
4025+
*/
4026+
public static final String SCREENSAVER_ENABLED = "screensaver_enabled";
4027+
4028+
/**
4029+
* The user's chosen screensaver component.
40244030
*
4025-
* This component will be launched by the PhoneWindowManager after the user's chosen idle
4026-
* timeout (specified by {@link #DREAM_TIMEOUT}).
4031+
* This component will be launched by the PhoneWindowManager after a timeout when not on
4032+
* battery, or upon dock insertion (if SCREENSAVER_ACTIVATE_ON_DOCK is set to 1).
40274033
* @hide
40284034
*/
4029-
public static final String DREAM_COMPONENT =
4030-
"dream_component";
4035+
public static final String SCREENSAVER_COMPONENT = "screensaver_component";
40314036

40324037
/**
4033-
* The delay before a "dream" is started (set to 0 to disable).
4038+
* Whether the screensaver should be automatically launched when the device is inserted
4039+
* into a (desk) dock.
40344040
* @hide
40354041
*/
4036-
public static final String DREAM_TIMEOUT =
4037-
"dream_timeout";
4042+
public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";
40384043

40394044
/** {@hide} */
40404045
public static final String NETSTATS_ENABLED = "netstats_enabled";

packages/SystemUI/src/com/android/systemui/DreamsDockLauncher.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ protected void onCreate (Bundle icicle) {
2424
private static void launchDream(Context context) {
2525
try {
2626
String component = Settings.Secure.getString(
27-
context.getContentResolver(), Settings.Secure.DREAM_COMPONENT);
27+
context.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT);
2828
if (component == null) {
2929
component = context.getResources().getString(
3030
com.android.internal.R.string.config_defaultDreamComponent);
@@ -52,6 +52,12 @@ private static void launchDream(Context context) {
5252
public static class DockEventReceiver extends BroadcastReceiver {
5353
@Override
5454
public void onReceive(Context context, Intent intent) {
55+
final boolean activateOnDock = 0 != Settings.Secure.getInt(
56+
context.getContentResolver(),
57+
Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1);
58+
59+
if (!activateOnDock) return;
60+
5561
if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) {
5662
Bundle extras = intent.getExtras();
5763
int state = extras

policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,8 @@ public void handleMotion(MotionEvent event, InputQueue.FinishedCallback finished
400400

401401
// visual screen saver support
402402
int mScreenSaverTimeout = 0;
403-
boolean mScreenSaverEnabled = true;
403+
boolean mScreenSaverEnabledByUser = false;
404+
boolean mScreenSaverMayRun = true; // false if a wakelock is held
404405
boolean mPluggedIn;
405406

406407
// Behavior of ENDCALL Button. (See Settings.System.END_BUTTON_BEHAVIOR.)
@@ -465,9 +466,11 @@ void observe() {
465466
Settings.Secure.DEFAULT_INPUT_METHOD), false, this);
466467
resolver.registerContentObserver(Settings.System.getUriFor(
467468
"fancy_rotation_anim"), false, this);
469+
resolver.registerContentObserver(Settings.Secure.getUriFor(
470+
Settings.Secure.SCREENSAVER_ENABLED), false, this);
468471
if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
469472
resolver.registerContentObserver(Settings.Secure.getUriFor(
470-
Settings.Secure.DREAM_TIMEOUT), false, this);
473+
"screensaver_timeout"), false, this);
471474
} // otherwise SCREEN_OFF_TIMEOUT will do nicely
472475
updateSettings();
473476
}
@@ -933,9 +936,12 @@ public void updateSettings() {
933936
updateRotation = true;
934937
}
935938

939+
mScreenSaverEnabledByUser = 0 != Settings.Secure.getInt(resolver,
940+
Settings.Secure.SCREENSAVER_ENABLED, 1);
941+
936942
if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
937943
mScreenSaverTimeout = Settings.Secure.getInt(resolver,
938-
Settings.Secure.DREAM_TIMEOUT, 0);
944+
"screensaver_timeout", 0);
939945
} else {
940946
mScreenSaverTimeout = Settings.System.getInt(resolver,
941947
Settings.System.SCREEN_OFF_TIMEOUT, 0);
@@ -3451,7 +3457,7 @@ public void userActivity() {
34513457

34523458
Runnable mScreenSaverActivator = new Runnable() {
34533459
public void run() {
3454-
if (!(mScreenSaverEnabled && mScreenOnEarly)) {
3460+
if (!(mScreenSaverMayRun && mScreenOnEarly)) {
34553461
Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?");
34563462
return;
34573463
}
@@ -3464,7 +3470,7 @@ public void run() {
34643470

34653471
try {
34663472
String component = Settings.Secure.getString(
3467-
mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT);
3473+
mContext.getContentResolver(), Settings.Secure.SCREENSAVER_COMPONENT);
34683474
if (component == null) {
34693475
component = mContext.getResources().getString(R.string.config_defaultDreamComponent);
34703476
}
@@ -3492,13 +3498,13 @@ private void updateScreenSaverTimeoutLocked() {
34923498
if (mScreenSaverActivator == null) return;
34933499

34943500
mHandler.removeCallbacks(mScreenSaverActivator);
3495-
if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) {
3501+
if (mScreenSaverEnabledByUser && mScreenSaverMayRun && mScreenOnEarly && mScreenSaverTimeout > 0) {
34963502
if (localLOGV)
34973503
Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now");
34983504
mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout);
34993505
} else {
35003506
if (localLOGV) {
3501-
if (mScreenSaverTimeout == 0)
3507+
if (!mScreenSaverEnabledByUser || mScreenSaverTimeout == 0)
35023508
Log.v(TAG, "screen saver disabled by user");
35033509
else if (!mScreenOnEarly)
35043510
Log.v(TAG, "screen saver disabled while screen off");
@@ -3714,7 +3720,7 @@ public void screenOnStartedLw() {
37143720
// The window manager has just grabbed a wake lock. This is our cue to disable the screen
37153721
// saver.
37163722
synchronized (mLock) {
3717-
mScreenSaverEnabled = false;
3723+
mScreenSaverMayRun = false;
37183724
}
37193725
}
37203726

@@ -3728,7 +3734,7 @@ public void screenOnStoppedLw() {
37283734
synchronized (mLock) {
37293735
// even if the keyguard is up, now that all the wakelocks have been released, we
37303736
// should re-enable the screen saver
3731-
mScreenSaverEnabled = true;
3737+
mScreenSaverMayRun = true;
37323738
updateScreenSaverTimeoutLocked();
37333739
}
37343740
}

0 commit comments

Comments
 (0)