From 8b58016d85a71803741d9200b9e8c07aedb6a3e8 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Tue, 26 Jun 2018 17:58:29 +0800 Subject: [PATCH] Reduce screen layout in task override configuration from its parent config This prevented scheduling unexpected screen layout size changes to client when entering PIP. Bug: 110808291 Test: atest ActivityManagerPinnedStackTests Test: go/wm-smoke Change-Id: I6ff55bedad29df2ae3d00cdd18a748c052fae750 --- services/core/java/com/android/server/am/TaskRecord.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index c8ffdb16ed6d..4aa098f2137f 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -1841,7 +1841,9 @@ class TaskRecord extends ConfigurationContainer implements TaskWindowContainerLi final int compatScreenHeightDp = (int) (mTmpNonDecorBounds.height() / density); // We're only overriding LONG, SIZE and COMPAT parts of screenLayout, so we start override // calculation with partial default. - final int sl = Configuration.SCREENLAYOUT_LONG_YES | Configuration.SCREENLAYOUT_SIZE_XLARGE; + // Reducing the screen layout starting from its parent config. + final int sl = parentConfig.screenLayout & + (Configuration.SCREENLAYOUT_LONG_MASK | Configuration.SCREENLAYOUT_SIZE_MASK); final int longSize = Math.max(compatScreenHeightDp, compatScreenWidthDp); final int shortSize = Math.min(compatScreenHeightDp, compatScreenWidthDp); config.screenLayout = Configuration.reduceScreenLayout(sl, longSize, shortSize); -- 2.11.0