[Theater Mode] framework implementation through global setting
Bug: 17684570
Change-Id: I64a9c9c0620049cdfcca0150648fa201281f7178
diff --git a/services/core/java/com/android/server/DockObserver.java b/services/core/java/com/android/server/DockObserver.java
index d05c280..41ce25d 100644
--- a/services/core/java/com/android/server/DockObserver.java
+++ b/services/core/java/com/android/server/DockObserver.java
@@ -65,11 +65,15 @@
private boolean mUpdatesStopped;
+ private final boolean mAllowTheaterModeWakeFromDock;
+
public DockObserver(Context context) {
super(context);
mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
+ mAllowTheaterModeWakeFromDock = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_allowTheaterModeWakeFromDock);
init(); // set initial status
@@ -126,8 +130,12 @@
if (newState != mReportedDockState) {
mReportedDockState = newState;
if (mSystemReady) {
- // Wake up immediately when docked or undocked.
- mPowerManager.wakeUp(SystemClock.uptimeMillis());
+ // Wake up immediately when docked or undocked except in theater mode.
+ if (mAllowTheaterModeWakeFromDock
+ || Settings.Global.getInt(getContext().getContentResolver(),
+ Settings.Global.THEATER_MODE_ON, 0) == 0) {
+ mPowerManager.wakeUp(SystemClock.uptimeMillis());
+ }
updateLocked();
}
}