summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author William Leshner <wleshner@google.com> 2022-08-26 21:25:39 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-08-26 21:25:39 +0000
commitd1c61a0818cbbbe9700b3d0b77bbd9d59eb26e66 (patch)
treefb880b555c807beefe74ff084a21e5cd75bcc5e6
parent09e2a7f92b45d7d1a6ff619364d2ecb57de9307d (diff)
parente9adc3176711f9fd69ec55eef8e33ce3a4247434 (diff)
Merge "Provide a way to keep dreaming when undocking." into tm-qpr-dev am: e9adc31767
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19607670 Change-Id: I52efcbdda2517ef6d601741e51b1b55558e986d9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/res/res/values/config.xml3
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--services/core/java/com/android/server/DockObserver.java18
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java2
4 files changed, 19 insertions, 5 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 0a883ece7086..7b66a310e13f 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -550,6 +550,9 @@
<!-- If this is true, long press on power button will be available from the non-interactive state -->
<bool name="config_supportLongPressPowerWhenNonInteractive">false</bool>
+ <!-- If this is true, then keep dreaming when undocking. -->
+ <bool name="config_keepDreamingWhenUndocking">false</bool>
+
<!-- Auto-rotation behavior -->
<!-- If true, enables auto-rotation features using the accelerometer.
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 024722c3cd93..bf45a2a55986 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1967,6 +1967,7 @@
<java-symbol type="bool" name="config_allowTheaterModeWakeFromLidSwitch" />
<java-symbol type="bool" name="config_allowTheaterModeWakeFromDock" />
<java-symbol type="bool" name="config_allowTheaterModeWakeFromWindowLayout" />
+ <java-symbol type="bool" name="config_keepDreamingWhenUndocking" />
<java-symbol type="bool" name="config_goToSleepOnButtonPressTheaterMode" />
<java-symbol type="bool" name="config_supportLongPressPowerWhenNonInteractive" />
<java-symbol type="bool" name="config_wimaxEnabled" />
diff --git a/services/core/java/com/android/server/DockObserver.java b/services/core/java/com/android/server/DockObserver.java
index 8a6b54fd9769..104d10de93c8 100644
--- a/services/core/java/com/android/server/DockObserver.java
+++ b/services/core/java/com/android/server/DockObserver.java
@@ -69,6 +69,7 @@ final class DockObserver extends SystemService {
private boolean mUpdatesStopped;
+ private final boolean mKeepDreamingWhenUndocking;
private final boolean mAllowTheaterModeWakeFromDock;
private final List<ExtconStateConfig> mExtconStateConfigs;
@@ -164,6 +165,8 @@ final class DockObserver extends SystemService {
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mAllowTheaterModeWakeFromDock = context.getResources().getBoolean(
com.android.internal.R.bool.config_allowTheaterModeWakeFromDock);
+ mKeepDreamingWhenUndocking = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_keepDreamingWhenUndocking);
mExtconStateConfigs = loadExtconStateConfigs(context);
@@ -216,10 +219,8 @@ final class DockObserver extends SystemService {
if (newState != mReportedDockState) {
mReportedDockState = newState;
if (mSystemReady) {
- // 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) {
+ // Wake up immediately when docked or undocked unless prohibited from doing so.
+ if (allowWakeFromDock()) {
mPowerManager.wakeUp(SystemClock.uptimeMillis(),
"android.server:DOCK");
}
@@ -228,6 +229,15 @@ final class DockObserver extends SystemService {
}
}
+ private boolean allowWakeFromDock() {
+ if (mKeepDreamingWhenUndocking) {
+ return false;
+ }
+ return (mAllowTheaterModeWakeFromDock
+ || Settings.Global.getInt(getContext().getContentResolver(),
+ Settings.Global.THEATER_MODE_ON, 0) == 0);
+ }
+
private void updateLocked() {
mWakeLock.acquire();
mHandler.sendEmptyMessage(MSG_DOCK_STATE_CHANGED);
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 31f87416db67..7e310b44e00f 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -1487,7 +1487,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
a.colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
a.flags |= ActivityInfo.FLAG_EXCLUDE_FROM_RECENTS;
a.resizeMode = RESIZE_MODE_UNRESIZEABLE;
- a.configChanges = ActivityInfo.CONFIG_ORIENTATION;
+ a.configChanges = 0xffffffff;
final ActivityOptions options = ActivityOptions.makeBasic();
options.setLaunchActivityType(ACTIVITY_TYPE_DREAM);