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

Commit f9497269 authored by Jerry Chang's avatar Jerry Chang Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I2f554d7e59d90df0dedcbaed8f1d16cc568c364e
parents c4f06574 16fc7aa4
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,