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

This commit is contained in:
Tony Huang
2021-11-24 03:09:59 +00:00
committed by Android (Google) Code Review
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;
// 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 WATERMARK_LAYER = TYPE_LAYER_MULTIPLIER * 100;
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.
layer = adjustRootTaskLayer(t, mTmpHomeChildren, 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);
t.setLayer(mSplitScreenDividerAnchor, SPLIT_DIVIDER_LAYER);
}

View File

@@ -501,8 +501,6 @@ public class ZOrderingTests extends WindowTestsBase {
mDisplayContent.assignChildLayers(mTransaction);
assertWindowHigher(splitWindow1, belowTaskWindow);
assertWindowHigher(splitWindow1, belowTaskWindow);
assertWindowHigher(splitWindow2, belowTaskWindow);
assertWindowHigher(splitWindow2, belowTaskWindow);
assertWindowHigher(mDockedDividerWindow, splitWindow1);
assertWindowHigher(mDockedDividerWindow, splitWindow2);
@@ -510,6 +508,39 @@ public class ZOrderingTests extends WindowTestsBase {
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
public void testAttachNavBarWhenEnteringRecents_expectNavBarHigherThanIme() {
// create RecentsAnimationController