ADD week 5
This commit is contained in:
		| @@ -0,0 +1,557 @@ | ||||
| package androidx.constraintlayout.motion.widget; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.Rect; | ||||
| import android.util.Log; | ||||
| import android.util.TypedValue; | ||||
| import android.util.Xml; | ||||
| 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 android.view.animation.OvershootInterpolator; | ||||
| import androidx.constraintlayout.core.motion.utils.Easing; | ||||
| import androidx.constraintlayout.core.motion.utils.KeyCache; | ||||
| import androidx.constraintlayout.motion.widget.MotionScene; | ||||
| import androidx.constraintlayout.widget.ConstraintAttribute; | ||||
| import androidx.constraintlayout.widget.ConstraintLayout; | ||||
| import androidx.constraintlayout.widget.ConstraintSet; | ||||
| import androidx.constraintlayout.widget.R; | ||||
| import java.io.IOException; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Iterator; | ||||
| import org.xmlpull.v1.XmlPullParser; | ||||
| import org.xmlpull.v1.XmlPullParserException; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ViewTransition { | ||||
|     static final int ANTICIPATE = 6; | ||||
|     static final int BOUNCE = 4; | ||||
|     public static final String CONSTRAINT_OVERRIDE = "ConstraintOverride"; | ||||
|     public static final String CUSTOM_ATTRIBUTE = "CustomAttribute"; | ||||
|     public static final String CUSTOM_METHOD = "CustomMethod"; | ||||
|     static final int EASE_IN = 1; | ||||
|     static final int EASE_IN_OUT = 0; | ||||
|     static final int EASE_OUT = 2; | ||||
|     private static final int INTERPOLATOR_REFERENCE_ID = -2; | ||||
|     public static final String KEY_FRAME_SET_TAG = "KeyFrameSet"; | ||||
|     static final int LINEAR = 3; | ||||
|     public static final int ONSTATE_ACTION_DOWN = 1; | ||||
|     public static final int ONSTATE_ACTION_DOWN_UP = 3; | ||||
|     public static final int ONSTATE_ACTION_UP = 2; | ||||
|     public static final int ONSTATE_SHARED_VALUE_SET = 4; | ||||
|     public static final int ONSTATE_SHARED_VALUE_UNSET = 5; | ||||
|     static final int OVERSHOOT = 5; | ||||
|     private static final int SPLINE_STRING = -1; | ||||
|     private static String TAG = "ViewTransition"; | ||||
|     private static final int UNSET = -1; | ||||
|     static final int VIEWTRANSITIONMODE_ALLSTATES = 1; | ||||
|     static final int VIEWTRANSITIONMODE_CURRENTSTATE = 0; | ||||
|     static final int VIEWTRANSITIONMODE_NOSTATE = 2; | ||||
|     public static final String VIEW_TRANSITION_TAG = "ViewTransition"; | ||||
|     ConstraintSet.Constraint mConstraintDelta; | ||||
|     Context mContext; | ||||
|     private int mId; | ||||
|     KeyFrames mKeyFrames; | ||||
|     private int mTargetId; | ||||
|     private String mTargetString; | ||||
|     int mViewTransitionMode; | ||||
|     ConstraintSet set; | ||||
|     private int mOnStateTransition = -1; | ||||
|     private boolean mDisabled = false; | ||||
|     private int mPathMotionArc = 0; | ||||
|     private int mDuration = -1; | ||||
|     private int mUpDuration = -1; | ||||
|     private int mDefaultInterpolator = 0; | ||||
|     private String mDefaultInterpolatorString = null; | ||||
|     private int mDefaultInterpolatorID = -1; | ||||
|     private int mSetsTag = -1; | ||||
|     private int mClearsTag = -1; | ||||
|     private int mIfTagSet = -1; | ||||
|     private int mIfTagNotSet = -1; | ||||
|     private int mSharedValueTarget = -1; | ||||
|     private int mSharedValueID = -1; | ||||
|     private int mSharedValueCurrent = -1; | ||||
|  | ||||
|     int getId() { | ||||
|         return this.mId; | ||||
|     } | ||||
|  | ||||
|     public int getSharedValue() { | ||||
|         return this.mSharedValueTarget; | ||||
|     } | ||||
|  | ||||
|     public int getSharedValueCurrent() { | ||||
|         return this.mSharedValueCurrent; | ||||
|     } | ||||
|  | ||||
|     public int getSharedValueID() { | ||||
|         return this.mSharedValueID; | ||||
|     } | ||||
|  | ||||
|     public int getStateTransition() { | ||||
|         return this.mOnStateTransition; | ||||
|     } | ||||
|  | ||||
|     boolean isEnabled() { | ||||
|         return !this.mDisabled; | ||||
|     } | ||||
|  | ||||
|     void setEnabled(boolean enable) { | ||||
|         this.mDisabled = !enable; | ||||
|     } | ||||
|  | ||||
|     void setId(int id) { | ||||
|         this.mId = id; | ||||
|     } | ||||
|  | ||||
|     public void setSharedValue(int sharedValue) { | ||||
|         this.mSharedValueTarget = sharedValue; | ||||
|     } | ||||
|  | ||||
|     public void setSharedValueCurrent(int sharedValueCurrent) { | ||||
|         this.mSharedValueCurrent = sharedValueCurrent; | ||||
|     } | ||||
|  | ||||
|     public void setSharedValueID(int sharedValueID) { | ||||
|         this.mSharedValueID = sharedValueID; | ||||
|     } | ||||
|  | ||||
|     public void setStateTransition(int stateTransition) { | ||||
|         this.mOnStateTransition = stateTransition; | ||||
|     } | ||||
|  | ||||
|     boolean supports(int action) { | ||||
|         int i = this.mOnStateTransition; | ||||
|         return i == 1 ? action == 0 : i == 2 ? action == 1 : i == 3 && action == 0; | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         return "ViewTransition(" + Debug.getName(this.mContext, this.mId) + ")"; | ||||
|     } | ||||
|  | ||||
|     Interpolator getInterpolator(Context context) { | ||||
|         int i = this.mDefaultInterpolator; | ||||
|         if (i == -2) { | ||||
|             return AnimationUtils.loadInterpolator(context, this.mDefaultInterpolatorID); | ||||
|         } | ||||
|         if (i == -1) { | ||||
|             final Easing interpolator = Easing.getInterpolator(this.mDefaultInterpolatorString); | ||||
|             return new Interpolator(this) { // from class: androidx.constraintlayout.motion.widget.ViewTransition.1 | ||||
|                 @Override // android.animation.TimeInterpolator | ||||
|                 public float getInterpolation(float v) { | ||||
|                     return (float) interpolator.get(v); | ||||
|                 } | ||||
|             }; | ||||
|         } | ||||
|         if (i == 0) { | ||||
|             return new AccelerateDecelerateInterpolator(); | ||||
|         } | ||||
|         if (i == 1) { | ||||
|             return new AccelerateInterpolator(); | ||||
|         } | ||||
|         if (i == 2) { | ||||
|             return new DecelerateInterpolator(); | ||||
|         } | ||||
|         if (i == 4) { | ||||
|             return new BounceInterpolator(); | ||||
|         } | ||||
|         if (i == 5) { | ||||
|             return new OvershootInterpolator(); | ||||
|         } | ||||
|         if (i != 6) { | ||||
|             return null; | ||||
|         } | ||||
|         return new AnticipateInterpolator(); | ||||
|     } | ||||
|  | ||||
|     ViewTransition(Context context, XmlPullParser parser) { | ||||
|         char c; | ||||
|         this.mContext = context; | ||||
|         try { | ||||
|             int eventType = parser.getEventType(); | ||||
|             while (eventType != 1) { | ||||
|                 if (eventType == 2) { | ||||
|                     String name = parser.getName(); | ||||
|                     switch (name.hashCode()) { | ||||
|                         case -1962203927: | ||||
|                             if (name.equals(CONSTRAINT_OVERRIDE)) { | ||||
|                                 c = 2; | ||||
|                                 break; | ||||
|                             } | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                         case -1239391468: | ||||
|                             if (name.equals(KEY_FRAME_SET_TAG)) { | ||||
|                                 c = 1; | ||||
|                                 break; | ||||
|                             } | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                         case 61998586: | ||||
|                             if (name.equals(VIEW_TRANSITION_TAG)) { | ||||
|                                 c = 0; | ||||
|                                 break; | ||||
|                             } | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                         case 366511058: | ||||
|                             if (name.equals(CUSTOM_METHOD)) { | ||||
|                                 c = 4; | ||||
|                                 break; | ||||
|                             } | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                         case 1791837707: | ||||
|                             if (name.equals(CUSTOM_ATTRIBUTE)) { | ||||
|                                 c = 3; | ||||
|                                 break; | ||||
|                             } | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                         default: | ||||
|                             c = 65535; | ||||
|                             break; | ||||
|                     } | ||||
|                     if (c == 0) { | ||||
|                         parseViewTransitionTags(context, parser); | ||||
|                     } else if (c == 1) { | ||||
|                         this.mKeyFrames = new KeyFrames(context, parser); | ||||
|                     } else if (c == 2) { | ||||
|                         this.mConstraintDelta = ConstraintSet.buildDelta(context, parser); | ||||
|                     } else if (c == 3 || c == 4) { | ||||
|                         ConstraintAttribute.parse(context, parser, this.mConstraintDelta.mCustomConstraints); | ||||
|                     } else { | ||||
|                         Log.e(TAG, Debug.getLoc() + " unknown tag " + name); | ||||
|                         Log.e(TAG, ".xml:" + parser.getLineNumber()); | ||||
|                     } | ||||
|                 } else if (eventType != 3) { | ||||
|                     continue; | ||||
|                 } else if (VIEW_TRANSITION_TAG.equals(parser.getName())) { | ||||
|                     return; | ||||
|                 } | ||||
|                 eventType = parser.next(); | ||||
|             } | ||||
|         } catch (IOException e) { | ||||
|             e.printStackTrace(); | ||||
|         } catch (XmlPullParserException e2) { | ||||
|             e2.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void parseViewTransitionTags(Context context, XmlPullParser parser) { | ||||
|         TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(parser), R.styleable.ViewTransition); | ||||
|         int indexCount = obtainStyledAttributes.getIndexCount(); | ||||
|         for (int i = 0; i < indexCount; i++) { | ||||
|             int index = obtainStyledAttributes.getIndex(i); | ||||
|             if (index == R.styleable.ViewTransition_android_id) { | ||||
|                 this.mId = obtainStyledAttributes.getResourceId(index, this.mId); | ||||
|             } else if (index == R.styleable.ViewTransition_motionTarget) { | ||||
|                 if (MotionLayout.IS_IN_EDIT_MODE) { | ||||
|                     int resourceId = obtainStyledAttributes.getResourceId(index, this.mTargetId); | ||||
|                     this.mTargetId = resourceId; | ||||
|                     if (resourceId == -1) { | ||||
|                         this.mTargetString = obtainStyledAttributes.getString(index); | ||||
|                     } | ||||
|                 } else if (obtainStyledAttributes.peekValue(index).type == 3) { | ||||
|                     this.mTargetString = obtainStyledAttributes.getString(index); | ||||
|                 } else { | ||||
|                     this.mTargetId = obtainStyledAttributes.getResourceId(index, this.mTargetId); | ||||
|                 } | ||||
|             } else if (index == R.styleable.ViewTransition_onStateTransition) { | ||||
|                 this.mOnStateTransition = obtainStyledAttributes.getInt(index, this.mOnStateTransition); | ||||
|             } else if (index == R.styleable.ViewTransition_transitionDisable) { | ||||
|                 this.mDisabled = obtainStyledAttributes.getBoolean(index, this.mDisabled); | ||||
|             } else if (index == R.styleable.ViewTransition_pathMotionArc) { | ||||
|                 this.mPathMotionArc = obtainStyledAttributes.getInt(index, this.mPathMotionArc); | ||||
|             } else if (index == R.styleable.ViewTransition_duration) { | ||||
|                 this.mDuration = obtainStyledAttributes.getInt(index, this.mDuration); | ||||
|             } else if (index == R.styleable.ViewTransition_upDuration) { | ||||
|                 this.mUpDuration = obtainStyledAttributes.getInt(index, this.mUpDuration); | ||||
|             } else if (index == R.styleable.ViewTransition_viewTransitionMode) { | ||||
|                 this.mViewTransitionMode = obtainStyledAttributes.getInt(index, this.mViewTransitionMode); | ||||
|             } else if (index == R.styleable.ViewTransition_motionInterpolator) { | ||||
|                 TypedValue peekValue = obtainStyledAttributes.peekValue(index); | ||||
|                 if (peekValue.type == 1) { | ||||
|                     int resourceId2 = obtainStyledAttributes.getResourceId(index, -1); | ||||
|                     this.mDefaultInterpolatorID = resourceId2; | ||||
|                     if (resourceId2 != -1) { | ||||
|                         this.mDefaultInterpolator = -2; | ||||
|                     } | ||||
|                 } else if (peekValue.type == 3) { | ||||
|                     String string = obtainStyledAttributes.getString(index); | ||||
|                     this.mDefaultInterpolatorString = string; | ||||
|                     if (string == null || string.indexOf("/") <= 0) { | ||||
|                         this.mDefaultInterpolator = -1; | ||||
|                     } else { | ||||
|                         this.mDefaultInterpolatorID = obtainStyledAttributes.getResourceId(index, -1); | ||||
|                         this.mDefaultInterpolator = -2; | ||||
|                     } | ||||
|                 } else { | ||||
|                     this.mDefaultInterpolator = obtainStyledAttributes.getInteger(index, this.mDefaultInterpolator); | ||||
|                 } | ||||
|             } else if (index == R.styleable.ViewTransition_setsTag) { | ||||
|                 this.mSetsTag = obtainStyledAttributes.getResourceId(index, this.mSetsTag); | ||||
|             } else if (index == R.styleable.ViewTransition_clearsTag) { | ||||
|                 this.mClearsTag = obtainStyledAttributes.getResourceId(index, this.mClearsTag); | ||||
|             } else if (index == R.styleable.ViewTransition_ifTagSet) { | ||||
|                 this.mIfTagSet = obtainStyledAttributes.getResourceId(index, this.mIfTagSet); | ||||
|             } else if (index == R.styleable.ViewTransition_ifTagNotSet) { | ||||
|                 this.mIfTagNotSet = obtainStyledAttributes.getResourceId(index, this.mIfTagNotSet); | ||||
|             } else if (index == R.styleable.ViewTransition_SharedValueId) { | ||||
|                 this.mSharedValueID = obtainStyledAttributes.getResourceId(index, this.mSharedValueID); | ||||
|             } else if (index == R.styleable.ViewTransition_SharedValue) { | ||||
|                 this.mSharedValueTarget = obtainStyledAttributes.getInteger(index, this.mSharedValueTarget); | ||||
|             } | ||||
|         } | ||||
|         obtainStyledAttributes.recycle(); | ||||
|     } | ||||
|  | ||||
|     void applyIndependentTransition(ViewTransitionController controller, MotionLayout motionLayout, View view) { | ||||
|         MotionController motionController = new MotionController(view); | ||||
|         motionController.setBothStates(view); | ||||
|         this.mKeyFrames.addAllFrames(motionController); | ||||
|         motionController.setup(motionLayout.getWidth(), motionLayout.getHeight(), this.mDuration, System.nanoTime()); | ||||
|         new Animate(controller, motionController, this.mDuration, this.mUpDuration, this.mOnStateTransition, getInterpolator(motionLayout.getContext()), this.mSetsTag, this.mClearsTag); | ||||
|     } | ||||
|  | ||||
|     static class Animate { | ||||
|         boolean hold_at_100; | ||||
|         private final int mClearsTag; | ||||
|         float mDpositionDt; | ||||
|         int mDuration; | ||||
|         Interpolator mInterpolator; | ||||
|         long mLastRender; | ||||
|         MotionController mMC; | ||||
|         float mPosition; | ||||
|         private final int mSetsTag; | ||||
|         long mStart; | ||||
|         int mUpDuration; | ||||
|         ViewTransitionController mVtController; | ||||
|         KeyCache mCache = new KeyCache(); | ||||
|         boolean reverse = false; | ||||
|         Rect mTempRec = new Rect(); | ||||
|  | ||||
|         Animate(ViewTransitionController controller, MotionController motionController, int duration, int upDuration, int mode, Interpolator interpolator, int setTag, int clearTag) { | ||||
|             this.hold_at_100 = false; | ||||
|             this.mVtController = controller; | ||||
|             this.mMC = motionController; | ||||
|             this.mDuration = duration; | ||||
|             this.mUpDuration = upDuration; | ||||
|             long nanoTime = System.nanoTime(); | ||||
|             this.mStart = nanoTime; | ||||
|             this.mLastRender = nanoTime; | ||||
|             this.mVtController.addAnimation(this); | ||||
|             this.mInterpolator = interpolator; | ||||
|             this.mSetsTag = setTag; | ||||
|             this.mClearsTag = clearTag; | ||||
|             if (mode == 3) { | ||||
|                 this.hold_at_100 = true; | ||||
|             } | ||||
|             this.mDpositionDt = duration == 0 ? Float.MAX_VALUE : 1.0f / duration; | ||||
|             mutate(); | ||||
|         } | ||||
|  | ||||
|         void reverse(boolean dir) { | ||||
|             int i; | ||||
|             this.reverse = dir; | ||||
|             if (dir && (i = this.mUpDuration) != -1) { | ||||
|                 this.mDpositionDt = i == 0 ? Float.MAX_VALUE : 1.0f / i; | ||||
|             } | ||||
|             this.mVtController.invalidate(); | ||||
|             this.mLastRender = System.nanoTime(); | ||||
|         } | ||||
|  | ||||
|         void mutate() { | ||||
|             if (this.reverse) { | ||||
|                 mutateReverse(); | ||||
|             } else { | ||||
|                 mutateForward(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         void mutateReverse() { | ||||
|             long nanoTime = System.nanoTime(); | ||||
|             long j = nanoTime - this.mLastRender; | ||||
|             this.mLastRender = nanoTime; | ||||
|             float f = this.mPosition - (((float) (j * 1.0E-6d)) * this.mDpositionDt); | ||||
|             this.mPosition = f; | ||||
|             if (f < 0.0f) { | ||||
|                 this.mPosition = 0.0f; | ||||
|             } | ||||
|             Interpolator interpolator = this.mInterpolator; | ||||
|             float interpolation = interpolator == null ? this.mPosition : interpolator.getInterpolation(this.mPosition); | ||||
|             MotionController motionController = this.mMC; | ||||
|             boolean interpolate = motionController.interpolate(motionController.mView, interpolation, nanoTime, this.mCache); | ||||
|             if (this.mPosition <= 0.0f) { | ||||
|                 if (this.mSetsTag != -1) { | ||||
|                     this.mMC.getView().setTag(this.mSetsTag, Long.valueOf(System.nanoTime())); | ||||
|                 } | ||||
|                 if (this.mClearsTag != -1) { | ||||
|                     this.mMC.getView().setTag(this.mClearsTag, null); | ||||
|                 } | ||||
|                 this.mVtController.removeAnimation(this); | ||||
|             } | ||||
|             if (this.mPosition > 0.0f || interpolate) { | ||||
|                 this.mVtController.invalidate(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         void mutateForward() { | ||||
|             long nanoTime = System.nanoTime(); | ||||
|             long j = nanoTime - this.mLastRender; | ||||
|             this.mLastRender = nanoTime; | ||||
|             float f = this.mPosition + (((float) (j * 1.0E-6d)) * this.mDpositionDt); | ||||
|             this.mPosition = f; | ||||
|             if (f >= 1.0f) { | ||||
|                 this.mPosition = 1.0f; | ||||
|             } | ||||
|             Interpolator interpolator = this.mInterpolator; | ||||
|             float interpolation = interpolator == null ? this.mPosition : interpolator.getInterpolation(this.mPosition); | ||||
|             MotionController motionController = this.mMC; | ||||
|             boolean interpolate = motionController.interpolate(motionController.mView, interpolation, nanoTime, this.mCache); | ||||
|             if (this.mPosition >= 1.0f) { | ||||
|                 if (this.mSetsTag != -1) { | ||||
|                     this.mMC.getView().setTag(this.mSetsTag, Long.valueOf(System.nanoTime())); | ||||
|                 } | ||||
|                 if (this.mClearsTag != -1) { | ||||
|                     this.mMC.getView().setTag(this.mClearsTag, null); | ||||
|                 } | ||||
|                 if (!this.hold_at_100) { | ||||
|                     this.mVtController.removeAnimation(this); | ||||
|                 } | ||||
|             } | ||||
|             if (this.mPosition < 1.0f || interpolate) { | ||||
|                 this.mVtController.invalidate(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public void reactTo(int action, float x, float y) { | ||||
|             if (action == 1) { | ||||
|                 if (this.reverse) { | ||||
|                     return; | ||||
|                 } | ||||
|                 reverse(true); | ||||
|             } else { | ||||
|                 if (action != 2) { | ||||
|                     return; | ||||
|                 } | ||||
|                 this.mMC.getView().getHitRect(this.mTempRec); | ||||
|                 if (this.mTempRec.contains((int) x, (int) y) || this.reverse) { | ||||
|                     return; | ||||
|                 } | ||||
|                 reverse(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void applyTransition(ViewTransitionController controller, MotionLayout layout, int fromId, ConstraintSet current, final View... views) { | ||||
|         if (this.mDisabled) { | ||||
|             return; | ||||
|         } | ||||
|         int i = this.mViewTransitionMode; | ||||
|         if (i == 2) { | ||||
|             applyIndependentTransition(controller, layout, views[0]); | ||||
|             return; | ||||
|         } | ||||
|         if (i == 1) { | ||||
|             for (int i2 : layout.getConstraintSetIds()) { | ||||
|                 if (i2 != fromId) { | ||||
|                     ConstraintSet constraintSet = layout.getConstraintSet(i2); | ||||
|                     for (View view : views) { | ||||
|                         ConstraintSet.Constraint constraint = constraintSet.getConstraint(view.getId()); | ||||
|                         ConstraintSet.Constraint constraint2 = this.mConstraintDelta; | ||||
|                         if (constraint2 != null) { | ||||
|                             constraint2.applyDelta(constraint); | ||||
|                             constraint.mCustomConstraints.putAll(this.mConstraintDelta.mCustomConstraints); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         ConstraintSet constraintSet2 = new ConstraintSet(); | ||||
|         constraintSet2.clone(current); | ||||
|         for (View view2 : views) { | ||||
|             ConstraintSet.Constraint constraint3 = constraintSet2.getConstraint(view2.getId()); | ||||
|             ConstraintSet.Constraint constraint4 = this.mConstraintDelta; | ||||
|             if (constraint4 != null) { | ||||
|                 constraint4.applyDelta(constraint3); | ||||
|                 constraint3.mCustomConstraints.putAll(this.mConstraintDelta.mCustomConstraints); | ||||
|             } | ||||
|         } | ||||
|         layout.updateState(fromId, constraintSet2); | ||||
|         layout.updateState(R.id.view_transition, current); | ||||
|         layout.setState(R.id.view_transition, -1, -1); | ||||
|         MotionScene.Transition transition = new MotionScene.Transition(-1, layout.mScene, R.id.view_transition, fromId); | ||||
|         for (View view3 : views) { | ||||
|             updateTransition(transition, view3); | ||||
|         } | ||||
|         layout.setTransition(transition); | ||||
|         layout.transitionToEnd(new Runnable() { // from class: androidx.constraintlayout.motion.widget.ViewTransition$$ExternalSyntheticLambda0 | ||||
|             @Override // java.lang.Runnable | ||||
|             public final void run() { | ||||
|                 ViewTransition.this.m50x14d7500(views); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     /* renamed from: lambda$applyTransition$0$androidx-constraintlayout-motion-widget-ViewTransition, reason: not valid java name */ | ||||
|     /* synthetic */ void m50x14d7500(View[] viewArr) { | ||||
|         if (this.mSetsTag != -1) { | ||||
|             for (View view : viewArr) { | ||||
|                 view.setTag(this.mSetsTag, Long.valueOf(System.nanoTime())); | ||||
|             } | ||||
|         } | ||||
|         if (this.mClearsTag != -1) { | ||||
|             for (View view2 : viewArr) { | ||||
|                 view2.setTag(this.mClearsTag, null); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void updateTransition(MotionScene.Transition transition, View view) { | ||||
|         int i = this.mDuration; | ||||
|         if (i != -1) { | ||||
|             transition.setDuration(i); | ||||
|         } | ||||
|         transition.setPathMotionArc(this.mPathMotionArc); | ||||
|         transition.setInterpolatorInfo(this.mDefaultInterpolator, this.mDefaultInterpolatorString, this.mDefaultInterpolatorID); | ||||
|         int id = view.getId(); | ||||
|         KeyFrames keyFrames = this.mKeyFrames; | ||||
|         if (keyFrames != null) { | ||||
|             ArrayList<Key> keyFramesForView = keyFrames.getKeyFramesForView(-1); | ||||
|             KeyFrames keyFrames2 = new KeyFrames(); | ||||
|             Iterator<Key> it = keyFramesForView.iterator(); | ||||
|             while (it.hasNext()) { | ||||
|                 keyFrames2.addKey(it.next().mo49clone().setViewId(id)); | ||||
|             } | ||||
|             transition.addKeyFrame(keyFrames2); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     boolean matchesView(View view) { | ||||
|         String str; | ||||
|         if (view == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if ((this.mTargetId == -1 && this.mTargetString == null) || !checkTags(view)) { | ||||
|             return false; | ||||
|         } | ||||
|         if (view.getId() == this.mTargetId) { | ||||
|             return true; | ||||
|         } | ||||
|         return this.mTargetString != null && (view.getLayoutParams() instanceof ConstraintLayout.LayoutParams) && (str = ((ConstraintLayout.LayoutParams) view.getLayoutParams()).constraintTag) != null && str.matches(this.mTargetString); | ||||
|     } | ||||
|  | ||||
|     boolean checkTags(View view) { | ||||
|         int i = this.mIfTagSet; | ||||
|         boolean z = i == -1 || view.getTag(i) != null; | ||||
|         int i2 = this.mIfTagNotSet; | ||||
|         return z && (i2 == -1 || view.getTag(i2) == null); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user