From f2f454ba8a9d40912608a458681ea3b1dfbc50c0 Mon Sep 17 00:00:00 2001 From: hunterstich Date: Wed, 27 Apr 2022 10:02:10 -0400 Subject: [PATCH] [Motion] Update container transform to use new motion system. PiperOrigin-RevId: 444848054 --- .../ContainerTransformConfigurationHelper.java | 15 ++++++++++++--- .../cat_transition_configuration_layout.xml | 10 ++++++++-- .../catalog/transition/res/values/strings.xml | 1 + .../transition/MaterialContainerTransform.java | 7 +++++-- .../platform/MaterialContainerTransform.java | 7 +++++-- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/catalog/java/io/material/catalog/transition/ContainerTransformConfigurationHelper.java b/catalog/java/io/material/catalog/transition/ContainerTransformConfigurationHelper.java index f91d79ad2c6..b6d5d3205c8 100644 --- a/catalog/java/io/material/catalog/transition/ContainerTransformConfigurationHelper.java +++ b/catalog/java/io/material/catalog/transition/ContainerTransformConfigurationHelper.java @@ -99,7 +99,9 @@ void configure(MaterialContainerTransform transform, boolean entering) { if (duration != NO_DURATION) { transform.setDuration(duration); } - transform.setInterpolator(getInterpolator()); + if (getInterpolator() != null) { + transform.setInterpolator(getInterpolator()); + } if (isArcMotionEnabled()) { transform.setPathMotion(new MaterialArcMotion()); } @@ -116,7 +118,9 @@ void configure( if (duration != NO_DURATION) { transform.setDuration(duration); } - transform.setInterpolator(getInterpolator()); + if (getInterpolator() != null) { + transform.setInterpolator(getInterpolator()); + } if (isArcMotionEnabled()) { transform.setPathMotion( new com.google.android.material.transition.platform.MaterialArcMotion()); @@ -302,6 +306,8 @@ private void setUpBottomSheetInterpolation(View view) { setTextFloat(view.findViewById(R.id.y1_edit_text), currentInterp.controlY1); setTextFloat(view.findViewById(R.id.x2_edit_text), currentInterp.controlX2); setTextFloat(view.findViewById(R.id.y2_edit_text), currentInterp.controlY2); + } else { + interpolationGroup.check(R.id.radio_default); } // Show/hide custom text input fields depending on initial checked radio button. @@ -452,9 +458,12 @@ private void setUpBottomSheetConfirmationButtons(View view, BottomSheetDialog di } else if (checkedRadioButtonId == R.id.radio_bounce) { interpolator = new BounceInterpolator(); dialog.dismiss(); - } else { + } else if (checkedRadioButtonId == R.id.radio_fast_out_slow_in) { interpolator = new FastOutSlowInInterpolator(); dialog.dismiss(); + } else { + interpolator = null; + dialog.dismiss(); } }); diff --git a/catalog/java/io/material/catalog/transition/res/layout/cat_transition_configuration_layout.xml b/catalog/java/io/material/catalog/transition/res/layout/cat_transition_configuration_layout.xml index 66a05ef455f..00d52f685ad 100644 --- a/catalog/java/io/material/catalog/transition/res/layout/cat_transition_configuration_layout.xml +++ b/catalog/java/io/material/catalog/transition/res/layout/cat_transition_configuration_layout.xml @@ -164,12 +164,18 @@ android:animateLayoutChanges="true" android:orientation="vertical"> + + + android:text="@string/cat_transition_config_fast_out_slow_in_title"/> Enter Duration Return Duration Interpolation + Default FastOutSlowIn Overshoot AnticipateOvershoot diff --git a/lib/java/com/google/android/material/transition/MaterialContainerTransform.java b/lib/java/com/google/android/material/transition/MaterialContainerTransform.java index a18900671e1..a912a5cf56d 100644 --- a/lib/java/com/google/android/material/transition/MaterialContainerTransform.java +++ b/lib/java/com/google/android/material/transition/MaterialContainerTransform.java @@ -1005,9 +1005,12 @@ public void onTransitionEnd(@NonNull Transition transition) { private void maybeApplyThemeValues(Context context, boolean entering) { TransitionUtils.maybeApplyThemeInterpolator( - this, context, R.attr.motionEasingStandard, AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR); + this, + context, + R.attr.motionEasingEmphasizedInterpolator, + AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR); TransitionUtils.maybeApplyThemeDuration( - this, context, entering ? R.attr.motionDurationLong1 : R.attr.motionDurationMedium2); + this, context, entering ? R.attr.motionDurationExtraLong2 : R.attr.motionDurationMedium4); if (!pathMotionCustom) { TransitionUtils.maybeApplyThemePath(this, context, R.attr.motionPath); } diff --git a/lib/java/com/google/android/material/transition/platform/MaterialContainerTransform.java b/lib/java/com/google/android/material/transition/platform/MaterialContainerTransform.java index 9541f92d197..2a4e618b214 100644 --- a/lib/java/com/google/android/material/transition/platform/MaterialContainerTransform.java +++ b/lib/java/com/google/android/material/transition/platform/MaterialContainerTransform.java @@ -1010,9 +1010,12 @@ public void onTransitionEnd(@NonNull Transition transition) { private void maybeApplyThemeValues(Context context, boolean entering) { TransitionUtils.maybeApplyThemeInterpolator( - this, context, R.attr.motionEasingStandard, AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR); + this, + context, + R.attr.motionEasingEmphasizedInterpolator, + AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR); TransitionUtils.maybeApplyThemeDuration( - this, context, entering ? R.attr.motionDurationLong1 : R.attr.motionDurationMedium2); + this, context, entering ? R.attr.motionDurationExtraLong2 : R.attr.motionDurationMedium4); if (!pathMotionCustom) { TransitionUtils.maybeApplyThemePath(this, context, R.attr.motionPath); }