am da0e7b0c: Merge "Tie screen saver to the screen off timeout." into ics-mr1

* commit 'da0e7b0c7a0bb1f9f972c3ed042b8cd752031046':
  Tie screen saver to the screen off timeout.
This commit is contained in:
Daniel Sandler
2011-11-17 21:04:37 -08:00
committed by Android Git Automerger

View File

@@ -39,6 +39,7 @@ import android.database.ContentObserver;
import android.graphics.PixelFormat; import android.graphics.PixelFormat;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.RectF; import android.graphics.RectF;
import android.os.BatteryManager;
import android.os.Binder; import android.os.Binder;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
@@ -162,6 +163,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final boolean ENABLE_CAR_DOCK_HOME_CAPTURE = true; static final boolean ENABLE_CAR_DOCK_HOME_CAPTURE = true;
static final boolean ENABLE_DESK_DOCK_HOME_CAPTURE = false; static final boolean ENABLE_DESK_DOCK_HOME_CAPTURE = false;
// Should screen savers use their own timeout, or the SCREEN_OFF_TIMEOUT?
static final boolean SEPARATE_TIMEOUT_FOR_SCREEN_SAVER = false;
static final int LONG_PRESS_POWER_NOTHING = 0; static final int LONG_PRESS_POWER_NOTHING = 0;
static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1; static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
static final int LONG_PRESS_POWER_SHUT_OFF = 2; static final int LONG_PRESS_POWER_SHUT_OFF = 2;
@@ -397,6 +401,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
// visual screen saver support // visual screen saver support
int mScreenSaverTimeout = 0; int mScreenSaverTimeout = 0;
boolean mScreenSaverEnabled = true; boolean mScreenSaverEnabled = true;
boolean mPluggedIn;
// Behavior of ENDCALL Button. (See Settings.System.END_BUTTON_BEHAVIOR.) // Behavior of ENDCALL Button. (See Settings.System.END_BUTTON_BEHAVIOR.)
int mEndcallBehavior; int mEndcallBehavior;
@@ -460,8 +465,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
Settings.Secure.DEFAULT_INPUT_METHOD), false, this); Settings.Secure.DEFAULT_INPUT_METHOD), false, this);
resolver.registerContentObserver(Settings.System.getUriFor( resolver.registerContentObserver(Settings.System.getUriFor(
"fancy_rotation_anim"), false, this); "fancy_rotation_anim"), false, this);
resolver.registerContentObserver(Settings.Secure.getUriFor( if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
Settings.Secure.DREAM_TIMEOUT), false, this); resolver.registerContentObserver(Settings.Secure.getUriFor(
Settings.Secure.DREAM_TIMEOUT), false, this);
} // otherwise SCREEN_OFF_TIMEOUT will do nicely
updateSettings(); updateSettings();
} }
@@ -768,6 +775,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mDockMode = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, mDockMode = intent.getIntExtra(Intent.EXTRA_DOCK_STATE,
Intent.EXTRA_DOCK_STATE_UNDOCKED); Intent.EXTRA_DOCK_STATE_UNDOCKED);
} }
// watch the plug to know whether to trigger the screen saver
filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
intent = context.registerReceiver(mPowerReceiver, filter);
if (intent != null) {
mPluggedIn = (0 != intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0));
}
mVibrator = new Vibrator(); mVibrator = new Vibrator();
mLongPressVibePattern = getLongIntArray(mContext.getResources(), mLongPressVibePattern = getLongIntArray(mContext.getResources(),
com.android.internal.R.array.config_longPressVibePattern); com.android.internal.R.array.config_longPressVibePattern);
@@ -917,8 +933,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
updateRotation = true; updateRotation = true;
} }
mScreenSaverTimeout = Settings.Secure.getInt(resolver, if (SEPARATE_TIMEOUT_FOR_SCREEN_SAVER) {
Settings.Secure.DREAM_TIMEOUT, 0); mScreenSaverTimeout = Settings.Secure.getInt(resolver,
Settings.Secure.DREAM_TIMEOUT, 0);
} else {
mScreenSaverTimeout = Settings.System.getInt(resolver,
Settings.System.SCREEN_OFF_TIMEOUT, 0);
if (mScreenSaverTimeout > 0) {
// We actually want to activate the screensaver just before the
// power manager's screen timeout
mScreenSaverTimeout -= 5000;
}
}
updateScreenSaverTimeoutLocked(); updateScreenSaverTimeoutLocked();
} }
if (updateRotation) { if (updateRotation) {
@@ -2954,6 +2980,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
} }
}; };
BroadcastReceiver mPowerReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
mPluggedIn = (0 != intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0));
if (localLOGV) Log.v(TAG, "BATTERY_CHANGED: " + intent + " plugged=" + mPluggedIn);
}
}
};
/** {@inheritDoc} */ /** {@inheritDoc} */
public void screenTurnedOff(int why) { public void screenTurnedOff(int why) {
EventLog.writeEvent(70000, 0); EventLog.writeEvent(70000, 0);
@@ -3420,8 +3455,13 @@ public class PhoneWindowManager implements WindowManagerPolicy {
Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?"); Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?");
return; return;
} }
if (!mPluggedIn) {
if (localLOGV) Log.v(TAG, "mScreenSaverActivator: not running screen saver when not plugged in");
return;
}
if (localLOGV) Log.v(TAG, "mScreenSaverActivator entering dreamland"); if (localLOGV) Log.v(TAG, "mScreenSaverActivator entering dreamland");
try { try {
String component = Settings.Secure.getString( String component = Settings.Secure.getString(
mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT); mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT);