SRE/02-Easy5/E5/sources/com/google/android/material/motion/MaterialBackAnimationHelper.java
2025-03-31 16:33:42 +02:00

65 lines
2.6 KiB
Java

package com.google.android.material.motion;
import android.animation.TimeInterpolator;
import android.content.Context;
import android.util.Log;
import android.view.View;
import androidx.activity.BackEventCompat;
import androidx.core.view.animation.PathInterpolatorCompat;
import com.google.android.material.R;
/* loaded from: classes.dex */
public abstract class MaterialBackAnimationHelper<V extends View> {
private static final int CANCEL_DURATION_DEFAULT = 100;
private static final int HIDE_DURATION_MAX_DEFAULT = 300;
private static final int HIDE_DURATION_MIN_DEFAULT = 150;
private static final String TAG = "MaterialBackHelper";
private BackEventCompat backEvent;
protected final int cancelDuration;
protected final int hideDurationMax;
protected final int hideDurationMin;
private final TimeInterpolator progressInterpolator;
protected final V view;
public BackEventCompat onHandleBackInvoked() {
BackEventCompat backEventCompat = this.backEvent;
this.backEvent = null;
return backEventCompat;
}
protected void onStartBackProgress(BackEventCompat backEventCompat) {
this.backEvent = backEventCompat;
}
public MaterialBackAnimationHelper(V v) {
this.view = v;
Context context = v.getContext();
this.progressInterpolator = MotionUtils.resolveThemeInterpolator(context, R.attr.motionEasingStandardDecelerateInterpolator, PathInterpolatorCompat.create(0.0f, 0.0f, 0.0f, 1.0f));
this.hideDurationMax = MotionUtils.resolveThemeDuration(context, R.attr.motionDurationMedium2, 300);
this.hideDurationMin = MotionUtils.resolveThemeDuration(context, R.attr.motionDurationShort3, HIDE_DURATION_MIN_DEFAULT);
this.cancelDuration = MotionUtils.resolveThemeDuration(context, R.attr.motionDurationShort2, 100);
}
protected float interpolateProgress(float f) {
return this.progressInterpolator.getInterpolation(f);
}
protected BackEventCompat onUpdateBackProgress(BackEventCompat backEventCompat) {
if (this.backEvent == null) {
Log.w(TAG, "Must call startBackProgress() before updateBackProgress()");
}
BackEventCompat backEventCompat2 = this.backEvent;
this.backEvent = backEventCompat;
return backEventCompat2;
}
protected BackEventCompat onCancelBackProgress() {
if (this.backEvent == null) {
Log.w(TAG, "Must call startBackProgress() and updateBackProgress() before cancelBackProgress()");
}
BackEventCompat backEventCompat = this.backEvent;
this.backEvent = null;
return backEventCompat;
}
}