Merge "Fixes divider position after minimizing and unminimizing with ime open" into oc-dev

This commit is contained in:
TreeHugger Robot
2017-05-11 17:49:46 +00:00
committed by Android (Google) Code Review

View File

@@ -767,17 +767,22 @@ public class DividerView extends FrameLayout implements OnTouchListener,
mDockedStackMinimized = minimized; mDockedStackMinimized = minimized;
} else if (mDockedStackMinimized != minimized) { } else if (mDockedStackMinimized != minimized) {
mIsInMinimizeInteraction = true; mIsInMinimizeInteraction = true;
if (minimized && (mCurrentAnimator == null || !mCurrentAnimator.isRunning())) { if (minimized && (mCurrentAnimator == null || !mCurrentAnimator.isRunning())
&& (mDividerPositionBeforeMinimized <= 0 || !mAdjustedForIme)) {
mDividerPositionBeforeMinimized = getCurrentPosition(); mDividerPositionBeforeMinimized = getCurrentPosition();
} }
mMinimizedSnapAlgorithm = null; mMinimizedSnapAlgorithm = null;
mDockedStackMinimized = minimized; mDockedStackMinimized = minimized;
initializeSnapAlgorithm(); initializeSnapAlgorithm();
stopDragging(getCurrentPosition(), minimized ? stopDragging(minimized
mMinimizedSnapAlgorithm.getMiddleTarget() : ? mDividerPositionBeforeMinimized
mSnapAlgorithm.calculateNonDismissingSnapTarget( : getCurrentPosition(),
minimized
? mMinimizedSnapAlgorithm.getMiddleTarget()
: mSnapAlgorithm.calculateNonDismissingSnapTarget(
mDividerPositionBeforeMinimized), mDividerPositionBeforeMinimized),
animDuration, Interpolators.FAST_OUT_SLOW_IN, 0); animDuration, Interpolators.FAST_OUT_SLOW_IN, 0);
setAdjustedForIme(false, animDuration);
} }
if (!minimized) { if (!minimized) {
mBackground.animate().withEndAction(mResetBackgroundRunnable); mBackground.animate().withEndAction(mResetBackgroundRunnable);
@@ -820,6 +825,9 @@ public class DividerView extends FrameLayout implements OnTouchListener,
.setDuration(animDuration) .setDuration(animDuration)
.start(); .start();
mAdjustedForIme = adjustedForIme; mAdjustedForIme = adjustedForIme;
if (mHomeStackResizable && adjustedForIme) {
mDividerPositionBeforeMinimized = getCurrentPosition();
}
} }
private void resetBackground() { private void resetBackground() {