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

Commit ae698afc authored by Louis Chang's avatar Louis Chang Committed by Android (Google) Code Review
Browse files

Merge "Ensure WCT#setDisallowOverrideBoundsForChildren works for existing child" into main

parents 80d54bdb 202a6240
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2632,6 +2632,12 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            wct.reparent(mSideStage.mRootTaskInfo.token, rootTaskInfo.token, true);
        }

        if (splitDisableChildTaskBounds()) {
            // Disallow child tasks to override bounds and always inherits from the stage root tasks
            wct.setDisallowOverrideBoundsForChildren(mMainStage.mRootTaskInfo.token, true);
            wct.setDisallowOverrideBoundsForChildren(mSideStage.mRootTaskInfo.token, true);
        }

        setRootForceTranslucent(true, wct);
        if (!enableFlexibleSplit()) {
            // TODO: consider support 3 splits
@@ -2641,9 +2647,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            mSplitLayout.getInvisibleBounds(mTempRect1);
            wct.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1);
        }
        if (splitDisableChildTaskBounds()) {
            wct.setDisallowOverrideBoundsForChildren(rootTaskInfo.token, true);
        }
        mSyncQueue.queue(wct);
        if (!enableFlexibleSplit()) {
            mSyncQueue.runInSync(t -> {
+5 −2
Original line number Diff line number Diff line
@@ -668,9 +668,12 @@ public class StageCoordinatorTests extends ShellTestCase {
                .filter(op -> op.getType()
                        == HIERARCHY_OP_TYPE_DISALLOW_OVERRIDE_BOUNDS_FOR_CHILDREN)
                .toList();
        assertThat(disableChildBoundsOps).hasSize(1);
        assertThat(disableChildBoundsOps).hasSize(2);
        HierarchyOp op = disableChildBoundsOps.getFirst();
        assertThat(op.getContainer()).isEqualTo(rootTaskInfo.token.asBinder());
        assertThat(op.getContainer()).isEqualTo(mMainStage.mRootTaskInfo.token.asBinder());
        assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue();
        op = disableChildBoundsOps.get(1);
        assertThat(op.getContainer()).isEqualTo(mSideStage.mRootTaskInfo.token.asBinder());
        assertThat(op.getDisallowOverrideBoundsForChildren()).isTrue();
    }

+10 −0
Original line number Diff line number Diff line
@@ -2177,6 +2177,16 @@ class Task extends TaskFragment {
        }
    }

    @Override
    public void onRequestedOverrideConfigurationChanged(
            @NonNull Configuration overrideConfiguration) {
        if (!overrideConfiguration.windowConfiguration.getBounds().isEmpty()
                && !isOverrideBoundsAllowed()) {
            overrideConfiguration.windowConfiguration.setBounds(new Rect());
        }
        super.onRequestedOverrideConfigurationChanged(overrideConfiguration);
    }

    @Override
    public void onConfigurationChanged(Configuration newParentConfig) {
        if (mDisplayContent != null