diff options
| author | 2024-11-20 00:57:22 +0000 | |
|---|---|---|
| committer | 2024-11-20 00:57:22 +0000 | |
| commit | 99c3e6aecf2cc3758f0e6ac2e3191d7c20ebdfe2 (patch) | |
| tree | 3a0adfc46e5e6bbb651859d29f7198dc7ab05137 | |
| parent | 3ce190704e23b1b014796a88730c363c7e1e6ef1 (diff) | |
| parent | be8064ce32ff051bfdda80c5cb49c5d4362d1a79 (diff) | |
Merge "Fix messed-up divider position when unlocking with IME showing" into main
2 files changed, 5 insertions, 7 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java index 5e721bc1bd01..86d689831bdc 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java @@ -2177,11 +2177,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mDividerFadeInAnimator.cancel(); } - mSplitLayout.getRefDividerBounds(mTempRect1); if (t != null) { + updateSurfaceBounds(mSplitLayout, t, false /* applyResizingOffset */); t.setVisibility(dividerLeash, mDividerVisible); - t.setLayer(dividerLeash, Integer.MAX_VALUE); - t.setPosition(dividerLeash, mTempRect1.left, mTempRect1.top); } else if (mDividerVisible) { final SurfaceControl.Transaction transaction = mTransactionPool.acquire(); mDividerFadeInAnimator = ValueAnimator.ofFloat(0f, 1f); @@ -2201,11 +2199,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mDividerFadeInAnimator.cancel(); return; } - mSplitLayout.getRefDividerBounds(mTempRect1); + updateSurfaceBounds(mSplitLayout, transaction, false /* applyResizingOffset */); transaction.show(dividerLeash); transaction.setAlpha(dividerLeash, 0); - transaction.setLayer(dividerLeash, Integer.MAX_VALUE); - transaction.setPosition(dividerLeash, mTempRect1.left, mTempRect1.top); transaction.apply(); } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java index 4f6f3c69aa3a..1e739cd446ae 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java @@ -34,6 +34,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.notNull; +import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -296,7 +297,8 @@ public class StageCoordinatorTests extends ShellTestCase { public void testFinishEnterSplitScreen_applySurfaceLayout() { mStageCoordinator.finishEnterSplitScreen(new SurfaceControl.Transaction()); - verify(mSplitLayout).applySurfaceChanges(any(), any(), any(), any(), any(), eq(false)); + verify(mSplitLayout, atLeastOnce()) + .applySurfaceChanges(any(), any(), any(), any(), any(), eq(false)); } @Test |