Merge "Fix no touch events on half of the split screen" into tm-dev am: 16fc7aa4f5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17053279 Change-Id: Iee43593482dac7d53644257c44df714c386c2d60
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user