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); }