142 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.constraintlayout.motion.widget;
 | |
| 
 | |
| import android.content.Context;
 | |
| import android.util.Log;
 | |
| import android.util.Xml;
 | |
| import androidx.constraintlayout.core.motion.utils.TypedValues;
 | |
| import androidx.constraintlayout.widget.ConstraintAttribute;
 | |
| import androidx.constraintlayout.widget.ConstraintLayout;
 | |
| import java.io.IOException;
 | |
| import java.lang.reflect.Constructor;
 | |
| import java.util.ArrayList;
 | |
| import java.util.HashMap;
 | |
| import java.util.Iterator;
 | |
| import java.util.Set;
 | |
| import org.xmlpull.v1.XmlPullParser;
 | |
| import org.xmlpull.v1.XmlPullParserException;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class KeyFrames {
 | |
|     private static final String CUSTOM_ATTRIBUTE = "CustomAttribute";
 | |
|     private static final String CUSTOM_METHOD = "CustomMethod";
 | |
|     private static final String TAG = "KeyFrames";
 | |
|     public static final int UNSET = -1;
 | |
|     static HashMap<String, Constructor<? extends Key>> sKeyMakers;
 | |
|     private HashMap<Integer, ArrayList<Key>> mFramesMap = new HashMap<>();
 | |
| 
 | |
|     static {
 | |
|         HashMap<String, Constructor<? extends Key>> hashMap = new HashMap<>();
 | |
|         sKeyMakers = hashMap;
 | |
|         try {
 | |
|             hashMap.put("KeyAttribute", KeyAttributes.class.getConstructor(new Class[0]));
 | |
|             sKeyMakers.put(TypedValues.PositionType.NAME, KeyPosition.class.getConstructor(new Class[0]));
 | |
|             sKeyMakers.put(TypedValues.CycleType.NAME, KeyCycle.class.getConstructor(new Class[0]));
 | |
|             sKeyMakers.put("KeyTimeCycle", KeyTimeCycle.class.getConstructor(new Class[0]));
 | |
|             sKeyMakers.put(TypedValues.TriggerType.NAME, KeyTrigger.class.getConstructor(new Class[0]));
 | |
|         } catch (NoSuchMethodException e) {
 | |
|             Log.e(TAG, "unable to load", e);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void addKey(Key key) {
 | |
|         if (!this.mFramesMap.containsKey(Integer.valueOf(key.mTargetId))) {
 | |
|             this.mFramesMap.put(Integer.valueOf(key.mTargetId), new ArrayList<>());
 | |
|         }
 | |
|         ArrayList<Key> arrayList = this.mFramesMap.get(Integer.valueOf(key.mTargetId));
 | |
|         if (arrayList != null) {
 | |
|             arrayList.add(key);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public KeyFrames() {
 | |
|     }
 | |
| 
 | |
|     public KeyFrames(Context context, XmlPullParser parser) {
 | |
|         Exception e;
 | |
|         Key key;
 | |
|         Constructor<? extends Key> constructor;
 | |
|         try {
 | |
|             int eventType = parser.getEventType();
 | |
|             Key key2 = null;
 | |
|             while (eventType != 1) {
 | |
|                 if (eventType == 2) {
 | |
|                     String name = parser.getName();
 | |
|                     if (sKeyMakers.containsKey(name)) {
 | |
|                         try {
 | |
|                             constructor = sKeyMakers.get(name);
 | |
|                         } catch (Exception e2) {
 | |
|                             Key key3 = key2;
 | |
|                             e = e2;
 | |
|                             key = key3;
 | |
|                         }
 | |
|                         if (constructor != null) {
 | |
|                             key = constructor.newInstance(new Object[0]);
 | |
|                             try {
 | |
|                                 key.load(context, Xml.asAttributeSet(parser));
 | |
|                                 addKey(key);
 | |
|                             } catch (Exception e3) {
 | |
|                                 e = e3;
 | |
|                                 Log.e(TAG, "unable to create ", e);
 | |
|                                 key2 = key;
 | |
|                                 eventType = parser.next();
 | |
|                             }
 | |
|                             key2 = key;
 | |
|                         } else {
 | |
|                             throw new NullPointerException("Keymaker for " + name + " not found");
 | |
|                         }
 | |
|                     } else if (name.equalsIgnoreCase("CustomAttribute")) {
 | |
|                         if (key2 != null && key2.mCustomConstraints != null) {
 | |
|                             ConstraintAttribute.parse(context, parser, key2.mCustomConstraints);
 | |
|                         }
 | |
|                     } else if (name.equalsIgnoreCase("CustomMethod") && key2 != null && key2.mCustomConstraints != null) {
 | |
|                         ConstraintAttribute.parse(context, parser, key2.mCustomConstraints);
 | |
|                     }
 | |
|                 } else if (eventType == 3 && ViewTransition.KEY_FRAME_SET_TAG.equals(parser.getName())) {
 | |
|                     return;
 | |
|                 }
 | |
|                 eventType = parser.next();
 | |
|             }
 | |
|         } catch (IOException e4) {
 | |
|             e4.printStackTrace();
 | |
|         } catch (XmlPullParserException e5) {
 | |
|             e5.printStackTrace();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void addAllFrames(MotionController motionController) {
 | |
|         ArrayList<Key> arrayList = this.mFramesMap.get(-1);
 | |
|         if (arrayList != null) {
 | |
|             motionController.addKeys(arrayList);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void addFrames(MotionController motionController) {
 | |
|         ArrayList<Key> arrayList = this.mFramesMap.get(Integer.valueOf(motionController.mId));
 | |
|         if (arrayList != null) {
 | |
|             motionController.addKeys(arrayList);
 | |
|         }
 | |
|         ArrayList<Key> arrayList2 = this.mFramesMap.get(-1);
 | |
|         if (arrayList2 != null) {
 | |
|             Iterator<Key> it = arrayList2.iterator();
 | |
|             while (it.hasNext()) {
 | |
|                 Key next = it.next();
 | |
|                 if (next.matches(((ConstraintLayout.LayoutParams) motionController.mView.getLayoutParams()).constraintTag)) {
 | |
|                     motionController.addKey(next);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static String name(int viewId, Context context) {
 | |
|         return context.getResources().getResourceEntryName(viewId);
 | |
|     }
 | |
| 
 | |
|     public Set<Integer> getKeys() {
 | |
|         return this.mFramesMap.keySet();
 | |
|     }
 | |
| 
 | |
|     public ArrayList<Key> getKeyFramesForView(int id) {
 | |
|         return this.mFramesMap.get(Integer.valueOf(id));
 | |
|     }
 | |
| }
 |