Fix issue where PIP jumps after being tapped after being dragged through the dismiss target.
onBoundsAnimationEnd does not set the permanent bounds if mSpringingToTouch=true, since that indicates that PIP caught up with the touch location - and the touch location is a temporary position. We eventually set the permanent bounds after flingToSnapTarget's animation ends. However, if PIP was flung to a snap target while mSpringingToTouch=true, those permanent bounds were never set. Starting a drag gesture would have set the permanent bounds, which is why this is only visible if you tap immediately after doing all this. Bug: 159909223 Test: tap pip after dragging it through dismiss without moving it again Change-Id: I67a9c19bf8dafab4cee646539d9f5a4575a14ffd
This commit is contained in:
@@ -365,6 +365,10 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
|
||||
void flingToSnapTarget(
|
||||
float velocityX, float velocityY,
|
||||
@Nullable Runnable updateAction, @Nullable Runnable endAction) {
|
||||
// If we're flinging to a snap target now, we're not springing to catch up to the touch
|
||||
// location now.
|
||||
mSpringingToTouch = false;
|
||||
|
||||
mTemporaryBoundsPhysicsAnimator
|
||||
.spring(FloatProperties.RECT_WIDTH, mBounds.width(), mSpringConfig)
|
||||
.spring(FloatProperties.RECT_HEIGHT, mBounds.height(), mSpringConfig)
|
||||
|
||||
Reference in New Issue
Block a user