Merge "Fix pip surface under divider" into sc-v2-dev am: c06aeea5fd

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16284008

Change-Id: I2986beba24124675a57cce3c8205b0af1c51f350
This commit is contained in:
Tony Huang
2021-11-24 03:34:51 +00:00
committed by Automerger Merge Worker
3 changed files with 40 additions and 2 deletions

View File

@@ -236,6 +236,9 @@ public interface WindowManagerPolicyConstants {
*/ */
int LAYER_OFFSET_THUMBNAIL = WINDOW_LAYER_MULTIPLIER - 1; int LAYER_OFFSET_THUMBNAIL = WINDOW_LAYER_MULTIPLIER - 1;
// TODO(b/207185041): Remove this divider workaround after we full remove leagacy split and
// make app pair split only have single root then we can just attach the
// divider to the single root task in shell.
int SPLIT_DIVIDER_LAYER = TYPE_LAYER_MULTIPLIER * 3; int SPLIT_DIVIDER_LAYER = TYPE_LAYER_MULTIPLIER * 3;
int WATERMARK_LAYER = TYPE_LAYER_MULTIPLIER * 100; int WATERMARK_LAYER = TYPE_LAYER_MULTIPLIER * 100;
int STRICT_MODE_LAYER = TYPE_LAYER_MULTIPLIER * 101; int STRICT_MODE_LAYER = TYPE_LAYER_MULTIPLIER * 101;

View File

@@ -867,6 +867,10 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
// Place root home tasks to the bottom. // Place root home tasks to the bottom.
layer = adjustRootTaskLayer(t, mTmpHomeChildren, layer); layer = adjustRootTaskLayer(t, mTmpHomeChildren, layer);
layer = adjustRootTaskLayer(t, mTmpNormalChildren, layer); layer = adjustRootTaskLayer(t, mTmpNormalChildren, layer);
// TODO(b/207185041): Remove this divider workaround after we full remove leagacy split and
// make app pair split only have single root then we can just attach the
// divider to the single root task in shell.
layer = Math.max(layer, SPLIT_DIVIDER_LAYER + 1);
adjustRootTaskLayer(t, mTmpAlwaysOnTopChildren, layer); adjustRootTaskLayer(t, mTmpAlwaysOnTopChildren, layer);
t.setLayer(mSplitScreenDividerAnchor, SPLIT_DIVIDER_LAYER); t.setLayer(mSplitScreenDividerAnchor, SPLIT_DIVIDER_LAYER);
} }

View File

@@ -501,8 +501,6 @@ public class ZOrderingTests extends WindowTestsBase {
mDisplayContent.assignChildLayers(mTransaction); mDisplayContent.assignChildLayers(mTransaction);
assertWindowHigher(splitWindow1, belowTaskWindow); assertWindowHigher(splitWindow1, belowTaskWindow);
assertWindowHigher(splitWindow1, belowTaskWindow);
assertWindowHigher(splitWindow2, belowTaskWindow);
assertWindowHigher(splitWindow2, belowTaskWindow); assertWindowHigher(splitWindow2, belowTaskWindow);
assertWindowHigher(mDockedDividerWindow, splitWindow1); assertWindowHigher(mDockedDividerWindow, splitWindow1);
assertWindowHigher(mDockedDividerWindow, splitWindow2); assertWindowHigher(mDockedDividerWindow, splitWindow2);
@@ -510,6 +508,39 @@ public class ZOrderingTests extends WindowTestsBase {
assertWindowHigher(pinnedWindow, aboveTaskWindow); assertWindowHigher(pinnedWindow, aboveTaskWindow);
} }
@Test
public void testDockedDividerPosition_noAboveTask() {
final Task pinnedTask =
createTask(mDisplayContent, WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD);
final WindowState pinnedWindow =
createAppWindow(pinnedTask, ACTIVITY_TYPE_STANDARD, "pinnedWindow");
final Task belowTask =
createTask(mDisplayContent, WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
final WindowState belowTaskWindow =
createAppWindow(belowTask, ACTIVITY_TYPE_STANDARD, "belowTaskWindow");
final Task splitScreenTask1 =
createTask(mDisplayContent, WINDOWING_MODE_MULTI_WINDOW, ACTIVITY_TYPE_STANDARD);
final WindowState splitWindow1 =
createAppWindow(splitScreenTask1, ACTIVITY_TYPE_STANDARD, "splitWindow1");
final Task splitScreenTask2 =
createTask(mDisplayContent, WINDOWING_MODE_MULTI_WINDOW, ACTIVITY_TYPE_STANDARD);
final WindowState splitWindow2 =
createAppWindow(splitScreenTask2, ACTIVITY_TYPE_STANDARD, "splitWindow2");
splitScreenTask1.setAdjacentTaskFragment(splitScreenTask2);
splitScreenTask2.setAdjacentTaskFragment(splitScreenTask1);
mDisplayContent.assignChildLayers(mTransaction);
assertWindowHigher(splitWindow1, belowTaskWindow);
assertWindowHigher(splitWindow2, belowTaskWindow);
assertWindowHigher(mDockedDividerWindow, splitWindow1);
assertWindowHigher(mDockedDividerWindow, splitWindow2);
assertWindowHigher(pinnedWindow, mDockedDividerWindow);
}
@Test @Test
public void testAttachNavBarWhenEnteringRecents_expectNavBarHigherThanIme() { public void testAttachNavBarWhenEnteringRecents_expectNavBarHigherThanIme() {
// create RecentsAnimationController // create RecentsAnimationController