Rabbit-R1/android (non root)/java/sources/androidx/constraintlayout/motion/widget/MotionScene.java

1351 lines
56 KiB
Java
Raw Normal View History

2024-05-21 16:08:36 -05:00
package androidx.constraintlayout.motion.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.util.TypedValue;
import android.util.Xml;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AnimationUtils;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.BounceInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import androidx.constraintlayout.motion.utils.Easing;
import androidx.constraintlayout.motion.widget.MotionLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.constraintlayout.widget.R;
import androidx.constraintlayout.widget.StateSet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import tech.rabbit.r1launcher.BuildConfig;
/* loaded from: classes.dex */
public class MotionScene {
static final int ANTICIPATE = 4;
static final int BOUNCE = 5;
private static final boolean DEBUG = false;
static final int EASE_IN = 1;
static final int EASE_IN_OUT = 0;
static final int EASE_OUT = 2;
private static final int INTERPOLATOR_REFRENCE_ID = -2;
public static final int LAYOUT_HONOR_REQUEST = 1;
public static final int LAYOUT_IGNORE_REQUEST = 0;
static final int LINEAR = 3;
private static final int SPLINE_STRING = -1;
public static final String TAG = "MotionScene";
static final int TRANSITION_BACKWARD = 0;
static final int TRANSITION_FORWARD = 1;
public static final int UNSET = -1;
private MotionEvent mLastTouchDown;
float mLastTouchX;
float mLastTouchY;
private final MotionLayout mMotionLayout;
private boolean mRtl;
private MotionLayout.MotionTracker mVelocityTracker;
StateSet mStateSet = null;
Transition mCurrentTransition = null;
private boolean mDisableAutoTransition = false;
private ArrayList<Transition> mTransitionList = new ArrayList<>();
private Transition mDefaultTransition = null;
private ArrayList<Transition> mAbstractTransitionList = new ArrayList<>();
private SparseArray<ConstraintSet> mConstraintSetMap = new SparseArray<>();
private HashMap<String, Integer> mConstraintSetIdMap = new HashMap<>();
private SparseIntArray mDeriveMap = new SparseIntArray();
private boolean DEBUG_DESKTOP = false;
private int mDefaultDuration = 400;
private int mLayoutDuringTransition = 0;
private boolean mMotionOutsideRegion = false;
private boolean isProcessingTouch() {
return this.mVelocityTracker != null;
}
public void disableAutoTransition(boolean z) {
this.mDisableAutoTransition = z;
}
public ArrayList<Transition> getDefinedTransitions() {
return this.mTransitionList;
}
public float getPathPercent(View view, int i) {
return 0.0f;
}
protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
}
/* JADX INFO: Access modifiers changed from: package-private */
/* JADX WARN: Code restructure failed: missing block: B:7:0x0013, code lost:
if (r2 != (-1)) goto L13;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public void setTransition(int r7, int r8) {
/*
r6 = this;
androidx.constraintlayout.widget.StateSet r0 = r6.mStateSet
r1 = -1
if (r0 == 0) goto L16
int r0 = r0.stateGetConstraintID(r7, r1, r1)
if (r0 == r1) goto Lc
goto Ld
Lc:
r0 = r7
Ld:
androidx.constraintlayout.widget.StateSet r2 = r6.mStateSet
int r2 = r2.stateGetConstraintID(r8, r1, r1)
if (r2 == r1) goto L17
goto L18
L16:
r0 = r7
L17:
r2 = r8
L18:
java.util.ArrayList<androidx.constraintlayout.motion.widget.MotionScene$Transition> r3 = r6.mTransitionList
java.util.Iterator r3 = r3.iterator()
L1e:
boolean r4 = r3.hasNext()
if (r4 == 0) goto L58
java.lang.Object r4 = r3.next()
androidx.constraintlayout.motion.widget.MotionScene$Transition r4 = (androidx.constraintlayout.motion.widget.MotionScene.Transition) r4
int r5 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$000(r4)
if (r5 != r2) goto L36
int r5 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$100(r4)
if (r5 == r0) goto L42
L36:
int r5 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$000(r4)
if (r5 != r8) goto L1e
int r5 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$100(r4)
if (r5 != r7) goto L1e
L42:
r6.mCurrentTransition = r4
if (r4 == 0) goto L57
androidx.constraintlayout.motion.widget.TouchResponse r7 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$200(r4)
if (r7 == 0) goto L57
androidx.constraintlayout.motion.widget.MotionScene$Transition r7 = r6.mCurrentTransition
androidx.constraintlayout.motion.widget.TouchResponse r7 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$200(r7)
boolean r6 = r6.mRtl
r7.setRTL(r6)
L57:
return
L58:
androidx.constraintlayout.motion.widget.MotionScene$Transition r7 = r6.mDefaultTransition
java.util.ArrayList<androidx.constraintlayout.motion.widget.MotionScene$Transition> r3 = r6.mAbstractTransitionList
java.util.Iterator r3 = r3.iterator()
L60:
boolean r4 = r3.hasNext()
if (r4 == 0) goto L74
java.lang.Object r4 = r3.next()
androidx.constraintlayout.motion.widget.MotionScene$Transition r4 = (androidx.constraintlayout.motion.widget.MotionScene.Transition) r4
int r5 = androidx.constraintlayout.motion.widget.MotionScene.Transition.access$000(r4)
if (r5 != r8) goto L60
r7 = r4
goto L60
L74:
androidx.constraintlayout.motion.widget.MotionScene$Transition r8 = new androidx.constraintlayout.motion.widget.MotionScene$Transition
r8.<init>(r6, r7)
androidx.constraintlayout.motion.widget.MotionScene.Transition.access$102(r8, r0)
androidx.constraintlayout.motion.widget.MotionScene.Transition.access$002(r8, r2)
if (r0 == r1) goto L86
java.util.ArrayList<androidx.constraintlayout.motion.widget.MotionScene$Transition> r7 = r6.mTransitionList
r7.add(r8)
L86:
r6.mCurrentTransition = r8
return
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.constraintlayout.motion.widget.MotionScene.setTransition(int, int):void");
}
public void addTransition(Transition transition) {
int index = getIndex(transition);
if (index == -1) {
this.mTransitionList.add(transition);
} else {
this.mTransitionList.set(index, transition);
}
}
public void removeTransition(Transition transition) {
int index = getIndex(transition);
if (index != -1) {
this.mTransitionList.remove(index);
}
}
private int getIndex(Transition transition) {
int i = transition.mId;
if (i == -1) {
throw new IllegalArgumentException("The transition must have an id");
}
for (int i2 = 0; i2 < this.mTransitionList.size(); i2++) {
if (this.mTransitionList.get(i2).mId == i) {
return i2;
}
}
return -1;
}
public boolean validateLayout(MotionLayout motionLayout) {
return motionLayout == this.mMotionLayout && motionLayout.mScene == this;
}
public void setTransition(Transition transition) {
this.mCurrentTransition = transition;
if (transition == null || transition.mTouchResponse == null) {
return;
}
this.mCurrentTransition.mTouchResponse.setRTL(this.mRtl);
}
private int getRealID(int i) {
int stateGetConstraintID;
StateSet stateSet = this.mStateSet;
return (stateSet == null || (stateGetConstraintID = stateSet.stateGetConstraintID(i, -1, -1)) == -1) ? i : stateGetConstraintID;
}
public List<Transition> getTransitionsWithState(int i) {
int realID = getRealID(i);
ArrayList arrayList = new ArrayList();
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
Transition next = it.next();
if (next.mConstraintSetStart == realID || next.mConstraintSetEnd == realID) {
arrayList.add(next);
}
}
return arrayList;
}
public void addOnClickListeners(MotionLayout motionLayout, int i) {
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
Transition next = it.next();
if (next.mOnClicks.size() > 0) {
Iterator it2 = next.mOnClicks.iterator();
while (it2.hasNext()) {
((Transition.TransitionOnClick) it2.next()).removeOnClickListeners(motionLayout);
}
}
}
Iterator<Transition> it3 = this.mAbstractTransitionList.iterator();
while (it3.hasNext()) {
Transition next2 = it3.next();
if (next2.mOnClicks.size() > 0) {
Iterator it4 = next2.mOnClicks.iterator();
while (it4.hasNext()) {
((Transition.TransitionOnClick) it4.next()).removeOnClickListeners(motionLayout);
}
}
}
Iterator<Transition> it5 = this.mTransitionList.iterator();
while (it5.hasNext()) {
Transition next3 = it5.next();
if (next3.mOnClicks.size() > 0) {
Iterator it6 = next3.mOnClicks.iterator();
while (it6.hasNext()) {
((Transition.TransitionOnClick) it6.next()).addOnClickListeners(motionLayout, i, next3);
}
}
}
Iterator<Transition> it7 = this.mAbstractTransitionList.iterator();
while (it7.hasNext()) {
Transition next4 = it7.next();
if (next4.mOnClicks.size() > 0) {
Iterator it8 = next4.mOnClicks.iterator();
while (it8.hasNext()) {
((Transition.TransitionOnClick) it8.next()).addOnClickListeners(motionLayout, i, next4);
}
}
}
}
public Transition bestTransitionFor(int i, float f, float f2, MotionEvent motionEvent) {
if (i == -1) {
return this.mCurrentTransition;
}
List<Transition> transitionsWithState = getTransitionsWithState(i);
RectF rectF = new RectF();
float f3 = 0.0f;
Transition transition = null;
for (Transition transition2 : transitionsWithState) {
if (!transition2.mDisable && transition2.mTouchResponse != null) {
transition2.mTouchResponse.setRTL(this.mRtl);
RectF touchRegion = transition2.mTouchResponse.getTouchRegion(this.mMotionLayout, rectF);
if (touchRegion == null || motionEvent == null || touchRegion.contains(motionEvent.getX(), motionEvent.getY())) {
RectF touchRegion2 = transition2.mTouchResponse.getTouchRegion(this.mMotionLayout, rectF);
if (touchRegion2 == null || motionEvent == null || touchRegion2.contains(motionEvent.getX(), motionEvent.getY())) {
float dot = transition2.mTouchResponse.dot(f, f2) * (transition2.mConstraintSetEnd == i ? -1.0f : 1.1f);
if (dot > f3) {
transition = transition2;
f3 = dot;
}
}
}
}
}
return transition;
}
public Transition getTransitionById(int i) {
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
Transition next = it.next();
if (next.mId == i) {
return next;
}
}
return null;
}
public int[] getConstraintSetIds() {
int size = this.mConstraintSetMap.size();
int[] iArr = new int[size];
for (int i = 0; i < size; i++) {
iArr[i] = this.mConstraintSetMap.keyAt(i);
}
return iArr;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean autoTransition(MotionLayout motionLayout, int i) {
if (isProcessingTouch() || this.mDisableAutoTransition) {
return false;
}
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
Transition next = it.next();
if (next.mAutoTransition != 0) {
if (i == next.mConstraintSetStart && (next.mAutoTransition == 4 || next.mAutoTransition == 2)) {
motionLayout.setState(MotionLayout.TransitionState.FINISHED);
motionLayout.setTransition(next);
if (next.mAutoTransition == 4) {
motionLayout.transitionToEnd();
motionLayout.setState(MotionLayout.TransitionState.SETUP);
motionLayout.setState(MotionLayout.TransitionState.MOVING);
} else {
motionLayout.setProgress(1.0f);
motionLayout.evaluate(true);
motionLayout.setState(MotionLayout.TransitionState.SETUP);
motionLayout.setState(MotionLayout.TransitionState.MOVING);
motionLayout.setState(MotionLayout.TransitionState.FINISHED);
}
return true;
}
if (i == next.mConstraintSetEnd && (next.mAutoTransition == 3 || next.mAutoTransition == 1)) {
motionLayout.setState(MotionLayout.TransitionState.FINISHED);
motionLayout.setTransition(next);
if (next.mAutoTransition == 3) {
motionLayout.transitionToStart();
motionLayout.setState(MotionLayout.TransitionState.SETUP);
motionLayout.setState(MotionLayout.TransitionState.MOVING);
} else {
motionLayout.setProgress(0.0f);
motionLayout.evaluate(true);
motionLayout.setState(MotionLayout.TransitionState.SETUP);
motionLayout.setState(MotionLayout.TransitionState.MOVING);
motionLayout.setState(MotionLayout.TransitionState.FINISHED);
}
return true;
}
}
}
return false;
}
public void setRtl(boolean z) {
this.mRtl = z;
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return;
}
this.mCurrentTransition.mTouchResponse.setRTL(this.mRtl);
}
/* loaded from: classes.dex */
public static class Transition {
public static final int AUTO_ANIMATE_TO_END = 4;
public static final int AUTO_ANIMATE_TO_START = 3;
public static final int AUTO_JUMP_TO_END = 2;
public static final int AUTO_JUMP_TO_START = 1;
public static final int AUTO_NONE = 0;
static final int TRANSITION_FLAG_FIRST_DRAW = 1;
private int mAutoTransition;
private int mConstraintSetEnd;
private int mConstraintSetStart;
private int mDefaultInterpolator;
private int mDefaultInterpolatorID;
private String mDefaultInterpolatorString;
private boolean mDisable;
private int mDuration;
private int mId;
private boolean mIsAbstract;
private ArrayList<KeyFrames> mKeyFramesList;
private int mLayoutDuringTransition;
private final MotionScene mMotionScene;
private ArrayList<TransitionOnClick> mOnClicks;
private int mPathMotionArc;
private float mStagger;
private TouchResponse mTouchResponse;
private int mTransitionFlags;
public int getDuration() {
return this.mDuration;
}
public int getEndConstraintSetId() {
return this.mConstraintSetEnd;
}
public int getId() {
return this.mId;
}
public List<KeyFrames> getKeyFrameList() {
return this.mKeyFramesList;
}
public int getLayoutDuringTransition() {
return this.mLayoutDuringTransition;
}
public List<TransitionOnClick> getOnClickList() {
return this.mOnClicks;
}
public int getPathMotionArc() {
return this.mPathMotionArc;
}
public float getStagger() {
return this.mStagger;
}
public int getStartConstraintSetId() {
return this.mConstraintSetStart;
}
public TouchResponse getTouchResponse() {
return this.mTouchResponse;
}
public boolean isEnabled() {
return !this.mDisable;
}
public boolean isTransitionFlag(int i) {
return (this.mTransitionFlags & i) != 0;
}
public void setDuration(int i) {
this.mDuration = i;
}
public void setEnable(boolean z) {
this.mDisable = !z;
}
public void setPathMotionArc(int i) {
this.mPathMotionArc = i;
}
public void setStagger(float f) {
this.mStagger = f;
}
public void addOnClick(Context context, XmlPullParser xmlPullParser) {
this.mOnClicks.add(new TransitionOnClick(context, this, xmlPullParser));
}
public String debugString(Context context) {
String resourceEntryName = this.mConstraintSetStart == -1 ? "null" : context.getResources().getResourceEntryName(this.mConstraintSetStart);
if (this.mConstraintSetEnd == -1) {
return resourceEntryName + " -> null";
}
return resourceEntryName + " -> " + context.getResources().getResourceEntryName(this.mConstraintSetEnd);
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes.dex */
public static class TransitionOnClick implements View.OnClickListener {
public static final int ANIM_TOGGLE = 17;
public static final int ANIM_TO_END = 1;
public static final int ANIM_TO_START = 16;
public static final int JUMP_TO_END = 256;
public static final int JUMP_TO_START = 4096;
int mMode;
int mTargetId;
private final Transition mTransition;
public TransitionOnClick(Context context, Transition transition, XmlPullParser xmlPullParser) {
this.mTargetId = -1;
this.mMode = 17;
this.mTransition = transition;
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.OnClick);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.OnClick_targetId) {
this.mTargetId = obtainStyledAttributes.getResourceId(index, this.mTargetId);
} else if (index == R.styleable.OnClick_clickAction) {
this.mMode = obtainStyledAttributes.getInt(index, this.mMode);
}
}
obtainStyledAttributes.recycle();
}
public void addOnClickListeners(MotionLayout motionLayout, int i, Transition transition) {
int i2 = this.mTargetId;
View view = motionLayout;
if (i2 != -1) {
view = motionLayout.findViewById(i2);
}
if (view != null) {
int i3 = transition.mConstraintSetStart;
int i4 = transition.mConstraintSetEnd;
if (i3 == -1) {
view.setOnClickListener(this);
return;
}
int i5 = this.mMode;
boolean z = false;
boolean z2 = ((i5 & 1) != 0 && i == i3) | ((i5 & 1) != 0 && i == i3) | ((i5 & 256) != 0 && i == i3) | ((i5 & 16) != 0 && i == i4);
if ((i5 & 4096) != 0 && i == i4) {
z = true;
}
if (z2 || z) {
view.setOnClickListener(this);
return;
}
return;
}
Log.e(MotionScene.TAG, "OnClick could not find id " + this.mTargetId);
}
public void removeOnClickListeners(MotionLayout motionLayout) {
int i = this.mTargetId;
if (i == -1) {
return;
}
View findViewById = motionLayout.findViewById(i);
if (findViewById == null) {
Log.e(MotionScene.TAG, " (*) could not find id " + this.mTargetId);
} else {
findViewById.setOnClickListener(null);
}
}
boolean isTransitionViable(Transition transition, MotionLayout motionLayout) {
Transition transition2 = this.mTransition;
if (transition2 == transition) {
return true;
}
int i = transition2.mConstraintSetEnd;
int i2 = this.mTransition.mConstraintSetStart;
return i2 == -1 ? motionLayout.mCurrentState != i : motionLayout.mCurrentState == i2 || motionLayout.mCurrentState == i;
}
/* JADX WARN: Removed duplicated region for block: B:35:0x009e */
/* JADX WARN: Removed duplicated region for block: B:57:? A[RETURN, SYNTHETIC] */
@Override // android.view.View.OnClickListener
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public void onClick(android.view.View r8) {
/*
Method dump skipped, instructions count: 228
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.constraintlayout.motion.widget.MotionScene.Transition.TransitionOnClick.onClick(android.view.View):void");
}
}
Transition(MotionScene motionScene, Transition transition) {
this.mId = -1;
this.mIsAbstract = false;
this.mConstraintSetEnd = -1;
this.mConstraintSetStart = -1;
this.mDefaultInterpolator = 0;
this.mDefaultInterpolatorString = null;
this.mDefaultInterpolatorID = -1;
this.mDuration = 400;
this.mStagger = 0.0f;
this.mKeyFramesList = new ArrayList<>();
this.mTouchResponse = null;
this.mOnClicks = new ArrayList<>();
this.mAutoTransition = 0;
this.mDisable = false;
this.mPathMotionArc = -1;
this.mLayoutDuringTransition = 0;
this.mTransitionFlags = 0;
this.mMotionScene = motionScene;
if (transition != null) {
this.mPathMotionArc = transition.mPathMotionArc;
this.mDefaultInterpolator = transition.mDefaultInterpolator;
this.mDefaultInterpolatorString = transition.mDefaultInterpolatorString;
this.mDefaultInterpolatorID = transition.mDefaultInterpolatorID;
this.mDuration = transition.mDuration;
this.mKeyFramesList = transition.mKeyFramesList;
this.mStagger = transition.mStagger;
this.mLayoutDuringTransition = transition.mLayoutDuringTransition;
}
}
public Transition(int i, MotionScene motionScene, int i2, int i3) {
this.mId = -1;
this.mIsAbstract = false;
this.mConstraintSetEnd = -1;
this.mConstraintSetStart = -1;
this.mDefaultInterpolator = 0;
this.mDefaultInterpolatorString = null;
this.mDefaultInterpolatorID = -1;
this.mDuration = 400;
this.mStagger = 0.0f;
this.mKeyFramesList = new ArrayList<>();
this.mTouchResponse = null;
this.mOnClicks = new ArrayList<>();
this.mAutoTransition = 0;
this.mDisable = false;
this.mPathMotionArc = -1;
this.mLayoutDuringTransition = 0;
this.mTransitionFlags = 0;
this.mId = i;
this.mMotionScene = motionScene;
this.mConstraintSetStart = i2;
this.mConstraintSetEnd = i3;
this.mDuration = motionScene.mDefaultDuration;
this.mLayoutDuringTransition = motionScene.mLayoutDuringTransition;
}
Transition(MotionScene motionScene, Context context, XmlPullParser xmlPullParser) {
this.mId = -1;
this.mIsAbstract = false;
this.mConstraintSetEnd = -1;
this.mConstraintSetStart = -1;
this.mDefaultInterpolator = 0;
this.mDefaultInterpolatorString = null;
this.mDefaultInterpolatorID = -1;
this.mDuration = 400;
this.mStagger = 0.0f;
this.mKeyFramesList = new ArrayList<>();
this.mTouchResponse = null;
this.mOnClicks = new ArrayList<>();
this.mAutoTransition = 0;
this.mDisable = false;
this.mPathMotionArc = -1;
this.mLayoutDuringTransition = 0;
this.mTransitionFlags = 0;
this.mDuration = motionScene.mDefaultDuration;
this.mLayoutDuringTransition = motionScene.mLayoutDuringTransition;
this.mMotionScene = motionScene;
fillFromAttributeList(motionScene, context, Xml.asAttributeSet(xmlPullParser));
}
private void fillFromAttributeList(MotionScene motionScene, Context context, AttributeSet attributeSet) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.Transition);
fill(motionScene, context, obtainStyledAttributes);
obtainStyledAttributes.recycle();
}
private void fill(MotionScene motionScene, Context context, TypedArray typedArray) {
int indexCount = typedArray.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = typedArray.getIndex(i);
if (index == R.styleable.Transition_constraintSetEnd) {
this.mConstraintSetEnd = typedArray.getResourceId(index, this.mConstraintSetEnd);
if ("layout".equals(context.getResources().getResourceTypeName(this.mConstraintSetEnd))) {
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.load(context, this.mConstraintSetEnd);
motionScene.mConstraintSetMap.append(this.mConstraintSetEnd, constraintSet);
}
} else if (index == R.styleable.Transition_constraintSetStart) {
this.mConstraintSetStart = typedArray.getResourceId(index, this.mConstraintSetStart);
if ("layout".equals(context.getResources().getResourceTypeName(this.mConstraintSetStart))) {
ConstraintSet constraintSet2 = new ConstraintSet();
constraintSet2.load(context, this.mConstraintSetStart);
motionScene.mConstraintSetMap.append(this.mConstraintSetStart, constraintSet2);
}
} else if (index == R.styleable.Transition_motionInterpolator) {
TypedValue peekValue = typedArray.peekValue(index);
if (peekValue.type == 1) {
int resourceId = typedArray.getResourceId(index, -1);
this.mDefaultInterpolatorID = resourceId;
if (resourceId != -1) {
this.mDefaultInterpolator = -2;
}
} else if (peekValue.type == 3) {
String string = typedArray.getString(index);
this.mDefaultInterpolatorString = string;
if (string.indexOf("/") > 0) {
this.mDefaultInterpolatorID = typedArray.getResourceId(index, -1);
this.mDefaultInterpolator = -2;
} else {
this.mDefaultInterpolator = -1;
}
} else {
this.mDefaultInterpolator = typedArray.getInteger(index, this.mDefaultInterpolator);
}
} else if (index == R.styleable.Transition_duration) {
this.mDuration = typedArray.getInt(index, this.mDuration);
} else if (index == R.styleable.Transition_staggered) {
this.mStagger = typedArray.getFloat(index, this.mStagger);
} else if (index == R.styleable.Transition_autoTransition) {
this.mAutoTransition = typedArray.getInteger(index, this.mAutoTransition);
} else if (index == R.styleable.Transition_android_id) {
this.mId = typedArray.getResourceId(index, this.mId);
} else if (index == R.styleable.Transition_transitionDisable) {
this.mDisable = typedArray.getBoolean(index, this.mDisable);
} else if (index == R.styleable.Transition_pathMotionArc) {
this.mPathMotionArc = typedArray.getInteger(index, -1);
} else if (index == R.styleable.Transition_layoutDuringTransition) {
this.mLayoutDuringTransition = typedArray.getInteger(index, 0);
} else if (index == R.styleable.Transition_transitionFlags) {
this.mTransitionFlags = typedArray.getInteger(index, 0);
}
}
if (this.mConstraintSetStart == -1) {
this.mIsAbstract = true;
}
}
}
public MotionScene(MotionLayout motionLayout) {
this.mMotionLayout = motionLayout;
}
/* JADX INFO: Access modifiers changed from: package-private */
public MotionScene(Context context, MotionLayout motionLayout, int i) {
this.mMotionLayout = motionLayout;
load(context, i);
this.mConstraintSetMap.put(R.id.motion_base, new ConstraintSet());
this.mConstraintSetIdMap.put("motion_base", Integer.valueOf(R.id.motion_base));
}
private void load(Context context, int i) {
XmlResourceParser xml = context.getResources().getXml(i);
try {
int eventType = xml.getEventType();
Transition transition = null;
while (true) {
char c = 1;
if (eventType == 1) {
return;
}
if (eventType == 0) {
xml.getName();
} else if (eventType == 2) {
String name = xml.getName();
if (this.DEBUG_DESKTOP) {
System.out.println("parsing = " + name);
}
switch (name.hashCode()) {
case -1349929691:
if (name.equals("ConstraintSet")) {
c = 5;
break;
}
break;
case -1239391468:
if (name.equals("KeyFrameSet")) {
c = 6;
break;
}
break;
case 269306229:
if (name.equals("Transition")) {
break;
}
break;
case 312750793:
if (name.equals("OnClick")) {
c = 3;
break;
}
break;
case 327855227:
if (name.equals("OnSwipe")) {
c = 2;
break;
}
break;
case 793277014:
if (name.equals(TAG)) {
c = 0;
break;
}
break;
case 1382829617:
if (name.equals("StateSet")) {
c = 4;
break;
}
break;
}
c = 65535;
switch (c) {
case 0:
parseMotionSceneTags(context, xml);
break;
case 1:
ArrayList<Transition> arrayList = this.mTransitionList;
transition = new Transition(this, context, xml);
arrayList.add(transition);
if (this.mCurrentTransition == null && !transition.mIsAbstract) {
this.mCurrentTransition = transition;
if (transition.mTouchResponse != null) {
this.mCurrentTransition.mTouchResponse.setRTL(this.mRtl);
}
}
if (!transition.mIsAbstract) {
break;
} else {
if (transition.mConstraintSetEnd == -1) {
this.mDefaultTransition = transition;
} else {
this.mAbstractTransitionList.add(transition);
}
this.mTransitionList.remove(transition);
break;
}
case 2:
if (transition == null) {
Log.v(TAG, " OnSwipe (" + context.getResources().getResourceEntryName(i) + ".xml:" + xml.getLineNumber() + ")");
}
transition.mTouchResponse = new TouchResponse(context, this.mMotionLayout, xml);
break;
case 3:
transition.addOnClick(context, xml);
break;
case 4:
this.mStateSet = new StateSet(context, xml);
break;
case 5:
parseConstraintSet(context, xml);
break;
case 6:
transition.mKeyFramesList.add(new KeyFrames(context, xml));
break;
default:
Log.v(TAG, "WARNING UNKNOWN ATTRIBUTE " + name);
break;
}
}
eventType = xml.next();
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e2) {
e2.printStackTrace();
}
}
private void parseMotionSceneTags(Context context, XmlPullParser xmlPullParser) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.MotionScene);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.MotionScene_defaultDuration) {
this.mDefaultDuration = obtainStyledAttributes.getInt(index, this.mDefaultDuration);
} else if (index == R.styleable.MotionScene_layoutDuringTransition) {
this.mLayoutDuringTransition = obtainStyledAttributes.getInteger(index, 0);
}
}
obtainStyledAttributes.recycle();
}
private int getId(Context context, String str) {
int i;
if (str.contains("/")) {
i = context.getResources().getIdentifier(str.substring(str.indexOf(47) + 1), "id", context.getPackageName());
if (this.DEBUG_DESKTOP) {
System.out.println("id getMap res = " + i);
}
} else {
i = -1;
}
if (i != -1) {
return i;
}
if (str != null && str.length() > 1) {
return Integer.parseInt(str.substring(1));
}
Log.e(TAG, "error in parsing id");
return i;
}
private void parseConstraintSet(Context context, XmlPullParser xmlPullParser) {
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.setForceId(false);
int attributeCount = xmlPullParser.getAttributeCount();
int i = -1;
int i2 = -1;
for (int i3 = 0; i3 < attributeCount; i3++) {
String attributeName = xmlPullParser.getAttributeName(i3);
String attributeValue = xmlPullParser.getAttributeValue(i3);
if (this.DEBUG_DESKTOP) {
System.out.println("id string = " + attributeValue);
}
attributeName.hashCode();
if (attributeName.equals("deriveConstraintsFrom")) {
i2 = getId(context, attributeValue);
} else if (attributeName.equals("id")) {
i = getId(context, attributeValue);
this.mConstraintSetIdMap.put(stripID(attributeValue), Integer.valueOf(i));
}
}
if (i != -1) {
if (this.mMotionLayout.mDebugPath != 0) {
constraintSet.setValidateOnParse(true);
}
constraintSet.load(context, xmlPullParser);
if (i2 != -1) {
this.mDeriveMap.put(i, i2);
}
this.mConstraintSetMap.put(i, constraintSet);
}
}
public ConstraintSet getConstraintSet(Context context, String str) {
if (this.DEBUG_DESKTOP) {
System.out.println("id " + str);
System.out.println("size " + this.mConstraintSetMap.size());
}
for (int i = 0; i < this.mConstraintSetMap.size(); i++) {
int keyAt = this.mConstraintSetMap.keyAt(i);
String resourceName = context.getResources().getResourceName(keyAt);
if (this.DEBUG_DESKTOP) {
System.out.println("Id for <" + i + "> is <" + resourceName + "> looking for <" + str + ">");
}
if (str.equals(resourceName)) {
return this.mConstraintSetMap.get(keyAt);
}
}
return null;
}
/* JADX INFO: Access modifiers changed from: package-private */
public ConstraintSet getConstraintSet(int i) {
return getConstraintSet(i, -1, -1);
}
ConstraintSet getConstraintSet(int i, int i2, int i3) {
int stateGetConstraintID;
if (this.DEBUG_DESKTOP) {
System.out.println("id " + i);
System.out.println("size " + this.mConstraintSetMap.size());
}
StateSet stateSet = this.mStateSet;
if (stateSet != null && (stateGetConstraintID = stateSet.stateGetConstraintID(i, i2, i3)) != -1) {
i = stateGetConstraintID;
}
if (this.mConstraintSetMap.get(i) == null) {
Log.e(TAG, "Warning could not find ConstraintSet id/" + Debug.getName(this.mMotionLayout.getContext(), i) + " In MotionScene");
SparseArray<ConstraintSet> sparseArray = this.mConstraintSetMap;
return sparseArray.get(sparseArray.keyAt(0));
}
return this.mConstraintSetMap.get(i);
}
public void setConstraintSet(int i, ConstraintSet constraintSet) {
this.mConstraintSetMap.put(i, constraintSet);
}
public void getKeyFrames(MotionController motionController) {
Transition transition = this.mCurrentTransition;
if (transition != null) {
Iterator it = transition.mKeyFramesList.iterator();
while (it.hasNext()) {
((KeyFrames) it.next()).addFrames(motionController);
}
} else {
Transition transition2 = this.mDefaultTransition;
if (transition2 != null) {
Iterator it2 = transition2.mKeyFramesList.iterator();
while (it2.hasNext()) {
((KeyFrames) it2.next()).addFrames(motionController);
}
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
public Key getKeyFrame(Context context, int i, int i2, int i3) {
Transition transition = this.mCurrentTransition;
if (transition == null) {
return null;
}
Iterator it = transition.mKeyFramesList.iterator();
while (it.hasNext()) {
KeyFrames keyFrames = (KeyFrames) it.next();
for (Integer num : keyFrames.getKeys()) {
if (i2 == num.intValue()) {
Iterator<Key> it2 = keyFrames.getKeyFramesForView(num.intValue()).iterator();
while (it2.hasNext()) {
Key next = it2.next();
if (next.mFramePosition == i3 && next.mType == i) {
return next;
}
}
}
}
}
return null;
}
int getTransitionDirection(int i) {
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
if (it.next().mConstraintSetStart == i) {
return 0;
}
}
return 1;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean hasKeyFramePosition(View view, int i) {
Transition transition = this.mCurrentTransition;
if (transition == null) {
return false;
}
Iterator it = transition.mKeyFramesList.iterator();
while (it.hasNext()) {
Iterator<Key> it2 = ((KeyFrames) it.next()).getKeyFramesForView(view.getId()).iterator();
while (it2.hasNext()) {
if (it2.next().mFramePosition == i) {
return true;
}
}
}
return false;
}
public void setKeyframe(View view, int i, String str, Object obj) {
Transition transition = this.mCurrentTransition;
if (transition == null) {
return;
}
Iterator it = transition.mKeyFramesList.iterator();
while (it.hasNext()) {
Iterator<Key> it2 = ((KeyFrames) it.next()).getKeyFramesForView(view.getId()).iterator();
while (it2.hasNext()) {
if (it2.next().mFramePosition == i) {
if (obj != null) {
((Float) obj).floatValue();
}
str.equalsIgnoreCase("app:PerpendicularPath_percent");
}
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean supportTouch() {
Iterator<Transition> it = this.mTransitionList.iterator();
while (it.hasNext()) {
if (it.next().mTouchResponse != null) {
return true;
}
}
Transition transition = this.mCurrentTransition;
return (transition == null || transition.mTouchResponse == null) ? false : true;
}
/* JADX INFO: Access modifiers changed from: package-private */
public void processTouchEvent(MotionEvent motionEvent, int i, MotionLayout motionLayout) {
MotionLayout.MotionTracker motionTracker;
MotionEvent motionEvent2;
RectF rectF = new RectF();
if (this.mVelocityTracker == null) {
this.mVelocityTracker = this.mMotionLayout.obtainVelocityTracker();
}
this.mVelocityTracker.addMovement(motionEvent);
if (i != -1) {
int action = motionEvent.getAction();
boolean z = false;
if (action == 0) {
this.mLastTouchX = motionEvent.getRawX();
this.mLastTouchY = motionEvent.getRawY();
this.mLastTouchDown = motionEvent;
if (this.mCurrentTransition.mTouchResponse != null) {
RectF limitBoundsTo = this.mCurrentTransition.mTouchResponse.getLimitBoundsTo(this.mMotionLayout, rectF);
if (limitBoundsTo != null && !limitBoundsTo.contains(this.mLastTouchDown.getX(), this.mLastTouchDown.getY())) {
this.mLastTouchDown = null;
return;
}
RectF touchRegion = this.mCurrentTransition.mTouchResponse.getTouchRegion(this.mMotionLayout, rectF);
if (touchRegion == null || touchRegion.contains(this.mLastTouchDown.getX(), this.mLastTouchDown.getY())) {
this.mMotionOutsideRegion = false;
} else {
this.mMotionOutsideRegion = true;
}
this.mCurrentTransition.mTouchResponse.setDown(this.mLastTouchX, this.mLastTouchY);
return;
}
return;
}
if (action == 2) {
float rawY = motionEvent.getRawY() - this.mLastTouchY;
float rawX = motionEvent.getRawX() - this.mLastTouchX;
if ((rawX == BuildConfig.SENTRY_SAMPLE_RATE && rawY == BuildConfig.SENTRY_SAMPLE_RATE) || (motionEvent2 = this.mLastTouchDown) == null) {
return;
}
Transition bestTransitionFor = bestTransitionFor(i, rawX, rawY, motionEvent2);
if (bestTransitionFor != null) {
motionLayout.setTransition(bestTransitionFor);
RectF touchRegion2 = this.mCurrentTransition.mTouchResponse.getTouchRegion(this.mMotionLayout, rectF);
if (touchRegion2 != null && !touchRegion2.contains(this.mLastTouchDown.getX(), this.mLastTouchDown.getY())) {
z = true;
}
this.mMotionOutsideRegion = z;
this.mCurrentTransition.mTouchResponse.setUpTouchEvent(this.mLastTouchX, this.mLastTouchY);
}
}
}
Transition transition = this.mCurrentTransition;
if (transition != null && transition.mTouchResponse != null && !this.mMotionOutsideRegion) {
this.mCurrentTransition.mTouchResponse.processTouchEvent(motionEvent, this.mVelocityTracker, i, this);
}
this.mLastTouchX = motionEvent.getRawX();
this.mLastTouchY = motionEvent.getRawY();
if (motionEvent.getAction() != 1 || (motionTracker = this.mVelocityTracker) == null) {
return;
}
motionTracker.recycle();
this.mVelocityTracker = null;
if (motionLayout.mCurrentState != -1) {
autoTransition(motionLayout, motionLayout.mCurrentState);
}
}
/* JADX INFO: Access modifiers changed from: package-private */
public void processScrollMove(float f, float f2) {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return;
}
this.mCurrentTransition.mTouchResponse.scrollMove(f, f2);
}
/* JADX INFO: Access modifiers changed from: package-private */
public void processScrollUp(float f, float f2) {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return;
}
this.mCurrentTransition.mTouchResponse.scrollUp(f, f2);
}
/* JADX INFO: Access modifiers changed from: package-private */
public float getProgressDirection(float f, float f2) {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return 0.0f;
}
return this.mCurrentTransition.mTouchResponse.getProgressDirection(f, f2);
}
/* JADX INFO: Access modifiers changed from: package-private */
public int getStartId() {
Transition transition = this.mCurrentTransition;
if (transition == null) {
return -1;
}
return transition.mConstraintSetStart;
}
/* JADX INFO: Access modifiers changed from: package-private */
public int getEndId() {
Transition transition = this.mCurrentTransition;
if (transition == null) {
return -1;
}
return transition.mConstraintSetEnd;
}
public Interpolator getInterpolator() {
int i = this.mCurrentTransition.mDefaultInterpolator;
if (i == -2) {
return AnimationUtils.loadInterpolator(this.mMotionLayout.getContext(), this.mCurrentTransition.mDefaultInterpolatorID);
}
if (i == -1) {
final Easing interpolator = Easing.getInterpolator(this.mCurrentTransition.mDefaultInterpolatorString);
return new Interpolator() { // from class: androidx.constraintlayout.motion.widget.MotionScene.1
@Override // android.animation.TimeInterpolator
public float getInterpolation(float f) {
return (float) interpolator.get(f);
}
};
}
if (i == 0) {
return new AccelerateDecelerateInterpolator();
}
if (i == 1) {
return new AccelerateInterpolator();
}
if (i == 2) {
return new DecelerateInterpolator();
}
if (i == 4) {
return new AnticipateInterpolator();
}
if (i != 5) {
return null;
}
return new BounceInterpolator();
}
public int getDuration() {
Transition transition = this.mCurrentTransition;
return transition != null ? transition.mDuration : this.mDefaultDuration;
}
public void setDuration(int i) {
Transition transition = this.mCurrentTransition;
if (transition != null) {
transition.setDuration(i);
} else {
this.mDefaultDuration = i;
}
}
public int gatPathMotionArc() {
Transition transition = this.mCurrentTransition;
if (transition != null) {
return transition.mPathMotionArc;
}
return -1;
}
public float getStaggered() {
Transition transition = this.mCurrentTransition;
if (transition != null) {
return transition.mStagger;
}
return 0.0f;
}
/* JADX INFO: Access modifiers changed from: package-private */
public float getMaxAcceleration() {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return 0.0f;
}
return this.mCurrentTransition.mTouchResponse.getMaxAcceleration();
}
/* JADX INFO: Access modifiers changed from: package-private */
public float getMaxVelocity() {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return 0.0f;
}
return this.mCurrentTransition.mTouchResponse.getMaxVelocity();
}
/* JADX INFO: Access modifiers changed from: package-private */
public void setupTouch() {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return;
}
this.mCurrentTransition.mTouchResponse.setupTouch();
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean getMoveWhenScrollAtTop() {
Transition transition = this.mCurrentTransition;
if (transition == null || transition.mTouchResponse == null) {
return false;
}
return this.mCurrentTransition.mTouchResponse.getMoveWhenScrollAtTop();
}
/* JADX INFO: Access modifiers changed from: package-private */
public void readFallback(MotionLayout motionLayout) {
for (int i = 0; i < this.mConstraintSetMap.size(); i++) {
int keyAt = this.mConstraintSetMap.keyAt(i);
if (hasCycleDependency(keyAt)) {
Log.e(TAG, "Cannot be derived from yourself");
return;
}
readConstraintChain(keyAt);
}
for (int i2 = 0; i2 < this.mConstraintSetMap.size(); i2++) {
this.mConstraintSetMap.valueAt(i2).readFallback(motionLayout);
}
}
private boolean hasCycleDependency(int i) {
int i2 = this.mDeriveMap.get(i);
int size = this.mDeriveMap.size();
while (i2 > 0) {
if (i2 == i) {
return true;
}
int i3 = size - 1;
if (size < 0) {
return true;
}
i2 = this.mDeriveMap.get(i2);
size = i3;
}
return false;
}
private void readConstraintChain(int i) {
int i2 = this.mDeriveMap.get(i);
if (i2 > 0) {
readConstraintChain(this.mDeriveMap.get(i));
ConstraintSet constraintSet = this.mConstraintSetMap.get(i);
ConstraintSet constraintSet2 = this.mConstraintSetMap.get(i2);
if (constraintSet2 == null) {
Log.e(TAG, "ERROR! invalid deriveConstraintsFrom: @id/" + Debug.getName(this.mMotionLayout.getContext(), i2));
} else {
constraintSet.readFallback(constraintSet2);
this.mDeriveMap.put(i, -1);
}
}
}
public static String stripID(String str) {
if (str == null) {
return "";
}
int indexOf = str.indexOf(47);
return indexOf < 0 ? str : str.substring(indexOf + 1);
}
public int lookUpConstraintId(String str) {
return this.mConstraintSetIdMap.get(str).intValue();
}
public String lookUpConstraintName(int i) {
for (Map.Entry<String, Integer> entry : this.mConstraintSetIdMap.entrySet()) {
if (entry.getValue().intValue() == i) {
return entry.getKey();
}
}
return null;
}
}