Fixes the secondary splitscreen dimensions

Fixes the splitscreen bounds of other app introduced in ag/3909876 and
bound issues related to rotation before splitscreen occurs from
landscape to seascape.

Fixes: 73250406
Test: splitscreen in seascape
Change-Id: I14f9512069b674da7d382ede8514545aabe8c5d7
This commit is contained in:
Matthew Ng
2018-05-14 12:45:08 -07:00
parent 6b8014f5c8
commit 4c76a1ce1d

View File

@@ -778,9 +778,17 @@ public class DividerView extends FrameLayout implements OnTouchListener,
mHandle.setAlpha(minimized ? 0f : 1f);
mDockedStackMinimized = minimized;
} else if (mDockedStackMinimized != minimized) {
mMinimizedSnapAlgorithm = null;
mDockedStackMinimized = minimized;
initializeSnapAlgorithm();
if (mDisplayRotation != mDefaultDisplay.getRotation()) {
// Splitscreen to minimize is about to starts after rotating landscape to seascape,
// update insets, display info and snap algorithm targets
SystemServicesProxy.getInstance(mContext).getStableInsets(mStableInsets);
repositionSnapTargetBeforeMinimized();
updateDisplayInfo();
} else {
mMinimizedSnapAlgorithm = null;
initializeSnapAlgorithm();
}
if (mIsInMinimizeInteraction != minimized || mCurrentAnimator != null) {
cancelFlingAnimation();
if (minimized) {
@@ -1018,7 +1026,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
if (mDockSide == DOCKED_RIGHT) {
mDockedTaskRect.offset(Math.max(position, mStableInsets.left - mDividerSize)
- mDockedTaskRect.left + mDividerSize, 0);
mOtherTaskRect.offset(mStableInsets.left, 0);
}
mWindowManagerProxy.resizeDockedStack(mDockedRect, mDockedTaskRect, mDockedTaskRect,
mOtherTaskRect, null);
@@ -1032,7 +1039,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
if (mDockSide == DOCKED_RIGHT) {
mDockedTaskRect.offset(Math.max(position, mStableInsets.left - mDividerSize)
- mDockedTaskRect.left + mDividerSize, 0);
mOtherTaskRect.offset(mStableInsets.left, 0);
}
calculateBoundsForPosition(taskPosition, DockedDividerUtils.invertDockSide(mDockSide),
mOtherTaskRect);
@@ -1049,7 +1055,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
// Move a right-docked-app to line up with the divider while dragging it
if (mDockSide == DOCKED_RIGHT) {
mDockedTaskRect.offset(position - mStableInsets.left + mDividerSize, 0);
mOtherTaskRect.offset(mStableInsets.left, 0);
}
mWindowManagerProxy.resizeDockedStack(mDockedRect, mDockedTaskRect, mDockedInsetRect,
mOtherTaskRect, mOtherInsetRect);