ADD week 5
This commit is contained in:
		| @@ -0,0 +1,333 @@ | ||||
| package androidx.constraintlayout.motion.widget; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.RectF; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.util.SparseIntArray; | ||||
| import android.view.View; | ||||
| import androidx.constraintlayout.core.motion.utils.TypedValues; | ||||
| import androidx.constraintlayout.motion.utils.ViewSpline; | ||||
| import androidx.constraintlayout.widget.ConstraintAttribute; | ||||
| import androidx.constraintlayout.widget.R; | ||||
| import java.lang.reflect.Method; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.Locale; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class KeyTrigger extends Key { | ||||
|     public static final String CROSS = "CROSS"; | ||||
|     public static final int KEY_TYPE = 5; | ||||
|     static final String NAME = "KeyTrigger"; | ||||
|     public static final String NEGATIVE_CROSS = "negativeCross"; | ||||
|     public static final String POSITIVE_CROSS = "positiveCross"; | ||||
|     public static final String POST_LAYOUT = "postLayout"; | ||||
|     private static final String TAG = "KeyTrigger"; | ||||
|     public static final String TRIGGER_COLLISION_ID = "triggerCollisionId"; | ||||
|     public static final String TRIGGER_COLLISION_VIEW = "triggerCollisionView"; | ||||
|     public static final String TRIGGER_ID = "triggerID"; | ||||
|     public static final String TRIGGER_RECEIVER = "triggerReceiver"; | ||||
|     public static final String TRIGGER_SLACK = "triggerSlack"; | ||||
|     public static final String VIEW_TRANSITION_ON_CROSS = "viewTransitionOnCross"; | ||||
|     public static final String VIEW_TRANSITION_ON_NEGATIVE_CROSS = "viewTransitionOnNegativeCross"; | ||||
|     public static final String VIEW_TRANSITION_ON_POSITIVE_CROSS = "viewTransitionOnPositiveCross"; | ||||
|     private float mFireLastPos; | ||||
|     private int mCurveFit = -1; | ||||
|     private String mCross = null; | ||||
|     private int mTriggerReceiver = UNSET; | ||||
|     private String mNegativeCross = null; | ||||
|     private String mPositiveCross = null; | ||||
|     private int mTriggerID = UNSET; | ||||
|     private int mTriggerCollisionId = UNSET; | ||||
|     private View mTriggerCollisionView = null; | ||||
|     float mTriggerSlack = 0.1f; | ||||
|     private boolean mFireCrossReset = true; | ||||
|     private boolean mFireNegativeReset = true; | ||||
|     private boolean mFirePositiveReset = true; | ||||
|     private float mFireThreshold = Float.NaN; | ||||
|     private boolean mPostLayout = false; | ||||
|     int mViewTransitionOnNegativeCross = UNSET; | ||||
|     int mViewTransitionOnPositiveCross = UNSET; | ||||
|     int mViewTransitionOnCross = UNSET; | ||||
|     RectF mCollisionRect = new RectF(); | ||||
|     RectF mTargetRect = new RectF(); | ||||
|     HashMap<String, Method> mMethodHashMap = new HashMap<>(); | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     public void addValues(HashMap<String, ViewSpline> splines) { | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     public void getAttributeNames(HashSet<String> attributes) { | ||||
|     } | ||||
|  | ||||
|     int getCurveFit() { | ||||
|         return this.mCurveFit; | ||||
|     } | ||||
|  | ||||
|     public KeyTrigger() { | ||||
|         this.mType = 5; | ||||
|         this.mCustomConstraints = new HashMap<>(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     public void load(Context context, AttributeSet attrs) { | ||||
|         Loader.read(this, context.obtainStyledAttributes(attrs, R.styleable.KeyTrigger), context); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     public void setValue(String tag, Object value) { | ||||
|         tag.hashCode(); | ||||
|         switch (tag) { | ||||
|             case "positiveCross": | ||||
|                 this.mPositiveCross = value.toString(); | ||||
|                 break; | ||||
|             case "viewTransitionOnPositiveCross": | ||||
|                 this.mViewTransitionOnPositiveCross = toInt(value); | ||||
|                 break; | ||||
|             case "triggerCollisionId": | ||||
|                 this.mTriggerCollisionId = toInt(value); | ||||
|                 break; | ||||
|             case "triggerID": | ||||
|                 this.mTriggerID = toInt(value); | ||||
|                 break; | ||||
|             case "negativeCross": | ||||
|                 this.mNegativeCross = value.toString(); | ||||
|                 break; | ||||
|             case "triggerCollisionView": | ||||
|                 this.mTriggerCollisionView = (View) value; | ||||
|                 break; | ||||
|             case "viewTransitionOnNegativeCross": | ||||
|                 this.mViewTransitionOnNegativeCross = toInt(value); | ||||
|                 break; | ||||
|             case "CROSS": | ||||
|                 this.mCross = value.toString(); | ||||
|                 break; | ||||
|             case "triggerSlack": | ||||
|                 this.mTriggerSlack = toFloat(value); | ||||
|                 break; | ||||
|             case "viewTransitionOnCross": | ||||
|                 this.mViewTransitionOnCross = toInt(value); | ||||
|                 break; | ||||
|             case "postLayout": | ||||
|                 this.mPostLayout = toBoolean(value); | ||||
|                 break; | ||||
|             case "triggerReceiver": | ||||
|                 this.mTriggerReceiver = toInt(value); | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void setUpRect(RectF rect, View child, boolean postLayout) { | ||||
|         rect.top = child.getTop(); | ||||
|         rect.bottom = child.getBottom(); | ||||
|         rect.left = child.getLeft(); | ||||
|         rect.right = child.getRight(); | ||||
|         if (postLayout) { | ||||
|             child.getMatrix().mapRect(rect); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Removed duplicated region for block: B:68:0x008d  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:75:0x00b7  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:82:0x00d1  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:87:0x00a2  */ | ||||
|     /* | ||||
|         Code decompiled incorrectly, please refer to instructions dump. | ||||
|         To view partially-correct add '--show-bad-code' argument | ||||
|     */ | ||||
|     public void conditionallyFire(float r10, android.view.View r11) { | ||||
|         /* | ||||
|             Method dump skipped, instructions count: 357 | ||||
|             To view this dump add '--comments-level debug' option | ||||
|         */ | ||||
|         throw new UnsupportedOperationException("Method not decompiled: androidx.constraintlayout.motion.widget.KeyTrigger.conditionallyFire(float, android.view.View):void"); | ||||
|     } | ||||
|  | ||||
|     private void fire(String str, View call) { | ||||
|         Method method; | ||||
|         if (str == null) { | ||||
|             return; | ||||
|         } | ||||
|         if (str.startsWith(".")) { | ||||
|             fireCustom(str, call); | ||||
|             return; | ||||
|         } | ||||
|         if (this.mMethodHashMap.containsKey(str)) { | ||||
|             method = this.mMethodHashMap.get(str); | ||||
|             if (method == null) { | ||||
|                 return; | ||||
|             } | ||||
|         } else { | ||||
|             method = null; | ||||
|         } | ||||
|         if (method == null) { | ||||
|             try { | ||||
|                 method = call.getClass().getMethod(str, new Class[0]); | ||||
|                 this.mMethodHashMap.put(str, method); | ||||
|             } catch (NoSuchMethodException unused) { | ||||
|                 this.mMethodHashMap.put(str, null); | ||||
|                 Log.e(TypedValues.TriggerType.NAME, "Could not find method \"" + str + "\"on class " + call.getClass().getSimpleName() + " " + Debug.getName(call)); | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|         try { | ||||
|             method.invoke(call, new Object[0]); | ||||
|         } catch (Exception unused2) { | ||||
|             Log.e(TypedValues.TriggerType.NAME, "Exception in call \"" + this.mCross + "\"on class " + call.getClass().getSimpleName() + " " + Debug.getName(call)); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void fireCustom(String str, View view) { | ||||
|         boolean z = str.length() == 1; | ||||
|         if (!z) { | ||||
|             str = str.substring(1).toLowerCase(Locale.ROOT); | ||||
|         } | ||||
|         for (String str2 : this.mCustomConstraints.keySet()) { | ||||
|             String lowerCase = str2.toLowerCase(Locale.ROOT); | ||||
|             if (z || lowerCase.matches(str)) { | ||||
|                 ConstraintAttribute constraintAttribute = this.mCustomConstraints.get(str2); | ||||
|                 if (constraintAttribute != null) { | ||||
|                     constraintAttribute.applyCustom(view); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Loader { | ||||
|         private static final int COLLISION = 9; | ||||
|         private static final int CROSS = 4; | ||||
|         private static final int FRAME_POS = 8; | ||||
|         private static final int NEGATIVE_CROSS = 1; | ||||
|         private static final int POSITIVE_CROSS = 2; | ||||
|         private static final int POST_LAYOUT = 10; | ||||
|         private static final int TARGET_ID = 7; | ||||
|         private static final int TRIGGER_ID = 6; | ||||
|         private static final int TRIGGER_RECEIVER = 11; | ||||
|         private static final int TRIGGER_SLACK = 5; | ||||
|         private static final int VT_CROSS = 12; | ||||
|         private static final int VT_NEGATIVE_CROSS = 13; | ||||
|         private static final int VT_POSITIVE_CROSS = 14; | ||||
|         private static SparseIntArray mAttrMap; | ||||
|  | ||||
|         private Loader() { | ||||
|         } | ||||
|  | ||||
|         static { | ||||
|             SparseIntArray sparseIntArray = new SparseIntArray(); | ||||
|             mAttrMap = sparseIntArray; | ||||
|             sparseIntArray.append(R.styleable.KeyTrigger_framePosition, 8); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_onCross, 4); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_onNegativeCross, 1); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_onPositiveCross, 2); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_motionTarget, 7); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_triggerId, 6); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_triggerSlack, 5); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_motion_triggerOnCollision, 9); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_motion_postLayoutCollision, 10); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_triggerReceiver, 11); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_viewTransitionOnCross, 12); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_viewTransitionOnNegativeCross, 13); | ||||
|             mAttrMap.append(R.styleable.KeyTrigger_viewTransitionOnPositiveCross, 14); | ||||
|         } | ||||
|  | ||||
|         public static void read(KeyTrigger c, TypedArray a, Context context) { | ||||
|             int indexCount = a.getIndexCount(); | ||||
|             for (int i = 0; i < indexCount; i++) { | ||||
|                 int index = a.getIndex(i); | ||||
|                 switch (mAttrMap.get(index)) { | ||||
|                     case 1: | ||||
|                         c.mNegativeCross = a.getString(index); | ||||
|                         break; | ||||
|                     case 2: | ||||
|                         c.mPositiveCross = a.getString(index); | ||||
|                         break; | ||||
|                     case 3: | ||||
|                     default: | ||||
|                         Log.e(TypedValues.TriggerType.NAME, "unused attribute 0x" + Integer.toHexString(index) + "   " + mAttrMap.get(index)); | ||||
|                         break; | ||||
|                     case 4: | ||||
|                         c.mCross = a.getString(index); | ||||
|                         break; | ||||
|                     case 5: | ||||
|                         c.mTriggerSlack = a.getFloat(index, c.mTriggerSlack); | ||||
|                         break; | ||||
|                     case 6: | ||||
|                         c.mTriggerID = a.getResourceId(index, c.mTriggerID); | ||||
|                         break; | ||||
|                     case 7: | ||||
|                         if (MotionLayout.IS_IN_EDIT_MODE) { | ||||
|                             c.mTargetId = a.getResourceId(index, c.mTargetId); | ||||
|                             if (c.mTargetId == -1) { | ||||
|                                 c.mTargetString = a.getString(index); | ||||
|                                 break; | ||||
|                             } else { | ||||
|                                 break; | ||||
|                             } | ||||
|                         } else if (a.peekValue(index).type == 3) { | ||||
|                             c.mTargetString = a.getString(index); | ||||
|                             break; | ||||
|                         } else { | ||||
|                             c.mTargetId = a.getResourceId(index, c.mTargetId); | ||||
|                             break; | ||||
|                         } | ||||
|                     case 8: | ||||
|                         c.mFramePosition = a.getInteger(index, c.mFramePosition); | ||||
|                         c.mFireThreshold = (c.mFramePosition + 0.5f) / 100.0f; | ||||
|                         break; | ||||
|                     case 9: | ||||
|                         c.mTriggerCollisionId = a.getResourceId(index, c.mTriggerCollisionId); | ||||
|                         break; | ||||
|                     case 10: | ||||
|                         c.mPostLayout = a.getBoolean(index, c.mPostLayout); | ||||
|                         break; | ||||
|                     case 11: | ||||
|                         c.mTriggerReceiver = a.getResourceId(index, c.mTriggerReceiver); | ||||
|                         break; | ||||
|                     case 12: | ||||
|                         c.mViewTransitionOnCross = a.getResourceId(index, c.mViewTransitionOnCross); | ||||
|                         break; | ||||
|                     case 13: | ||||
|                         c.mViewTransitionOnNegativeCross = a.getResourceId(index, c.mViewTransitionOnNegativeCross); | ||||
|                         break; | ||||
|                     case 14: | ||||
|                         c.mViewTransitionOnPositiveCross = a.getResourceId(index, c.mViewTransitionOnPositiveCross); | ||||
|                         break; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     public Key copy(Key src) { | ||||
|         super.copy(src); | ||||
|         KeyTrigger keyTrigger = (KeyTrigger) src; | ||||
|         this.mCurveFit = keyTrigger.mCurveFit; | ||||
|         this.mCross = keyTrigger.mCross; | ||||
|         this.mTriggerReceiver = keyTrigger.mTriggerReceiver; | ||||
|         this.mNegativeCross = keyTrigger.mNegativeCross; | ||||
|         this.mPositiveCross = keyTrigger.mPositiveCross; | ||||
|         this.mTriggerID = keyTrigger.mTriggerID; | ||||
|         this.mTriggerCollisionId = keyTrigger.mTriggerCollisionId; | ||||
|         this.mTriggerCollisionView = keyTrigger.mTriggerCollisionView; | ||||
|         this.mTriggerSlack = keyTrigger.mTriggerSlack; | ||||
|         this.mFireCrossReset = keyTrigger.mFireCrossReset; | ||||
|         this.mFireNegativeReset = keyTrigger.mFireNegativeReset; | ||||
|         this.mFirePositiveReset = keyTrigger.mFirePositiveReset; | ||||
|         this.mFireThreshold = keyTrigger.mFireThreshold; | ||||
|         this.mFireLastPos = keyTrigger.mFireLastPos; | ||||
|         this.mPostLayout = keyTrigger.mPostLayout; | ||||
|         this.mCollisionRect = keyTrigger.mCollisionRect; | ||||
|         this.mTargetRect = keyTrigger.mTargetRect; | ||||
|         this.mMethodHashMap = keyTrigger.mMethodHashMap; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.constraintlayout.motion.widget.Key | ||||
|     /* renamed from: clone */ | ||||
|     public Key mo49clone() { | ||||
|         return new KeyTrigger().copy(this); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user