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

Commit 16fc7aa4 authored by Jerry Chang's avatar Jerry Chang Committed by Android (Google) Code Review
Browse files

Merge "Fix no touch events on half of the split screen" into tm-dev

parents c37e762e 5982b805
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -783,6 +783,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    void finishEnterSplitScreen(SurfaceControl.Transaction t) {
        mSplitLayout.init();
        setDividerVisibility(true, t);
        updateSurfaceBounds(mSplitLayout, t);
        setSplitsVisible(true);
        mShouldUpdateRecents = true;
        updateRecentTasksSplitPair();
+12 −3
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import static org.mockito.Mockito.when;

import android.app.ActivityManager;
import android.graphics.Rect;
import android.view.SurfaceControl;
import android.window.DisplayAreaInfo;
import android.window.WindowContainerTransaction;

@@ -112,7 +113,7 @@ public class StageCoordinatorTests extends ShellTestCase {
    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
        mStageCoordinator = spy(createStageCoordinator(/* splitLayout */ null));
        mStageCoordinator = spy(createStageCoordinator(mSplitLayout));
        doNothing().when(mStageCoordinator).updateActivityOptions(any(), anyInt());

        when(mSplitLayout.getBounds1()).thenReturn(mBounds1);
@@ -158,6 +159,9 @@ public class StageCoordinatorTests extends ShellTestCase {

    @Test
    public void testDisplayAreaAppeared_initializesUnfoldControllers() {
        // Create a stage coordinator with null split layout to test layout init flow.
        mStageCoordinator = createStageCoordinator(null /* splitLayout */);

        mStageCoordinator.onDisplayAreaAppeared(mock(DisplayAreaInfo.class));

        verify(mMainUnfoldController).init();
@@ -166,7 +170,6 @@ public class StageCoordinatorTests extends ShellTestCase {

    @Test
    public void testLayoutChanged_topLeftSplitPosition_updatesUnfoldStageBounds() {
        mStageCoordinator = createStageCoordinator(mSplitLayout);
        mStageCoordinator.setSideStagePosition(SPLIT_POSITION_TOP_OR_LEFT, null);
        clearInvocations(mMainUnfoldController, mSideUnfoldController);

@@ -179,7 +182,6 @@ public class StageCoordinatorTests extends ShellTestCase {

    @Test
    public void testLayoutChanged_bottomRightSplitPosition_updatesUnfoldStageBounds() {
        mStageCoordinator = createStageCoordinator(mSplitLayout);
        mStageCoordinator.setSideStagePosition(SPLIT_POSITION_BOTTOM_OR_RIGHT, null);
        clearInvocations(mMainUnfoldController, mSideUnfoldController);

@@ -293,6 +295,13 @@ public class StageCoordinatorTests extends ShellTestCase {
        assertEquals(mStageCoordinator.getMainStagePosition(), SPLIT_POSITION_BOTTOM_OR_RIGHT);
    }

    @Test
    public void testFinishEnterSplitScreen_applySurfaceLayout() {
        mStageCoordinator.finishEnterSplitScreen(new SurfaceControl.Transaction());

        verify(mSplitLayout).applySurfaceChanges(any(), any(), any(), any(), any());
    }

    private StageCoordinator createStageCoordinator(SplitLayout splitLayout) {
        return new SplitTestUtils.TestStageCoordinator(mContext, DEFAULT_DISPLAY,
                mSyncQueue, mRootTDAOrganizer, mTaskOrganizer, mMainStage, mSideStage,