232 lines
9.1 KiB
Java
232 lines
9.1 KiB
Java
package androidx.transition;
|
|
|
|
import android.animation.Animator;
|
|
import android.animation.TimeInterpolator;
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.animation.AccelerateInterpolator;
|
|
import android.view.animation.DecelerateInterpolator;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.core.content.res.TypedArrayUtils;
|
|
import androidx.core.view.ViewCompat;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import org.xmlpull.v1.XmlPullParser;
|
|
public class Slide extends Visibility {
|
|
private static final String PROPNAME_SCREEN_POSITION = "android:slide:screenPosition";
|
|
private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
|
|
private static final CalculateSlide sCalculateBottom = new AnonymousClass6();
|
|
private static final CalculateSlide sCalculateEnd = new AnonymousClass5();
|
|
private static final CalculateSlide sCalculateLeft = new AnonymousClass1();
|
|
private static final CalculateSlide sCalculateRight = new AnonymousClass4();
|
|
private static final CalculateSlide sCalculateStart = new AnonymousClass2();
|
|
private static final CalculateSlide sCalculateTop = new AnonymousClass3();
|
|
private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
|
|
private CalculateSlide mSlideCalculator = sCalculateBottom;
|
|
private int mSlideEdge = 80;
|
|
|
|
/* renamed from: androidx.transition.Slide$1 reason: invalid class name */
|
|
public static class AnonymousClass1 extends CalculateSlideHorizontal {
|
|
public AnonymousClass1() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneX(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationX() - ((float) viewGroup.getWidth());
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.transition.Slide$2 reason: invalid class name */
|
|
public static class AnonymousClass2 extends CalculateSlideHorizontal {
|
|
public AnonymousClass2() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneX(ViewGroup viewGroup, View view) {
|
|
boolean z2 = true;
|
|
if (ViewCompat.getLayoutDirection(viewGroup) != 1) {
|
|
z2 = false;
|
|
}
|
|
return z2 ? view.getTranslationX() + ((float) viewGroup.getWidth()) : view.getTranslationX() - ((float) viewGroup.getWidth());
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.transition.Slide$3 reason: invalid class name */
|
|
public static class AnonymousClass3 extends CalculateSlideVertical {
|
|
public AnonymousClass3() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneY(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationY() - ((float) viewGroup.getHeight());
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.transition.Slide$4 reason: invalid class name */
|
|
public static class AnonymousClass4 extends CalculateSlideHorizontal {
|
|
public AnonymousClass4() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneX(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationX() + ((float) viewGroup.getWidth());
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.transition.Slide$5 reason: invalid class name */
|
|
public static class AnonymousClass5 extends CalculateSlideHorizontal {
|
|
public AnonymousClass5() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneX(ViewGroup viewGroup, View view) {
|
|
boolean z2 = true;
|
|
if (ViewCompat.getLayoutDirection(viewGroup) != 1) {
|
|
z2 = false;
|
|
}
|
|
return z2 ? view.getTranslationX() - ((float) viewGroup.getWidth()) : view.getTranslationX() + ((float) viewGroup.getWidth());
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.transition.Slide$6 reason: invalid class name */
|
|
public static class AnonymousClass6 extends CalculateSlideVertical {
|
|
public AnonymousClass6() {
|
|
super(null);
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneY(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationY() + ((float) viewGroup.getHeight());
|
|
}
|
|
}
|
|
|
|
public interface CalculateSlide {
|
|
float getGoneX(ViewGroup viewGroup, View view);
|
|
|
|
float getGoneY(ViewGroup viewGroup, View view);
|
|
}
|
|
|
|
public static abstract class CalculateSlideHorizontal implements CalculateSlide {
|
|
private CalculateSlideHorizontal() {
|
|
}
|
|
|
|
public /* synthetic */ CalculateSlideHorizontal(AnonymousClass1 r1) {
|
|
this();
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneY(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationY();
|
|
}
|
|
}
|
|
|
|
public static abstract class CalculateSlideVertical implements CalculateSlide {
|
|
private CalculateSlideVertical() {
|
|
}
|
|
|
|
public /* synthetic */ CalculateSlideVertical(AnonymousClass1 r1) {
|
|
this();
|
|
}
|
|
|
|
@Override // androidx.transition.Slide.CalculateSlide
|
|
public float getGoneX(ViewGroup viewGroup, View view) {
|
|
return view.getTranslationX();
|
|
}
|
|
}
|
|
|
|
@Retention(RetentionPolicy.SOURCE)
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public @interface GravityFlag {
|
|
}
|
|
|
|
public Slide() {
|
|
setSlideEdge(80);
|
|
}
|
|
|
|
public Slide(int i) {
|
|
setSlideEdge(i);
|
|
}
|
|
|
|
@SuppressLint({"RestrictedApi"})
|
|
public Slide(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, Styleable.SLIDE);
|
|
int namedInt = TypedArrayUtils.getNamedInt(obtainStyledAttributes, (XmlPullParser) attributeSet, "slideEdge", 0, 80);
|
|
obtainStyledAttributes.recycle();
|
|
setSlideEdge(namedInt);
|
|
}
|
|
|
|
private void captureValues(TransitionValues transitionValues) {
|
|
int[] iArr = new int[2];
|
|
transitionValues.view.getLocationOnScreen(iArr);
|
|
transitionValues.values.put("android:slide:screenPosition", iArr);
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility, androidx.transition.Transition
|
|
public void captureEndValues(@NonNull TransitionValues transitionValues) {
|
|
super.captureEndValues(transitionValues);
|
|
captureValues(transitionValues);
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility, androidx.transition.Transition
|
|
public void captureStartValues(@NonNull TransitionValues transitionValues) {
|
|
super.captureStartValues(transitionValues);
|
|
captureValues(transitionValues);
|
|
}
|
|
|
|
public int getSlideEdge() {
|
|
return this.mSlideEdge;
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility
|
|
public Animator onAppear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
|
|
if (transitionValues2 == null) {
|
|
return null;
|
|
}
|
|
int[] iArr = (int[]) transitionValues2.values.get("android:slide:screenPosition");
|
|
float translationX = view.getTranslationX();
|
|
float translationY = view.getTranslationY();
|
|
return TranslationAnimationCreator.createAnimation(view, transitionValues2, iArr[0], iArr[1], this.mSlideCalculator.getGoneX(viewGroup, view), this.mSlideCalculator.getGoneY(viewGroup, view), translationX, translationY, sDecelerate, this);
|
|
}
|
|
|
|
@Override // androidx.transition.Visibility
|
|
public Animator onDisappear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) {
|
|
if (transitionValues == null) {
|
|
return null;
|
|
}
|
|
int[] iArr = (int[]) transitionValues.values.get("android:slide:screenPosition");
|
|
return TranslationAnimationCreator.createAnimation(view, transitionValues, iArr[0], iArr[1], view.getTranslationX(), view.getTranslationY(), this.mSlideCalculator.getGoneX(viewGroup, view), this.mSlideCalculator.getGoneY(viewGroup, view), sAccelerate, this);
|
|
}
|
|
|
|
public void setSlideEdge(int i) {
|
|
if (i == 3) {
|
|
this.mSlideCalculator = sCalculateLeft;
|
|
} else if (i == 5) {
|
|
this.mSlideCalculator = sCalculateRight;
|
|
} else if (i == 48) {
|
|
this.mSlideCalculator = sCalculateTop;
|
|
} else if (i == 80) {
|
|
this.mSlideCalculator = sCalculateBottom;
|
|
} else if (i == 8388611) {
|
|
this.mSlideCalculator = sCalculateStart;
|
|
} else if (i == 8388613) {
|
|
this.mSlideCalculator = sCalculateEnd;
|
|
} else {
|
|
throw new IllegalArgumentException("Invalid slide direction");
|
|
}
|
|
this.mSlideEdge = i;
|
|
SidePropagation sidePropagation = new SidePropagation();
|
|
sidePropagation.setSide(i);
|
|
setPropagation(sidePropagation);
|
|
}
|
|
}
|