Merge "Polish dismiss animations." into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
92d5a67cae
@@ -374,8 +374,9 @@ public class BubbleStackView extends FrameLayout {
|
||||
@Override
|
||||
public void onReleasedInTarget(@NonNull MagnetizedObject.MagneticTarget target) {
|
||||
mExpandedAnimationController.dismissDraggedOutBubble(
|
||||
mExpandedAnimationController.getDraggedOutBubble(),
|
||||
BubbleStackView.this::dismissMagnetizedObject);
|
||||
mExpandedAnimationController.getDraggedOutBubble() /* bubble */,
|
||||
mDismissTargetContainer.getHeight() /* translationYBy */,
|
||||
BubbleStackView.this::dismissMagnetizedObject /* after */);
|
||||
hideDismissTarget();
|
||||
}
|
||||
};
|
||||
@@ -405,7 +406,8 @@ public class BubbleStackView extends FrameLayout {
|
||||
|
||||
@Override
|
||||
public void onReleasedInTarget(@NonNull MagnetizedObject.MagneticTarget target) {
|
||||
mStackAnimationController.implodeStack(
|
||||
mStackAnimationController.animateStackDismissal(
|
||||
mDismissTargetContainer.getHeight() /* translationYBy */,
|
||||
() -> {
|
||||
resetDesaturationAndDarken();
|
||||
dismissMagnetizedObject();
|
||||
|
||||
@@ -329,7 +329,7 @@ public class ExpandedAnimationController
|
||||
}
|
||||
|
||||
/** Plays a dismiss animation on the dragged out bubble. */
|
||||
public void dismissDraggedOutBubble(View bubble, Runnable after) {
|
||||
public void dismissDraggedOutBubble(View bubble, float translationYBy, Runnable after) {
|
||||
if (bubble == null) {
|
||||
return;
|
||||
}
|
||||
@@ -337,6 +337,7 @@ public class ExpandedAnimationController
|
||||
.withStiffness(SpringForce.STIFFNESS_HIGH)
|
||||
.scaleX(1.1f)
|
||||
.scaleY(1.1f)
|
||||
.translationY(bubble.getTranslationY() + translationYBy)
|
||||
.alpha(0f, after)
|
||||
.start();
|
||||
|
||||
|
||||
@@ -647,17 +647,18 @@ public class StackAnimationController extends
|
||||
}
|
||||
|
||||
/**
|
||||
* 'Implode' the stack by shrinking the bubbles via chained animations and fading them out.
|
||||
* 'Implode' the stack by shrinking the bubbles, fading them out, and translating them down.
|
||||
*/
|
||||
public void implodeStack(Runnable after) {
|
||||
// Pop and fade the bubbles sequentially.
|
||||
animationForChildAtIndex(0)
|
||||
.scaleX(0.5f)
|
||||
.scaleY(0.5f)
|
||||
.alpha(0f)
|
||||
.withDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY)
|
||||
.withStiffness(SpringForce.STIFFNESS_HIGH)
|
||||
.start(after);
|
||||
public void animateStackDismissal(float translationYBy, Runnable after) {
|
||||
animationsForChildrenFromIndex(0, (index, animation) ->
|
||||
animation
|
||||
.scaleX(0.5f)
|
||||
.scaleY(0.5f)
|
||||
.alpha(0f)
|
||||
.translationY(
|
||||
mLayout.getChildAt(index).getTranslationY() + translationYBy)
|
||||
.withStiffness(SpringForce.STIFFNESS_HIGH))
|
||||
.startAll(after);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -710,8 +711,6 @@ public class StackAnimationController extends
|
||||
if (property.equals(DynamicAnimation.TRANSLATION_X)
|
||||
|| property.equals(DynamicAnimation.TRANSLATION_Y)) {
|
||||
return index + 1;
|
||||
} else if (isStackStuckToTarget()) {
|
||||
return index + 1; // Chain all animations in dismiss (scale, alpha, etc. are used).
|
||||
} else {
|
||||
return NONE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user