Merge "Don't resize task when dismissing docked stack" into nyc-dev

This commit is contained in:
TreeHugger Robot
2016-05-05 02:07:26 +00:00
committed by Android (Google) Code Review

View File

@@ -530,16 +530,12 @@ public class DividerView extends FrameLayout implements OnTouchListener,
private ValueAnimator getFlingAnimator(int position, final SnapTarget snapTarget, private ValueAnimator getFlingAnimator(int position, final SnapTarget snapTarget,
final long endDelay) { final long endDelay) {
final boolean taskPositionSameAtEnd = snapTarget.flag == SnapTarget.FLAG_NONE;
ValueAnimator anim = ValueAnimator.ofInt(position, snapTarget.position); ValueAnimator anim = ValueAnimator.ofInt(position, snapTarget.position);
anim.addUpdateListener(new AnimatorUpdateListener() { anim.addUpdateListener(animation -> resizeStack((Integer) animation.getAnimatedValue(),
@Override taskPositionSameAtEnd && animation.getAnimatedFraction() == 1f
public void onAnimationUpdate(ValueAnimator animation) { ? TASK_POSITION_SAME
resizeStack((Integer) animation.getAnimatedValue(), : snapTarget.position, snapTarget));
animation.getAnimatedFraction() == 1f
? TASK_POSITION_SAME
: snapTarget.position, snapTarget);
}
});
Runnable endAction = () -> { Runnable endAction = () -> {
commitSnapFlags(snapTarget); commitSnapFlags(snapTarget);
mWindowManagerProxy.setResizing(false); mWindowManagerProxy.setResizing(false);
@@ -919,10 +915,10 @@ public class DividerView extends FrameLayout implements OnTouchListener,
private int restrictDismissingTaskPosition(int taskPosition, int dockSide, private int restrictDismissingTaskPosition(int taskPosition, int dockSide,
SnapTarget snapTarget) { SnapTarget snapTarget) {
if (snapTarget.flag == SnapTarget.FLAG_DISMISS_START && dockSideTopLeft(dockSide)) { if (snapTarget.flag == SnapTarget.FLAG_DISMISS_START && dockSideTopLeft(dockSide)) {
return mSnapAlgorithm.getFirstSplitTarget().position; return Math.max(mSnapAlgorithm.getFirstSplitTarget().position, mStartPosition);
} else if (snapTarget.flag == SnapTarget.FLAG_DISMISS_END } else if (snapTarget.flag == SnapTarget.FLAG_DISMISS_END
&& dockSideBottomRight(dockSide)) { && dockSideBottomRight(dockSide)) {
return mSnapAlgorithm.getLastSplitTarget().position; return Math.min(mSnapAlgorithm.getLastSplitTarget().position, mStartPosition);
} else { } else {
return taskPosition; return taskPosition;
} }