- 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
354 lines
23 KiB
Java
354 lines
23 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.ColorStateList;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.Canvas;
|
|
import android.graphics.PorterDuff;
|
|
import android.graphics.PorterDuffColorFilter;
|
|
import android.graphics.Shader;
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.graphics.drawable.LayerDrawable;
|
|
import androidx.annotation.ColorInt;
|
|
import androidx.annotation.DimenRes;
|
|
import androidx.annotation.DrawableRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import androidx.appcompat.widget.ResourceManagerInternal;
|
|
import androidx.core.graphics.ColorUtils;
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
/* loaded from: classes.dex */
|
|
public final class AppCompatDrawableManager {
|
|
private static final boolean DEBUG = false;
|
|
private static final PorterDuff.Mode DEFAULT_MODE = PorterDuff.Mode.SRC_IN;
|
|
private static AppCompatDrawableManager INSTANCE = null;
|
|
private static final String TAG = "AppCompatDrawableManag";
|
|
private ResourceManagerInternal mResourceManager;
|
|
|
|
public static synchronized void preload() {
|
|
synchronized (AppCompatDrawableManager.class) {
|
|
if (INSTANCE == null) {
|
|
AppCompatDrawableManager appCompatDrawableManager = new AppCompatDrawableManager();
|
|
INSTANCE = appCompatDrawableManager;
|
|
appCompatDrawableManager.mResourceManager = ResourceManagerInternal.get();
|
|
INSTANCE.mResourceManager.setHooks(new ResourceManagerInternal.ResourceManagerHooks() { // from class: androidx.appcompat.widget.AppCompatDrawableManager.1
|
|
private final int[] COLORFILTER_TINT_COLOR_CONTROL_NORMAL = {R.drawable.abc_textfield_search_default_mtrl_alpha, R.drawable.abc_textfield_default_mtrl_alpha, R.drawable.abc_ab_share_pack_mtrl_alpha};
|
|
private final int[] TINT_COLOR_CONTROL_NORMAL = {R.drawable.abc_ic_commit_search_api_mtrl_alpha, R.drawable.abc_seekbar_tick_mark_material, R.drawable.abc_ic_menu_share_mtrl_alpha, R.drawable.abc_ic_menu_copy_mtrl_am_alpha, R.drawable.abc_ic_menu_cut_mtrl_alpha, R.drawable.abc_ic_menu_selectall_mtrl_alpha, R.drawable.abc_ic_menu_paste_mtrl_am_alpha};
|
|
private final int[] COLORFILTER_COLOR_CONTROL_ACTIVATED = {R.drawable.abc_textfield_activated_mtrl_alpha, R.drawable.abc_textfield_search_activated_mtrl_alpha, R.drawable.abc_cab_background_top_mtrl_alpha, R.drawable.abc_text_cursor_material, R.drawable.abc_text_select_handle_left_mtrl, R.drawable.abc_text_select_handle_middle_mtrl, R.drawable.abc_text_select_handle_right_mtrl};
|
|
private final int[] COLORFILTER_COLOR_BACKGROUND_MULTIPLY = {R.drawable.abc_popup_background_mtrl_mult, R.drawable.abc_cab_background_internal_bg, R.drawable.abc_menu_hardkey_panel_mtrl_mult};
|
|
private final int[] TINT_COLOR_CONTROL_STATE_LIST = {R.drawable.abc_tab_indicator_material, R.drawable.abc_textfield_search_material};
|
|
private final int[] TINT_CHECKABLE_BUTTON_LIST = {R.drawable.abc_btn_check_material, R.drawable.abc_btn_radio_material, R.drawable.abc_btn_check_material_anim, R.drawable.abc_btn_radio_material_anim};
|
|
|
|
private ColorStateList createDefaultButtonColorStateList(@NonNull Context context) {
|
|
return createButtonColorStateList(context, ThemeUtils.getThemeAttrColor(context, R.attr.colorButtonNormal));
|
|
}
|
|
|
|
private ColorStateList createBorderlessButtonColorStateList(@NonNull Context context) {
|
|
return createButtonColorStateList(context, 0);
|
|
}
|
|
|
|
private ColorStateList createColoredButtonColorStateList(@NonNull Context context) {
|
|
return createButtonColorStateList(context, ThemeUtils.getThemeAttrColor(context, R.attr.colorAccent));
|
|
}
|
|
|
|
private ColorStateList createButtonColorStateList(@NonNull Context context, @ColorInt int i) {
|
|
int themeAttrColor = ThemeUtils.getThemeAttrColor(context, R.attr.colorControlHighlight);
|
|
return new ColorStateList(new int[][]{ThemeUtils.DISABLED_STATE_SET, ThemeUtils.PRESSED_STATE_SET, ThemeUtils.FOCUSED_STATE_SET, ThemeUtils.EMPTY_STATE_SET}, new int[]{ThemeUtils.getDisabledThemeAttrColor(context, R.attr.colorButtonNormal), ColorUtils.compositeColors(themeAttrColor, i), ColorUtils.compositeColors(themeAttrColor, i), i});
|
|
}
|
|
|
|
private ColorStateList createSwitchThumbColorStateList(Context context) {
|
|
int[][] iArr = new int[3][];
|
|
int[] iArr2 = new int[3];
|
|
ColorStateList themeAttrColorStateList = ThemeUtils.getThemeAttrColorStateList(context, R.attr.colorSwitchThumbNormal);
|
|
if (themeAttrColorStateList != null && themeAttrColorStateList.isStateful()) {
|
|
int[] iArr3 = ThemeUtils.DISABLED_STATE_SET;
|
|
iArr[0] = iArr3;
|
|
iArr2[0] = themeAttrColorStateList.getColorForState(iArr3, 0);
|
|
iArr[1] = ThemeUtils.CHECKED_STATE_SET;
|
|
iArr2[1] = ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated);
|
|
iArr[2] = ThemeUtils.EMPTY_STATE_SET;
|
|
iArr2[2] = themeAttrColorStateList.getDefaultColor();
|
|
} else {
|
|
iArr[0] = ThemeUtils.DISABLED_STATE_SET;
|
|
iArr2[0] = ThemeUtils.getDisabledThemeAttrColor(context, R.attr.colorSwitchThumbNormal);
|
|
iArr[1] = ThemeUtils.CHECKED_STATE_SET;
|
|
iArr2[1] = ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated);
|
|
iArr[2] = ThemeUtils.EMPTY_STATE_SET;
|
|
iArr2[2] = ThemeUtils.getThemeAttrColor(context, R.attr.colorSwitchThumbNormal);
|
|
}
|
|
return new ColorStateList(iArr, iArr2);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
|
|
public Drawable createDrawableFor(@NonNull ResourceManagerInternal resourceManagerInternal, @NonNull Context context, int i) {
|
|
if (i == R.drawable.abc_cab_background_top_material) {
|
|
return new LayerDrawable(new Drawable[]{resourceManagerInternal.getDrawable(context, R.drawable.abc_cab_background_internal_bg), resourceManagerInternal.getDrawable(context, R.drawable.abc_cab_background_top_mtrl_alpha)});
|
|
}
|
|
if (i == R.drawable.abc_ratingbar_material) {
|
|
return getRatingBarLayerDrawable(resourceManagerInternal, context, R.dimen.abc_star_big);
|
|
}
|
|
if (i == R.drawable.abc_ratingbar_indicator_material) {
|
|
return getRatingBarLayerDrawable(resourceManagerInternal, context, R.dimen.abc_star_medium);
|
|
}
|
|
if (i == R.drawable.abc_ratingbar_small_material) {
|
|
return getRatingBarLayerDrawable(resourceManagerInternal, context, R.dimen.abc_star_small);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private LayerDrawable getRatingBarLayerDrawable(@NonNull ResourceManagerInternal resourceManagerInternal, @NonNull Context context, @DimenRes int i) {
|
|
BitmapDrawable bitmapDrawable;
|
|
BitmapDrawable bitmapDrawable2;
|
|
BitmapDrawable bitmapDrawable3;
|
|
int dimensionPixelSize = context.getResources().getDimensionPixelSize(i);
|
|
Drawable drawable = resourceManagerInternal.getDrawable(context, R.drawable.abc_star_black_48dp);
|
|
Drawable drawable2 = resourceManagerInternal.getDrawable(context, R.drawable.abc_star_half_black_48dp);
|
|
if ((drawable instanceof BitmapDrawable) && drawable.getIntrinsicWidth() == dimensionPixelSize && drawable.getIntrinsicHeight() == dimensionPixelSize) {
|
|
bitmapDrawable = (BitmapDrawable) drawable;
|
|
bitmapDrawable2 = new BitmapDrawable(bitmapDrawable.getBitmap());
|
|
} else {
|
|
Bitmap createBitmap = Bitmap.createBitmap(dimensionPixelSize, dimensionPixelSize, Bitmap.Config.ARGB_8888);
|
|
Canvas canvas = new Canvas(createBitmap);
|
|
drawable.setBounds(0, 0, dimensionPixelSize, dimensionPixelSize);
|
|
drawable.draw(canvas);
|
|
bitmapDrawable = new BitmapDrawable(createBitmap);
|
|
bitmapDrawable2 = new BitmapDrawable(createBitmap);
|
|
}
|
|
bitmapDrawable2.setTileModeX(Shader.TileMode.REPEAT);
|
|
if ((drawable2 instanceof BitmapDrawable) && drawable2.getIntrinsicWidth() == dimensionPixelSize && drawable2.getIntrinsicHeight() == dimensionPixelSize) {
|
|
bitmapDrawable3 = (BitmapDrawable) drawable2;
|
|
} else {
|
|
Bitmap createBitmap2 = Bitmap.createBitmap(dimensionPixelSize, dimensionPixelSize, Bitmap.Config.ARGB_8888);
|
|
Canvas canvas2 = new Canvas(createBitmap2);
|
|
drawable2.setBounds(0, 0, dimensionPixelSize, dimensionPixelSize);
|
|
drawable2.draw(canvas2);
|
|
bitmapDrawable3 = new BitmapDrawable(createBitmap2);
|
|
}
|
|
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{bitmapDrawable, bitmapDrawable3, bitmapDrawable2});
|
|
layerDrawable.setId(0, android.R.id.background);
|
|
layerDrawable.setId(1, android.R.id.secondaryProgress);
|
|
layerDrawable.setId(2, android.R.id.progress);
|
|
return layerDrawable;
|
|
}
|
|
|
|
private void setPorterDuffColorFilter(Drawable drawable, int i, PorterDuff.Mode mode) {
|
|
Drawable mutate = drawable.mutate();
|
|
if (mode == null) {
|
|
mode = AppCompatDrawableManager.DEFAULT_MODE;
|
|
}
|
|
mutate.setColorFilter(AppCompatDrawableManager.getPorterDuffColorFilter(i, mode));
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
|
|
public boolean tintDrawable(@NonNull Context context, int i, @NonNull Drawable drawable) {
|
|
if (i == R.drawable.abc_seekbar_track_material) {
|
|
LayerDrawable layerDrawable = (LayerDrawable) drawable;
|
|
setPorterDuffColorFilter(layerDrawable.findDrawableByLayerId(android.R.id.background), ThemeUtils.getThemeAttrColor(context, R.attr.colorControlNormal), AppCompatDrawableManager.DEFAULT_MODE);
|
|
setPorterDuffColorFilter(layerDrawable.findDrawableByLayerId(android.R.id.secondaryProgress), ThemeUtils.getThemeAttrColor(context, R.attr.colorControlNormal), AppCompatDrawableManager.DEFAULT_MODE);
|
|
setPorterDuffColorFilter(layerDrawable.findDrawableByLayerId(android.R.id.progress), ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated), AppCompatDrawableManager.DEFAULT_MODE);
|
|
return true;
|
|
}
|
|
if (i != R.drawable.abc_ratingbar_material && i != R.drawable.abc_ratingbar_indicator_material && i != R.drawable.abc_ratingbar_small_material) {
|
|
return false;
|
|
}
|
|
LayerDrawable layerDrawable2 = (LayerDrawable) drawable;
|
|
setPorterDuffColorFilter(layerDrawable2.findDrawableByLayerId(android.R.id.background), ThemeUtils.getDisabledThemeAttrColor(context, R.attr.colorControlNormal), AppCompatDrawableManager.DEFAULT_MODE);
|
|
setPorterDuffColorFilter(layerDrawable2.findDrawableByLayerId(android.R.id.secondaryProgress), ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated), AppCompatDrawableManager.DEFAULT_MODE);
|
|
setPorterDuffColorFilter(layerDrawable2.findDrawableByLayerId(android.R.id.progress), ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated), AppCompatDrawableManager.DEFAULT_MODE);
|
|
return true;
|
|
}
|
|
|
|
private boolean arrayContains(int[] iArr, int i) {
|
|
for (int i2 : iArr) {
|
|
if (i2 == i) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
|
|
public ColorStateList getTintListForDrawableRes(@NonNull Context context, int i) {
|
|
if (i == R.drawable.abc_edit_text_material) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_edittext);
|
|
}
|
|
if (i == R.drawable.abc_switch_track_mtrl_alpha) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_switch_track);
|
|
}
|
|
if (i == R.drawable.abc_switch_thumb_material) {
|
|
return createSwitchThumbColorStateList(context);
|
|
}
|
|
if (i == R.drawable.abc_btn_default_mtrl_shape) {
|
|
return createDefaultButtonColorStateList(context);
|
|
}
|
|
if (i == R.drawable.abc_btn_borderless_material) {
|
|
return createBorderlessButtonColorStateList(context);
|
|
}
|
|
if (i == R.drawable.abc_btn_colored_material) {
|
|
return createColoredButtonColorStateList(context);
|
|
}
|
|
if (i == R.drawable.abc_spinner_mtrl_am_alpha || i == R.drawable.abc_spinner_textfield_background_material) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_spinner);
|
|
}
|
|
if (arrayContains(this.TINT_COLOR_CONTROL_NORMAL, i)) {
|
|
return ThemeUtils.getThemeAttrColorStateList(context, R.attr.colorControlNormal);
|
|
}
|
|
if (arrayContains(this.TINT_COLOR_CONTROL_STATE_LIST, i)) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_default);
|
|
}
|
|
if (arrayContains(this.TINT_CHECKABLE_BUTTON_LIST, i)) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_btn_checkable);
|
|
}
|
|
if (i == R.drawable.abc_seekbar_thumb_material) {
|
|
return AppCompatResources.getColorStateList(context, R.color.abc_tint_seek_thumb);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* JADX WARN: Removed duplicated region for block: B:12:0x0066 A[RETURN] */
|
|
/* JADX WARN: Removed duplicated region for block: B:7:0x0051 */
|
|
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public boolean tintDrawableUsingColorFilter(@androidx.annotation.NonNull android.content.Context r8, int r9, @androidx.annotation.NonNull android.graphics.drawable.Drawable r10) {
|
|
/*
|
|
r7 = this;
|
|
android.graphics.PorterDuff$Mode r0 = androidx.appcompat.widget.AppCompatDrawableManager.access$000()
|
|
int[] r1 = r7.COLORFILTER_TINT_COLOR_CONTROL_NORMAL
|
|
boolean r1 = r7.arrayContains(r1, r9)
|
|
r2 = 1
|
|
r3 = 0
|
|
r4 = -1
|
|
if (r1 == 0) goto L15
|
|
int r9 = androidx.appcompat.R.attr.colorControlNormal
|
|
L11:
|
|
r1 = r0
|
|
r5 = r2
|
|
L13:
|
|
r0 = r4
|
|
goto L4f
|
|
L15:
|
|
int[] r1 = r7.COLORFILTER_COLOR_CONTROL_ACTIVATED
|
|
boolean r1 = r7.arrayContains(r1, r9)
|
|
if (r1 == 0) goto L20
|
|
int r9 = androidx.appcompat.R.attr.colorControlActivated
|
|
goto L11
|
|
L20:
|
|
int[] r1 = r7.COLORFILTER_COLOR_BACKGROUND_MULTIPLY
|
|
boolean r1 = r7.arrayContains(r1, r9)
|
|
r5 = 16842801(0x1010031, float:2.3693695E-38)
|
|
if (r1 == 0) goto L32
|
|
android.graphics.PorterDuff$Mode r0 = android.graphics.PorterDuff.Mode.MULTIPLY
|
|
L2d:
|
|
r1 = r0
|
|
r0 = r4
|
|
r9 = r5
|
|
r5 = r2
|
|
goto L4f
|
|
L32:
|
|
int r1 = androidx.appcompat.R.drawable.abc_list_divider_mtrl_alpha
|
|
if (r9 != r1) goto L46
|
|
r9 = 1109603123(0x42233333, float:40.8)
|
|
int r9 = java.lang.Math.round(r9)
|
|
r1 = 16842800(0x1010030, float:2.3693693E-38)
|
|
r5 = r2
|
|
r6 = r0
|
|
r0 = r9
|
|
r9 = r1
|
|
r1 = r6
|
|
goto L4f
|
|
L46:
|
|
int r1 = androidx.appcompat.R.drawable.abc_dialog_material_background
|
|
if (r9 != r1) goto L4b
|
|
goto L2d
|
|
L4b:
|
|
r1 = r0
|
|
r9 = r3
|
|
r5 = r9
|
|
goto L13
|
|
L4f:
|
|
if (r5 == 0) goto L66
|
|
android.graphics.drawable.Drawable r10 = r10.mutate()
|
|
int r8 = androidx.appcompat.widget.ThemeUtils.getThemeAttrColor(r8, r9)
|
|
android.graphics.PorterDuffColorFilter r8 = androidx.appcompat.widget.AppCompatDrawableManager.getPorterDuffColorFilter(r8, r1)
|
|
r10.setColorFilter(r8)
|
|
if (r0 == r4) goto L65
|
|
r10.setAlpha(r0)
|
|
L65:
|
|
return r2
|
|
L66:
|
|
return r3
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.widget.AppCompatDrawableManager.AnonymousClass1.tintDrawableUsingColorFilter(android.content.Context, int, android.graphics.drawable.Drawable):boolean");
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
|
|
public PorterDuff.Mode getTintModeForDrawableRes(int i) {
|
|
if (i == R.drawable.abc_switch_thumb_material) {
|
|
return PorterDuff.Mode.MULTIPLY;
|
|
}
|
|
return null;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
public static synchronized AppCompatDrawableManager get() {
|
|
AppCompatDrawableManager appCompatDrawableManager;
|
|
synchronized (AppCompatDrawableManager.class) {
|
|
try {
|
|
if (INSTANCE == null) {
|
|
preload();
|
|
}
|
|
appCompatDrawableManager = INSTANCE;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return appCompatDrawableManager;
|
|
}
|
|
|
|
public synchronized Drawable getDrawable(@NonNull Context context, @DrawableRes int i) {
|
|
return this.mResourceManager.getDrawable(context, i);
|
|
}
|
|
|
|
public synchronized Drawable getDrawable(@NonNull Context context, @DrawableRes int i, boolean z) {
|
|
return this.mResourceManager.getDrawable(context, i, z);
|
|
}
|
|
|
|
public synchronized void onConfigurationChanged(@NonNull Context context) {
|
|
this.mResourceManager.onConfigurationChanged(context);
|
|
}
|
|
|
|
public synchronized Drawable onDrawableLoadedFromResources(@NonNull Context context, @NonNull VectorEnabledTintResources vectorEnabledTintResources, @DrawableRes int i) {
|
|
return this.mResourceManager.onDrawableLoadedFromResources(context, vectorEnabledTintResources, i);
|
|
}
|
|
|
|
public boolean tintDrawableUsingColorFilter(@NonNull Context context, @DrawableRes int i, @NonNull Drawable drawable) {
|
|
return this.mResourceManager.tintDrawableUsingColorFilter(context, i, drawable);
|
|
}
|
|
|
|
public synchronized ColorStateList getTintList(@NonNull Context context, @DrawableRes int i) {
|
|
return this.mResourceManager.getTintList(context, i);
|
|
}
|
|
|
|
public static void tintDrawable(Drawable drawable, TintInfo tintInfo, int[] iArr) {
|
|
ResourceManagerInternal.tintDrawable(drawable, tintInfo, iArr);
|
|
}
|
|
|
|
public static synchronized PorterDuffColorFilter getPorterDuffColorFilter(int i, PorterDuff.Mode mode) {
|
|
PorterDuffColorFilter porterDuffColorFilter;
|
|
synchronized (AppCompatDrawableManager.class) {
|
|
porterDuffColorFilter = ResourceManagerInternal.getPorterDuffColorFilter(i, mode);
|
|
}
|
|
return porterDuffColorFilter;
|
|
}
|
|
}
|