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 mTransitionList = new ArrayList<>(); private Transition mDefaultTransition = null; private ArrayList mAbstractTransitionList = new ArrayList<>(); private SparseArray mConstraintSetMap = new SparseArray<>(); private HashMap 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 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 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 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.(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 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 getTransitionsWithState(int i) { int realID = getRealID(i); ArrayList arrayList = new ArrayList(); Iterator 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 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 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 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 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 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 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 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 mKeyFramesList; private int mLayoutDuringTransition; private final MotionScene mMotionScene; private ArrayList 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 getKeyFrameList() { return this.mKeyFramesList; } public int getLayoutDuringTransition() { return this.mLayoutDuringTransition; } public List 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 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 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 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 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 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 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 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 entry : this.mConstraintSetIdMap.entrySet()) { if (entry.getValue().intValue() == i) { return entry.getKey(); } } return null; } }