ADD week 5
This commit is contained in:
		| @@ -0,0 +1,92 @@ | ||||
| package androidx.appcompat.widget; | ||||
|  | ||||
| import android.R; | ||||
| import android.content.Context; | ||||
| import android.content.res.ColorStateList; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.Color; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.util.TypedValue; | ||||
| import android.view.View; | ||||
| import androidx.core.graphics.ColorUtils; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ThemeUtils { | ||||
|     private static final String TAG = "ThemeUtils"; | ||||
|     private static final ThreadLocal<TypedValue> TL_TYPED_VALUE = new ThreadLocal<>(); | ||||
|     static final int[] DISABLED_STATE_SET = {-16842910}; | ||||
|     static final int[] FOCUSED_STATE_SET = {R.attr.state_focused}; | ||||
|     static final int[] ACTIVATED_STATE_SET = {R.attr.state_activated}; | ||||
|     static final int[] PRESSED_STATE_SET = {R.attr.state_pressed}; | ||||
|     static final int[] CHECKED_STATE_SET = {R.attr.state_checked}; | ||||
|     static final int[] SELECTED_STATE_SET = {R.attr.state_selected}; | ||||
|     static final int[] NOT_PRESSED_OR_FOCUSED_STATE_SET = {-16842919, -16842908}; | ||||
|     static final int[] EMPTY_STATE_SET = new int[0]; | ||||
|     private static final int[] TEMP_ARRAY = new int[1]; | ||||
|  | ||||
|     public static ColorStateList createDisabledStateList(int i, int i2) { | ||||
|         return new ColorStateList(new int[][]{DISABLED_STATE_SET, EMPTY_STATE_SET}, new int[]{i2, i}); | ||||
|     } | ||||
|  | ||||
|     public static int getThemeAttrColor(Context context, int i) { | ||||
|         int[] iArr = TEMP_ARRAY; | ||||
|         iArr[0] = i; | ||||
|         TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, (AttributeSet) null, iArr); | ||||
|         try { | ||||
|             return obtainStyledAttributes.getColor(0, 0); | ||||
|         } finally { | ||||
|             obtainStyledAttributes.recycle(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static ColorStateList getThemeAttrColorStateList(Context context, int i) { | ||||
|         int[] iArr = TEMP_ARRAY; | ||||
|         iArr[0] = i; | ||||
|         TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, (AttributeSet) null, iArr); | ||||
|         try { | ||||
|             return obtainStyledAttributes.getColorStateList(0); | ||||
|         } finally { | ||||
|             obtainStyledAttributes.recycle(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static int getDisabledThemeAttrColor(Context context, int i) { | ||||
|         ColorStateList themeAttrColorStateList = getThemeAttrColorStateList(context, i); | ||||
|         if (themeAttrColorStateList != null && themeAttrColorStateList.isStateful()) { | ||||
|             return themeAttrColorStateList.getColorForState(DISABLED_STATE_SET, themeAttrColorStateList.getDefaultColor()); | ||||
|         } | ||||
|         TypedValue typedValue = getTypedValue(); | ||||
|         context.getTheme().resolveAttribute(R.attr.disabledAlpha, typedValue, true); | ||||
|         return getThemeAttrColor(context, i, typedValue.getFloat()); | ||||
|     } | ||||
|  | ||||
|     private static TypedValue getTypedValue() { | ||||
|         ThreadLocal<TypedValue> threadLocal = TL_TYPED_VALUE; | ||||
|         TypedValue typedValue = threadLocal.get(); | ||||
|         if (typedValue != null) { | ||||
|             return typedValue; | ||||
|         } | ||||
|         TypedValue typedValue2 = new TypedValue(); | ||||
|         threadLocal.set(typedValue2); | ||||
|         return typedValue2; | ||||
|     } | ||||
|  | ||||
|     static int getThemeAttrColor(Context context, int i, float f) { | ||||
|         return ColorUtils.setAlphaComponent(getThemeAttrColor(context, i), Math.round(Color.alpha(r0) * f)); | ||||
|     } | ||||
|  | ||||
|     public static void checkAppCompatTheme(View view, Context context) { | ||||
|         TypedArray obtainStyledAttributes = context.obtainStyledAttributes(androidx.appcompat.R.styleable.AppCompatTheme); | ||||
|         try { | ||||
|             if (!obtainStyledAttributes.hasValue(androidx.appcompat.R.styleable.AppCompatTheme_windowActionBar)) { | ||||
|                 Log.e(TAG, "View " + view.getClass() + " is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant)."); | ||||
|             } | ||||
|         } finally { | ||||
|             obtainStyledAttributes.recycle(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private ThemeUtils() { | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user