Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6693e06e authored by Rob Carr's avatar Rob Carr
Browse files

Revert "Restore old stack Z ordering promotion."

This reverts commit d92e7eb2.

Reason for revert: Causes 71736995

Change-Id: I8294bdb65a496bfd0170ec606d20d604d5ef6271
parent ae3ef5ab
Loading
Loading
Loading
Loading
+23 −33
Original line number Diff line number Diff line
@@ -3464,47 +3464,37 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo

        @Override
        void assignChildLayers(SurfaceControl.Transaction t) {

            final int NORMAL_STACK_STATE = 0;
            final int SPLIT_SCREEN_STACK_STATE = 1;
            final int ASSISTANT_STACK_STATE = 2;
            final int BOOSTED_STATE = 3;
            final int ALWAYS_ON_TOP_STATE = 4;

            int layer = 0;
            for (int state = 0; state <= ALWAYS_ON_TOP_STATE; state++) {

            // We allow stacks to change visual order from the AM specified order due to
            // Z-boosting during animations. However we must take care to ensure TaskStacks
            // which are marked as alwaysOnTop remain that way.
            for (int i = 0; i < mChildren.size(); i++) {
                final TaskStack s = mChildren.get(i);
                    layer++;
                    if (state == NORMAL_STACK_STATE && !s.inSplitScreenPrimaryWindowingMode() &&
                            !s.isActivityTypeAssistant() &&
                            !s.needsZBoost() && !s.isAlwaysOnTop()) {
                        s.assignLayer(t, layer);
                    } else if (state == SPLIT_SCREEN_STACK_STATE &&
                            s.inSplitScreenPrimaryWindowingMode()) {
                        s.assignLayer(t, layer);
                    } else if (state == ASSISTANT_STACK_STATE &&
                            s.isActivityTypeAssistant()) {
                        s.assignLayer(t, layer);
                    } else if (state == BOOSTED_STATE && s.needsZBoost()) {
                        s.assignLayer(t, layer);
                    } else if (state == ALWAYS_ON_TOP_STATE &&
                            s.isAlwaysOnTop()) {
                        s.assignLayer(t, layer);
                s.assignChildLayers();
                if (!s.needsZBoost() && !s.isAlwaysOnTop()) {
                    s.assignLayer(t, layer++);
                }
            }
                // The appropriate place for App-Transitions to occur is right
                // above all other animations but still below things in the Picture-and-Picture
                // windowing mode.
                if (state == BOOSTED_STATE && mAppAnimationLayer != null) {
                    t.setLayer(mAppAnimationLayer, layer++);
            for (int i = 0; i < mChildren.size(); i++) {
                final TaskStack s = mChildren.get(i);
                if (s.needsZBoost() && !s.isAlwaysOnTop()) {
                    s.assignLayer(t, layer++);
                }
            }
            for (int i = 0; i < mChildren.size(); i++) {
                final TaskStack s = mChildren.get(i);
                s.assignChildLayers(t);
                if (s.isAlwaysOnTop()) {
                    s.assignLayer(t, layer++);
                }
            }

            // The appropriate place for App-Transitions to occur is right
            // above all other animations but still below things in the Picture-and-Picture
            // windowing mode.
            if (mAppAnimationLayer != null) {
                t.setLayer(mAppAnimationLayer, layer++);
            }
        }

        @Override
+1 −9
Original line number Diff line number Diff line
@@ -308,8 +308,6 @@ public class ZOrderingTests extends WindowTestsBase {

    @Test
    public void testStackLayers() throws Exception {
        final WindowState anyWindow1 =
                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "anyWindow");
        final WindowState pinnedStackWindow = createWindowOnStack(null, WINDOWING_MODE_PINNED,
                ACTIVITY_TYPE_STANDARD, TYPE_BASE_APPLICATION, mDisplayContent,
                "pinnedStackWindow");
@@ -319,16 +317,10 @@ public class ZOrderingTests extends WindowTestsBase {
        final WindowState assistantStackWindow = createWindowOnStack(null, WINDOWING_MODE_FULLSCREEN,
                ACTIVITY_TYPE_ASSISTANT, TYPE_BASE_APPLICATION,
                mDisplayContent, "assistantStackWindow");
        final WindowState anyWindow2 =
                createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "anyWindow");

        mDisplayContent.assignChildLayers(mTransaction);

        // We compare the split-screen windowing mode to two different normal windowing
        // mode windows added before and after it to ensure the correct Z ordering irrespective
        // of ordering in the child list.
        assertWindowLayerGreaterThan(mTransaction, dockedStackWindow, anyWindow1);
        assertWindowLayerGreaterThan(mTransaction, dockedStackWindow, anyWindow2);
        assertWindowLayerGreaterThan(mTransaction, dockedStackWindow, mAppWindow);
        assertWindowLayerGreaterThan(mTransaction, assistantStackWindow, dockedStackWindow);
        assertWindowLayerGreaterThan(mTransaction, pinnedStackWindow, assistantStackWindow);
    }