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