Files
rr3-apk/decompiled-community/sources/androidx/appcompat/widget/ThemeUtils.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

99 lines
4.0 KiB
Java

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.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.core.graphics.ColorUtils;
@RestrictTo({RestrictTo.Scope.LIBRARY})
/* 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];
@NonNull
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(@NonNull 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();
}
}
@Nullable
public static ColorStateList getThemeAttrColorStateList(@NonNull 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(@NonNull 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;
}
public static int getThemeAttrColor(@NonNull Context context, int i, float f) {
return ColorUtils.setAlphaComponent(getThemeAttrColor(context, i), Math.round(Color.alpha(r0) * f));
}
public static void checkAppCompatTheme(@NonNull View view, @NonNull 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() {
}
}