mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-26 09:02:34 -06:00
88 lines
3.6 KiB
Java
88 lines
3.6 KiB
Java
|
package androidx.transition;
|
||
|
|
||
|
import android.animation.Animator;
|
||
|
import android.animation.AnimatorListenerAdapter;
|
||
|
import android.animation.ObjectAnimator;
|
||
|
import android.animation.TypeEvaluator;
|
||
|
import android.content.Context;
|
||
|
import android.graphics.Rect;
|
||
|
import android.util.AttributeSet;
|
||
|
import android.util.Property;
|
||
|
import android.view.View;
|
||
|
import android.view.ViewGroup;
|
||
|
import androidx.core.view.ViewCompat;
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
public class ChangeClipBounds extends Transition {
|
||
|
private static final String PROPNAME_BOUNDS = "android:clipBounds:bounds";
|
||
|
private static final String PROPNAME_CLIP = "android:clipBounds:clip";
|
||
|
private static final String[] sTransitionProperties = {PROPNAME_CLIP};
|
||
|
|
||
|
@Override // androidx.transition.Transition
|
||
|
public String[] getTransitionProperties() {
|
||
|
return sTransitionProperties;
|
||
|
}
|
||
|
|
||
|
public ChangeClipBounds() {
|
||
|
}
|
||
|
|
||
|
public ChangeClipBounds(Context context, AttributeSet attributeSet) {
|
||
|
super(context, attributeSet);
|
||
|
}
|
||
|
|
||
|
private void captureValues(TransitionValues transitionValues) {
|
||
|
View view = transitionValues.view;
|
||
|
if (view.getVisibility() == 8) {
|
||
|
return;
|
||
|
}
|
||
|
Rect clipBounds = ViewCompat.getClipBounds(view);
|
||
|
transitionValues.values.put(PROPNAME_CLIP, clipBounds);
|
||
|
if (clipBounds == null) {
|
||
|
transitionValues.values.put(PROPNAME_BOUNDS, new Rect(0, 0, view.getWidth(), view.getHeight()));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.transition.Transition
|
||
|
public void captureStartValues(TransitionValues transitionValues) {
|
||
|
captureValues(transitionValues);
|
||
|
}
|
||
|
|
||
|
@Override // androidx.transition.Transition
|
||
|
public void captureEndValues(TransitionValues transitionValues) {
|
||
|
captureValues(transitionValues);
|
||
|
}
|
||
|
|
||
|
@Override // androidx.transition.Transition
|
||
|
public Animator createAnimator(ViewGroup viewGroup, TransitionValues transitionValues, TransitionValues transitionValues2) {
|
||
|
ObjectAnimator objectAnimator = null;
|
||
|
if (transitionValues != null && transitionValues2 != null && transitionValues.values.containsKey(PROPNAME_CLIP) && transitionValues2.values.containsKey(PROPNAME_CLIP)) {
|
||
|
Rect rect = (Rect) transitionValues.values.get(PROPNAME_CLIP);
|
||
|
Rect rect2 = (Rect) transitionValues2.values.get(PROPNAME_CLIP);
|
||
|
boolean z = rect2 == null;
|
||
|
if (rect == null && rect2 == null) {
|
||
|
return null;
|
||
|
}
|
||
|
if (rect == null) {
|
||
|
rect = (Rect) transitionValues.values.get(PROPNAME_BOUNDS);
|
||
|
} else if (rect2 == null) {
|
||
|
rect2 = (Rect) transitionValues2.values.get(PROPNAME_BOUNDS);
|
||
|
}
|
||
|
if (rect.equals(rect2)) {
|
||
|
return null;
|
||
|
}
|
||
|
ViewCompat.setClipBounds(transitionValues2.view, rect);
|
||
|
objectAnimator = ObjectAnimator.ofObject(transitionValues2.view, (Property<View, V>) ViewUtils.CLIP_BOUNDS, (TypeEvaluator) new RectEvaluator(new Rect()), (Object[]) new Rect[]{rect, rect2});
|
||
|
if (z) {
|
||
|
final View view = transitionValues2.view;
|
||
|
objectAnimator.addListener(new AnimatorListenerAdapter() { // from class: androidx.transition.ChangeClipBounds.1
|
||
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
||
|
public void onAnimationEnd(Animator animator) {
|
||
|
ViewCompat.setClipBounds(view, null);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
return objectAnimator;
|
||
|
}
|
||
|
}
|