ADD week 5
This commit is contained in:
		
							
								
								
									
										235
									
								
								02-Easy5/E5/sources/androidx/transition/TransitionInflater.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								02-Easy5/E5/sources/androidx/transition/TransitionInflater.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,235 @@ | ||||
| package androidx.transition; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.Resources; | ||||
| import android.content.res.TypedArray; | ||||
| import android.content.res.XmlResourceParser; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Xml; | ||||
| import android.view.InflateException; | ||||
| import android.view.ViewGroup; | ||||
| import androidx.collection.ArrayMap; | ||||
| import androidx.constraintlayout.core.motion.utils.TypedValues; | ||||
| import androidx.core.content.res.TypedArrayUtils; | ||||
| import java.io.IOException; | ||||
| import java.lang.reflect.Constructor; | ||||
| import org.xmlpull.v1.XmlPullParser; | ||||
| import org.xmlpull.v1.XmlPullParserException; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class TransitionInflater { | ||||
|     private final Context mContext; | ||||
|     private static final Class<?>[] CONSTRUCTOR_SIGNATURE = {Context.class, AttributeSet.class}; | ||||
|     private static final ArrayMap<String, Constructor<?>> CONSTRUCTORS = new ArrayMap<>(); | ||||
|  | ||||
|     private TransitionInflater(Context context) { | ||||
|         this.mContext = context; | ||||
|     } | ||||
|  | ||||
|     public static TransitionInflater from(Context context) { | ||||
|         return new TransitionInflater(context); | ||||
|     } | ||||
|  | ||||
|     public Transition inflateTransition(int i) { | ||||
|         XmlResourceParser xml = this.mContext.getResources().getXml(i); | ||||
|         try { | ||||
|             try { | ||||
|                 return createTransitionFromXml(xml, Xml.asAttributeSet(xml), null); | ||||
|             } catch (IOException e) { | ||||
|                 throw new InflateException(xml.getPositionDescription() + ": " + e.getMessage(), e); | ||||
|             } catch (XmlPullParserException e2) { | ||||
|                 throw new InflateException(e2.getMessage(), e2); | ||||
|             } | ||||
|         } finally { | ||||
|             xml.close(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public TransitionManager inflateTransitionManager(int i, ViewGroup viewGroup) { | ||||
|         XmlResourceParser xml = this.mContext.getResources().getXml(i); | ||||
|         try { | ||||
|             try { | ||||
|                 return createTransitionManagerFromXml(xml, Xml.asAttributeSet(xml), viewGroup); | ||||
|             } catch (IOException e) { | ||||
|                 InflateException inflateException = new InflateException(xml.getPositionDescription() + ": " + e.getMessage()); | ||||
|                 inflateException.initCause(e); | ||||
|                 throw inflateException; | ||||
|             } catch (XmlPullParserException e2) { | ||||
|                 InflateException inflateException2 = new InflateException(e2.getMessage()); | ||||
|                 inflateException2.initCause(e2); | ||||
|                 throw inflateException2; | ||||
|             } | ||||
|         } finally { | ||||
|             xml.close(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Code restructure failed: missing block: B:11:0x017a, code lost: | ||||
|      | ||||
|         return r3; | ||||
|      */ | ||||
|     /* | ||||
|         Code decompiled incorrectly, please refer to instructions dump. | ||||
|         To view partially-correct add '--show-bad-code' argument | ||||
|     */ | ||||
|     private androidx.transition.Transition createTransitionFromXml(org.xmlpull.v1.XmlPullParser r8, android.util.AttributeSet r9, androidx.transition.Transition r10) throws org.xmlpull.v1.XmlPullParserException, java.io.IOException { | ||||
|         /* | ||||
|             Method dump skipped, instructions count: 379 | ||||
|             To view this dump add '--comments-level debug' option | ||||
|         */ | ||||
|         throw new UnsupportedOperationException("Method not decompiled: androidx.transition.TransitionInflater.createTransitionFromXml(org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, androidx.transition.Transition):androidx.transition.Transition"); | ||||
|     } | ||||
|  | ||||
|     private Object createCustom(AttributeSet attributeSet, Class<?> cls, String str) { | ||||
|         Object newInstance; | ||||
|         Class<? extends U> asSubclass; | ||||
|         String attributeValue = attributeSet.getAttributeValue(null, "class"); | ||||
|         if (attributeValue == null) { | ||||
|             throw new InflateException(str + " tag must have a 'class' attribute"); | ||||
|         } | ||||
|         try { | ||||
|             ArrayMap<String, Constructor<?>> arrayMap = CONSTRUCTORS; | ||||
|             synchronized (arrayMap) { | ||||
|                 Constructor<?> constructor = arrayMap.get(attributeValue); | ||||
|                 if (constructor == null && (asSubclass = Class.forName(attributeValue, false, this.mContext.getClassLoader()).asSubclass(cls)) != 0) { | ||||
|                     constructor = asSubclass.getConstructor(CONSTRUCTOR_SIGNATURE); | ||||
|                     constructor.setAccessible(true); | ||||
|                     arrayMap.put(attributeValue, constructor); | ||||
|                 } | ||||
|                 newInstance = constructor.newInstance(this.mContext, attributeSet); | ||||
|             } | ||||
|             return newInstance; | ||||
|         } catch (Exception e) { | ||||
|             throw new InflateException("Could not instantiate " + cls + " class " + attributeValue, e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void getTargetIds(XmlPullParser xmlPullParser, AttributeSet attributeSet, Transition transition) throws XmlPullParserException, IOException { | ||||
|         int depth = xmlPullParser.getDepth(); | ||||
|         while (true) { | ||||
|             int next = xmlPullParser.next(); | ||||
|             if ((next == 3 && xmlPullParser.getDepth() <= depth) || next == 1) { | ||||
|                 return; | ||||
|             } | ||||
|             if (next == 2) { | ||||
|                 if (xmlPullParser.getName().equals(TypedValues.AttributesType.S_TARGET)) { | ||||
|                     TypedArray obtainStyledAttributes = this.mContext.obtainStyledAttributes(attributeSet, Styleable.TRANSITION_TARGET); | ||||
|                     int namedResourceId = TypedArrayUtils.getNamedResourceId(obtainStyledAttributes, xmlPullParser, "targetId", 1, 0); | ||||
|                     if (namedResourceId != 0) { | ||||
|                         transition.addTarget(namedResourceId); | ||||
|                     } else { | ||||
|                         int namedResourceId2 = TypedArrayUtils.getNamedResourceId(obtainStyledAttributes, xmlPullParser, "excludeId", 2, 0); | ||||
|                         if (namedResourceId2 != 0) { | ||||
|                             transition.excludeTarget(namedResourceId2, true); | ||||
|                         } else { | ||||
|                             String namedString = TypedArrayUtils.getNamedString(obtainStyledAttributes, xmlPullParser, "targetName", 4); | ||||
|                             if (namedString != null) { | ||||
|                                 transition.addTarget(namedString); | ||||
|                             } else { | ||||
|                                 String namedString2 = TypedArrayUtils.getNamedString(obtainStyledAttributes, xmlPullParser, "excludeName", 5); | ||||
|                                 if (namedString2 != null) { | ||||
|                                     transition.excludeTarget(namedString2, true); | ||||
|                                 } else { | ||||
|                                     String namedString3 = TypedArrayUtils.getNamedString(obtainStyledAttributes, xmlPullParser, "excludeClass", 3); | ||||
|                                     if (namedString3 != null) { | ||||
|                                         try { | ||||
|                                             transition.excludeTarget(Class.forName(namedString3), true); | ||||
|                                         } catch (ClassNotFoundException e) { | ||||
|                                             obtainStyledAttributes.recycle(); | ||||
|                                             throw new RuntimeException("Could not create " + namedString3, e); | ||||
|                                         } | ||||
|                                     } else { | ||||
|                                         String namedString4 = TypedArrayUtils.getNamedString(obtainStyledAttributes, xmlPullParser, "targetClass", 0); | ||||
|                                         if (namedString4 != null) { | ||||
|                                             transition.addTarget(Class.forName(namedString4)); | ||||
|                                         } | ||||
|                                     } | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     obtainStyledAttributes.recycle(); | ||||
|                 } else { | ||||
|                     throw new RuntimeException("Unknown scene name: " + xmlPullParser.getName()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Code restructure failed: missing block: B:7:0x0051, code lost: | ||||
|      | ||||
|         return r1; | ||||
|      */ | ||||
|     /* | ||||
|         Code decompiled incorrectly, please refer to instructions dump. | ||||
|         To view partially-correct add '--show-bad-code' argument | ||||
|     */ | ||||
|     private androidx.transition.TransitionManager createTransitionManagerFromXml(org.xmlpull.v1.XmlPullParser r5, android.util.AttributeSet r6, android.view.ViewGroup r7) throws org.xmlpull.v1.XmlPullParserException, java.io.IOException { | ||||
|         /* | ||||
|             r4 = this; | ||||
|             int r0 = r5.getDepth() | ||||
|             r1 = 0 | ||||
|         L5: | ||||
|             int r2 = r5.next() | ||||
|             r3 = 3 | ||||
|             if (r2 != r3) goto L12 | ||||
|             int r3 = r5.getDepth() | ||||
|             if (r3 <= r0) goto L51 | ||||
|         L12: | ||||
|             r3 = 1 | ||||
|             if (r2 == r3) goto L51 | ||||
|             r3 = 2 | ||||
|             if (r2 == r3) goto L19 | ||||
|             goto L5 | ||||
|         L19: | ||||
|             java.lang.String r2 = r5.getName() | ||||
|             java.lang.String r3 = "transitionManager" | ||||
|             boolean r3 = r2.equals(r3) | ||||
|             if (r3 == 0) goto L2b | ||||
|             androidx.transition.TransitionManager r1 = new androidx.transition.TransitionManager | ||||
|             r1.<init>() | ||||
|             goto L5 | ||||
|         L2b: | ||||
|             java.lang.String r3 = "transition" | ||||
|             boolean r2 = r2.equals(r3) | ||||
|             if (r2 == 0) goto L39 | ||||
|             if (r1 == 0) goto L39 | ||||
|             r4.loadTransition(r6, r5, r7, r1) | ||||
|             goto L5 | ||||
|         L39: | ||||
|             java.lang.RuntimeException r6 = new java.lang.RuntimeException | ||||
|             java.lang.StringBuilder r7 = new java.lang.StringBuilder | ||||
|             java.lang.String r0 = "Unknown scene name: " | ||||
|             r7.<init>(r0) | ||||
|             java.lang.String r5 = r5.getName() | ||||
|             r7.append(r5) | ||||
|             java.lang.String r5 = r7.toString() | ||||
|             r6.<init>(r5) | ||||
|             throw r6 | ||||
|         L51: | ||||
|             return r1 | ||||
|         */ | ||||
|         throw new UnsupportedOperationException("Method not decompiled: androidx.transition.TransitionInflater.createTransitionManagerFromXml(org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.view.ViewGroup):androidx.transition.TransitionManager"); | ||||
|     } | ||||
|  | ||||
|     private void loadTransition(AttributeSet attributeSet, XmlPullParser xmlPullParser, ViewGroup viewGroup, TransitionManager transitionManager) throws Resources.NotFoundException { | ||||
|         Transition inflateTransition; | ||||
|         TypedArray obtainStyledAttributes = this.mContext.obtainStyledAttributes(attributeSet, Styleable.TRANSITION_MANAGER); | ||||
|         int namedResourceId = TypedArrayUtils.getNamedResourceId(obtainStyledAttributes, xmlPullParser, "transition", 2, -1); | ||||
|         int namedResourceId2 = TypedArrayUtils.getNamedResourceId(obtainStyledAttributes, xmlPullParser, "fromScene", 0, -1); | ||||
|         Scene sceneForLayout = namedResourceId2 < 0 ? null : Scene.getSceneForLayout(viewGroup, namedResourceId2, this.mContext); | ||||
|         int namedResourceId3 = TypedArrayUtils.getNamedResourceId(obtainStyledAttributes, xmlPullParser, "toScene", 1, -1); | ||||
|         Scene sceneForLayout2 = namedResourceId3 >= 0 ? Scene.getSceneForLayout(viewGroup, namedResourceId3, this.mContext) : null; | ||||
|         if (namedResourceId >= 0 && (inflateTransition = inflateTransition(namedResourceId)) != null) { | ||||
|             if (sceneForLayout2 == null) { | ||||
|                 throw new RuntimeException("No toScene for transition ID " + namedResourceId); | ||||
|             } | ||||
|             if (sceneForLayout == null) { | ||||
|                 transitionManager.setTransition(sceneForLayout2, inflateTransition); | ||||
|             } else { | ||||
|                 transitionManager.setTransition(sceneForLayout, sceneForLayout2, inflateTransition); | ||||
|             } | ||||
|         } | ||||
|         obtainStyledAttributes.recycle(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user