Rabbit-R1/android (non root)/java/sources/androidx/appcompat/widget/AppCompatDrawableManager.java
2024-05-21 17:08:36 -04:00

345 lines
22 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.appcompat.R;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.ResourceManagerInternal;
import androidx.core.graphics.ColorUtils;
/* 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(Context context) {
return createButtonColorStateList(context, ThemeUtils.getThemeAttrColor(context, R.attr.colorButtonNormal));
}
private ColorStateList createBorderlessButtonColorStateList(Context context) {
return createButtonColorStateList(context, 0);
}
private ColorStateList createColoredButtonColorStateList(Context context) {
return createButtonColorStateList(context, ThemeUtils.getThemeAttrColor(context, R.attr.colorAccent));
}
private ColorStateList createButtonColorStateList(Context context, 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(ResourceManagerInternal resourceManagerInternal, 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(ResourceManagerInternal resourceManagerInternal, Context context, 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) {
if (DrawableUtils.canSafelyMutateDrawable(drawable)) {
drawable = drawable.mutate();
}
if (mode == null) {
mode = AppCompatDrawableManager.DEFAULT_MODE;
}
drawable.setColorFilter(AppCompatDrawableManager.getPorterDuffColorFilter(i, mode));
}
@Override // androidx.appcompat.widget.ResourceManagerInternal.ResourceManagerHooks
public boolean tintDrawable(Context context, int i, 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(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:15:0x0066 A[RETURN] */
/* JADX WARN: Removed duplicated region for block: B:7:0x004b */
@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(android.content.Context r7, int r8, android.graphics.drawable.Drawable r9) {
/*
r6 = this;
android.graphics.PorterDuff$Mode r0 = androidx.appcompat.widget.AppCompatDrawableManager.access$000()
int[] r1 = r6.COLORFILTER_TINT_COLOR_CONTROL_NORMAL
boolean r1 = r6.arrayContains(r1, r8)
r2 = 1
r3 = 0
r4 = -1
if (r1 == 0) goto L14
int r6 = androidx.appcompat.R.attr.colorControlNormal
L11:
r1 = r2
L12:
r8 = r4
goto L49
L14:
int[] r1 = r6.COLORFILTER_COLOR_CONTROL_ACTIVATED
boolean r1 = r6.arrayContains(r1, r8)
if (r1 == 0) goto L1f
int r6 = androidx.appcompat.R.attr.colorControlActivated
goto L11
L1f:
int[] r1 = r6.COLORFILTER_COLOR_BACKGROUND_MULTIPLY
boolean r6 = r6.arrayContains(r1, r8)
r1 = 16842801(0x1010031, float:2.3693695E-38)
if (r6 == 0) goto L2e
android.graphics.PorterDuff$Mode r0 = android.graphics.PorterDuff.Mode.MULTIPLY
L2c:
r6 = r1
goto L11
L2e:
int r6 = androidx.appcompat.R.drawable.abc_list_divider_mtrl_alpha
if (r8 != r6) goto L41
r6 = 1109603123(0x42233333, float:40.8)
int r6 = java.lang.Math.round(r6)
r8 = 16842800(0x1010030, float:2.3693693E-38)
r1 = r2
r5 = r8
r8 = r6
r6 = r5
goto L49
L41:
int r6 = androidx.appcompat.R.drawable.abc_dialog_material_background
if (r8 != r6) goto L46
goto L2c
L46:
r6 = r3
r1 = r6
goto L12
L49:
if (r1 == 0) goto L66
boolean r1 = androidx.appcompat.widget.DrawableUtils.canSafelyMutateDrawable(r9)
if (r1 == 0) goto L55
android.graphics.drawable.Drawable r9 = r9.mutate()
L55:
int r6 = androidx.appcompat.widget.ThemeUtils.getThemeAttrColor(r7, r6)
android.graphics.PorterDuffColorFilter r6 = androidx.appcompat.widget.AppCompatDrawableManager.getPorterDuffColorFilter(r6, r0)
r9.setColorFilter(r6)
if (r8 == r4) goto L65
r9.setAlpha(r8)
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) {
if (INSTANCE == null) {
preload();
}
appCompatDrawableManager = INSTANCE;
}
return appCompatDrawableManager;
}
public synchronized Drawable getDrawable(Context context, int i) {
return this.mResourceManager.getDrawable(context, i);
}
/* JADX INFO: Access modifiers changed from: package-private */
public synchronized Drawable getDrawable(Context context, int i, boolean z) {
return this.mResourceManager.getDrawable(context, i, z);
}
public synchronized void onConfigurationChanged(Context context) {
this.mResourceManager.onConfigurationChanged(context);
}
synchronized Drawable onDrawableLoadedFromResources(Context context, VectorEnabledTintResources vectorEnabledTintResources, int i) {
return this.mResourceManager.onDrawableLoadedFromResources(context, vectorEnabledTintResources, i);
}
boolean tintDrawableUsingColorFilter(Context context, int i, Drawable drawable) {
return this.mResourceManager.tintDrawableUsingColorFilter(context, i, drawable);
}
/* JADX INFO: Access modifiers changed from: package-private */
public synchronized ColorStateList getTintList(Context context, int i) {
return this.mResourceManager.getTintList(context, i);
}
/* JADX INFO: Access modifiers changed from: package-private */
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;
}
}