ADD week 5
This commit is contained in:
		
							
								
								
									
										210
									
								
								02-Easy5/E5/sources/androidx/appcompat/widget/DrawableUtils.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								02-Easy5/E5/sources/androidx/appcompat/widget/DrawableUtils.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | ||||
| package androidx.appcompat.widget; | ||||
|  | ||||
| import android.R; | ||||
| import android.graphics.Insets; | ||||
| import android.graphics.PorterDuff; | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.os.Build; | ||||
| import androidx.core.graphics.drawable.DrawableCompat; | ||||
| import java.lang.reflect.Field; | ||||
| import java.lang.reflect.InvocationTargetException; | ||||
| import java.lang.reflect.Method; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class DrawableUtils { | ||||
|     private static final int[] CHECKED_STATE_SET = {R.attr.state_checked}; | ||||
|     private static final int[] EMPTY_STATE_SET = new int[0]; | ||||
|     public static final Rect INSETS_NONE = new Rect(); | ||||
|  | ||||
|     public static boolean canSafelyMutateDrawable(Drawable drawable) { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     private DrawableUtils() { | ||||
|     } | ||||
|  | ||||
|     public static Rect getOpticalBounds(Drawable drawable) { | ||||
|         int i; | ||||
|         int i2; | ||||
|         int i3; | ||||
|         int i4; | ||||
|         if (Build.VERSION.SDK_INT >= 29) { | ||||
|             Insets opticalInsets = Api29Impl.getOpticalInsets(drawable); | ||||
|             i = opticalInsets.left; | ||||
|             i2 = opticalInsets.top; | ||||
|             i3 = opticalInsets.right; | ||||
|             i4 = opticalInsets.bottom; | ||||
|             return new Rect(i, i2, i3, i4); | ||||
|         } | ||||
|         return Api18Impl.getOpticalInsets(DrawableCompat.unwrap(drawable)); | ||||
|     } | ||||
|  | ||||
|     static void fixDrawable(Drawable drawable) { | ||||
|         String name = drawable.getClass().getName(); | ||||
|         if (Build.VERSION.SDK_INT == 21 && "android.graphics.drawable.VectorDrawable".equals(name)) { | ||||
|             forceDrawableStateChange(drawable); | ||||
|         } else { | ||||
|             if (Build.VERSION.SDK_INT < 29 || Build.VERSION.SDK_INT >= 31 || !"android.graphics.drawable.ColorStateListDrawable".equals(name)) { | ||||
|                 return; | ||||
|             } | ||||
|             forceDrawableStateChange(drawable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void forceDrawableStateChange(Drawable drawable) { | ||||
|         int[] state = drawable.getState(); | ||||
|         if (state == null || state.length == 0) { | ||||
|             drawable.setState(CHECKED_STATE_SET); | ||||
|         } else { | ||||
|             drawable.setState(EMPTY_STATE_SET); | ||||
|         } | ||||
|         drawable.setState(state); | ||||
|     } | ||||
|  | ||||
|     public static PorterDuff.Mode parseTintMode(int i, PorterDuff.Mode mode) { | ||||
|         if (i == 3) { | ||||
|             return PorterDuff.Mode.SRC_OVER; | ||||
|         } | ||||
|         if (i == 5) { | ||||
|             return PorterDuff.Mode.SRC_IN; | ||||
|         } | ||||
|         if (i == 9) { | ||||
|             return PorterDuff.Mode.SRC_ATOP; | ||||
|         } | ||||
|         switch (i) { | ||||
|             case 14: | ||||
|                 return PorterDuff.Mode.MULTIPLY; | ||||
|             case 15: | ||||
|                 return PorterDuff.Mode.SCREEN; | ||||
|             case 16: | ||||
|                 return PorterDuff.Mode.ADD; | ||||
|             default: | ||||
|                 return mode; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api18Impl { | ||||
|         private static final Field sBottom; | ||||
|         private static final Method sGetOpticalInsets; | ||||
|         private static final Field sLeft; | ||||
|         private static final boolean sReflectionSuccessful; | ||||
|         private static final Field sRight; | ||||
|         private static final Field sTop; | ||||
|  | ||||
|         /* JADX WARN: Removed duplicated region for block: B:14:0x0057  */ | ||||
|         /* JADX WARN: Removed duplicated region for block: B:17:0x0064  */ | ||||
|         static { | ||||
|             /* | ||||
|                 r0 = 1 | ||||
|                 r1 = 0 | ||||
|                 r2 = 0 | ||||
|                 java.lang.String r3 = "android.graphics.Insets" | ||||
|                 java.lang.Class r3 = java.lang.Class.forName(r3)     // Catch: java.lang.NoSuchFieldException -> L44 java.lang.ClassNotFoundException -> L49 java.lang.NoSuchMethodException -> L4e | ||||
|                 java.lang.Class<android.graphics.drawable.Drawable> r4 = android.graphics.drawable.Drawable.class | ||||
|                 java.lang.String r5 = "getOpticalInsets" | ||||
|                 java.lang.Class[] r6 = new java.lang.Class[r2]     // Catch: java.lang.NoSuchFieldException -> L44 java.lang.ClassNotFoundException -> L49 java.lang.NoSuchMethodException -> L4e | ||||
|                 java.lang.reflect.Method r4 = r4.getMethod(r5, r6)     // Catch: java.lang.NoSuchFieldException -> L44 java.lang.ClassNotFoundException -> L49 java.lang.NoSuchMethodException -> L4e | ||||
|                 java.lang.String r5 = "left" | ||||
|                 java.lang.reflect.Field r5 = r3.getField(r5)     // Catch: java.lang.NoSuchFieldException -> L3b java.lang.ClassNotFoundException -> L3e java.lang.NoSuchMethodException -> L41 | ||||
|                 java.lang.String r6 = "top" | ||||
|                 java.lang.reflect.Field r6 = r3.getField(r6)     // Catch: java.lang.NoSuchFieldException -> L32 java.lang.ClassNotFoundException -> L35 java.lang.NoSuchMethodException -> L38 | ||||
|                 java.lang.String r7 = "right" | ||||
|                 java.lang.reflect.Field r7 = r3.getField(r7)     // Catch: java.lang.Throwable -> L2f | ||||
|                 java.lang.String r8 = "bottom" | ||||
|                 java.lang.reflect.Field r3 = r3.getField(r8)     // Catch: java.lang.Throwable -> L2d | ||||
|                 r8 = 1 | ||||
|                 goto L55 | ||||
|             L2d: | ||||
|                 goto L53 | ||||
|             L2f: | ||||
|                 r7 = r1 | ||||
|                 goto L53 | ||||
|             L32: | ||||
|                 r6 = r1 | ||||
|                 goto L52 | ||||
|             L35: | ||||
|                 r6 = r1 | ||||
|                 goto L52 | ||||
|             L38: | ||||
|                 r6 = r1 | ||||
|                 goto L52 | ||||
|             L3b: | ||||
|                 r5 = r1 | ||||
|                 goto L47 | ||||
|             L3e: | ||||
|                 r5 = r1 | ||||
|                 goto L4c | ||||
|             L41: | ||||
|                 r5 = r1 | ||||
|                 goto L51 | ||||
|             L44: | ||||
|                 r4 = r1 | ||||
|                 r5 = r4 | ||||
|             L47: | ||||
|                 r6 = r5 | ||||
|                 goto L52 | ||||
|             L49: | ||||
|                 r4 = r1 | ||||
|                 r5 = r4 | ||||
|             L4c: | ||||
|                 r6 = r5 | ||||
|                 goto L52 | ||||
|             L4e: | ||||
|                 r4 = r1 | ||||
|                 r5 = r4 | ||||
|             L51: | ||||
|                 r6 = r5 | ||||
|             L52: | ||||
|                 r7 = r6 | ||||
|             L53: | ||||
|                 r3 = r1 | ||||
|                 r8 = 0 | ||||
|             L55: | ||||
|                 if (r8 == 0) goto L64 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sGetOpticalInsets = r4 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sLeft = r5 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sTop = r6 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sRight = r7 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sBottom = r3 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sReflectionSuccessful = r0 | ||||
|                 goto L70 | ||||
|             L64: | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sGetOpticalInsets = r1 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sLeft = r1 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sTop = r1 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sRight = r1 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sBottom = r1 | ||||
|                 androidx.appcompat.widget.DrawableUtils.Api18Impl.sReflectionSuccessful = r2 | ||||
|             L70: | ||||
|                 return | ||||
|             */ | ||||
|             throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.widget.DrawableUtils.Api18Impl.<clinit>():void"); | ||||
|         } | ||||
|  | ||||
|         private Api18Impl() { | ||||
|         } | ||||
|  | ||||
|         static Rect getOpticalInsets(Drawable drawable) { | ||||
|             if (Build.VERSION.SDK_INT < 29 && sReflectionSuccessful) { | ||||
|                 try { | ||||
|                     Object invoke = sGetOpticalInsets.invoke(drawable, new Object[0]); | ||||
|                     if (invoke != null) { | ||||
|                         return new Rect(sLeft.getInt(invoke), sTop.getInt(invoke), sRight.getInt(invoke), sBottom.getInt(invoke)); | ||||
|                     } | ||||
|                 } catch (IllegalAccessException | InvocationTargetException unused) { | ||||
|                 } | ||||
|             } | ||||
|             return DrawableUtils.INSETS_NONE; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api29Impl { | ||||
|         private Api29Impl() { | ||||
|         } | ||||
|  | ||||
|         static Insets getOpticalInsets(Drawable drawable) { | ||||
|             return drawable.getOpticalInsets(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user