From 934985ec5338e7cfd8fe1f4ffbdb9f9149ddba34 Mon Sep 17 00:00:00 2001 From: rightnao Date: Mon, 16 May 2022 16:58:26 -0400 Subject: [PATCH] [FAB] Updated FAB to use new motion attributes. PiperOrigin-RevId: 449046932 --- .../FloatingActionButtonImpl.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/java/com/google/android/material/floatingactionbutton/FloatingActionButtonImpl.java b/lib/java/com/google/android/material/floatingactionbutton/FloatingActionButtonImpl.java index 394698e4143..6c96c5a9970 100644 --- a/lib/java/com/google/android/material/floatingactionbutton/FloatingActionButtonImpl.java +++ b/lib/java/com/google/android/material/floatingactionbutton/FloatingActionButtonImpl.java @@ -87,6 +87,12 @@ class FloatingActionButtonImpl { private static final float SPEC_HIDE_SCALE = 0f; private static final float SPEC_HIDE_ICON_SCALE = 0f; + private static final int SHOW_ANIM_DURATION_ATTR = R.attr.motionDurationLong2; + private static final int SHOW_ANIM_EASING_ATTR = R.attr.motionEasingEmphasizedInterpolator; + private static final int HIDE_ANIM_DURATION_ATTR = R.attr.motionDurationMedium1; + private static final int HIDE_ANIM_EASING_ATTR = + R.attr.motionEasingEmphasizedAccelerateInterpolator; + @Nullable ShapeAppearanceModel shapeAppearance; @Nullable MaterialShapeDrawable shapeDrawable; @Nullable Drawable rippleDrawable; @@ -438,7 +444,11 @@ void hide(@Nullable final InternalVisibilityChangedListener listener, final bool } else { set = createDefaultAnimator( - HIDE_OPACITY, HIDE_SCALE, HIDE_ICON_SCALE); + HIDE_OPACITY, + HIDE_SCALE, + HIDE_ICON_SCALE, + HIDE_ANIM_DURATION_ATTR, + HIDE_ANIM_EASING_ATTR); } set.addListener( @@ -520,7 +530,11 @@ void show(@Nullable final InternalVisibilityChangedListener listener, final bool } else { set = createDefaultAnimator( - SHOW_OPACITY, SHOW_SCALE, SHOW_ICON_SCALE); + SHOW_OPACITY, + SHOW_SCALE, + SHOW_ICON_SCALE, + SHOW_ANIM_DURATION_ATTR, + SHOW_ANIM_EASING_ATTR); } set.addListener( @@ -614,7 +628,8 @@ public Matrix evaluate( * are changed. */ private AnimatorSet createDefaultAnimator( - final float targetOpacity, final float targetScale, final float targetIconScale) { + final float targetOpacity, final float targetScale, final float targetIconScale, + final int duration, final int interpolator) { AnimatorSet set = new AnimatorSet(); List animators = new ArrayList<>(); ValueAnimator animator = ValueAnimator.ofFloat(0F, 1F); @@ -644,14 +659,14 @@ public void onAnimationUpdate(ValueAnimator animation) { set.setDuration( MotionUtils.resolveThemeDuration( view.getContext(), - R.attr.motionDurationLong1, + duration, view.getContext() .getResources() .getInteger(R.integer.material_motion_duration_long_1))); set.setInterpolator( MotionUtils.resolveThemeInterpolator( view.getContext(), - R.attr.motionEasingStandard, + interpolator, AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR)); return set; }