From 48bfeeb568b2afee9a8dcc67c2774c0883f6824c 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: 111811414 Test: atest ActivityManagerPinnedStackTests Test: go/wm-smoke Change-Id: I6ff55bedad29df2ae3d00cdd18a748c052fae750 Merged-In: 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 d3ac7cb158244..766cee3278ad6 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -1839,7 +1839,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);