mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
222 lines
10 KiB
Java
222 lines
10 KiB
Java
package com.google.android.material.resources;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.ColorStateList;
|
|
import android.content.res.Resources;
|
|
import android.content.res.TypedArray;
|
|
import android.graphics.Typeface;
|
|
import android.text.TextPaint;
|
|
import android.util.Log;
|
|
import androidx.core.content.res.ResourcesCompat;
|
|
import androidx.core.view.ViewCompat;
|
|
import com.google.android.material.R;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class TextAppearance {
|
|
private static final String TAG = "TextAppearance";
|
|
private static final int TYPEFACE_MONOSPACE = 3;
|
|
private static final int TYPEFACE_SANS = 1;
|
|
private static final int TYPEFACE_SERIF = 2;
|
|
private Typeface font;
|
|
public final String fontFamily;
|
|
private final int fontFamilyResourceId;
|
|
private boolean fontResolved = false;
|
|
public final boolean hasLetterSpacing;
|
|
public final float letterSpacing;
|
|
public final ColorStateList shadowColor;
|
|
public final float shadowDx;
|
|
public final float shadowDy;
|
|
public final float shadowRadius;
|
|
public final boolean textAllCaps;
|
|
private ColorStateList textColor;
|
|
public final ColorStateList textColorHint;
|
|
public final ColorStateList textColorLink;
|
|
private float textSize;
|
|
public final int textStyle;
|
|
public final int typeface;
|
|
|
|
public ColorStateList getTextColor() {
|
|
return this.textColor;
|
|
}
|
|
|
|
public float getTextSize() {
|
|
return this.textSize;
|
|
}
|
|
|
|
public void setTextColor(ColorStateList colorStateList) {
|
|
this.textColor = colorStateList;
|
|
}
|
|
|
|
public void setTextSize(float f) {
|
|
this.textSize = f;
|
|
}
|
|
|
|
public TextAppearance(Context context, int i) {
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(i, R.styleable.TextAppearance);
|
|
setTextSize(obtainStyledAttributes.getDimension(R.styleable.TextAppearance_android_textSize, 0.0f));
|
|
setTextColor(MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.TextAppearance_android_textColor));
|
|
this.textColorHint = MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.TextAppearance_android_textColorHint);
|
|
this.textColorLink = MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.TextAppearance_android_textColorLink);
|
|
this.textStyle = obtainStyledAttributes.getInt(R.styleable.TextAppearance_android_textStyle, 0);
|
|
this.typeface = obtainStyledAttributes.getInt(R.styleable.TextAppearance_android_typeface, 1);
|
|
int indexWithValue = MaterialResources.getIndexWithValue(obtainStyledAttributes, R.styleable.TextAppearance_fontFamily, R.styleable.TextAppearance_android_fontFamily);
|
|
this.fontFamilyResourceId = obtainStyledAttributes.getResourceId(indexWithValue, 0);
|
|
this.fontFamily = obtainStyledAttributes.getString(indexWithValue);
|
|
this.textAllCaps = obtainStyledAttributes.getBoolean(R.styleable.TextAppearance_textAllCaps, false);
|
|
this.shadowColor = MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.TextAppearance_android_shadowColor);
|
|
this.shadowDx = obtainStyledAttributes.getFloat(R.styleable.TextAppearance_android_shadowDx, 0.0f);
|
|
this.shadowDy = obtainStyledAttributes.getFloat(R.styleable.TextAppearance_android_shadowDy, 0.0f);
|
|
this.shadowRadius = obtainStyledAttributes.getFloat(R.styleable.TextAppearance_android_shadowRadius, 0.0f);
|
|
obtainStyledAttributes.recycle();
|
|
TypedArray obtainStyledAttributes2 = context.obtainStyledAttributes(i, R.styleable.MaterialTextAppearance);
|
|
this.hasLetterSpacing = obtainStyledAttributes2.hasValue(R.styleable.MaterialTextAppearance_android_letterSpacing);
|
|
this.letterSpacing = obtainStyledAttributes2.getFloat(R.styleable.MaterialTextAppearance_android_letterSpacing, 0.0f);
|
|
obtainStyledAttributes2.recycle();
|
|
}
|
|
|
|
public Typeface getFont(Context context) {
|
|
if (this.fontResolved) {
|
|
return this.font;
|
|
}
|
|
if (!context.isRestricted()) {
|
|
try {
|
|
Typeface font = ResourcesCompat.getFont(context, this.fontFamilyResourceId);
|
|
this.font = font;
|
|
if (font != null) {
|
|
this.font = Typeface.create(font, this.textStyle);
|
|
}
|
|
} catch (Resources.NotFoundException | UnsupportedOperationException unused) {
|
|
} catch (Exception e) {
|
|
Log.d(TAG, "Error loading font " + this.fontFamily, e);
|
|
}
|
|
}
|
|
createFallbackFont();
|
|
this.fontResolved = true;
|
|
return this.font;
|
|
}
|
|
|
|
public void getFontAsync(Context context, final TextAppearanceFontCallback textAppearanceFontCallback) {
|
|
if (shouldLoadFontSynchronously(context)) {
|
|
getFont(context);
|
|
} else {
|
|
createFallbackFont();
|
|
}
|
|
int i = this.fontFamilyResourceId;
|
|
if (i == 0) {
|
|
this.fontResolved = true;
|
|
}
|
|
if (this.fontResolved) {
|
|
textAppearanceFontCallback.onFontRetrieved(this.font, true);
|
|
return;
|
|
}
|
|
try {
|
|
ResourcesCompat.getFont(context, i, new ResourcesCompat.FontCallback() { // from class: com.google.android.material.resources.TextAppearance.1
|
|
@Override // androidx.core.content.res.ResourcesCompat.FontCallback
|
|
/* renamed from: onFontRetrieved */
|
|
public void m5135x46c88379(Typeface typeface) {
|
|
TextAppearance textAppearance = TextAppearance.this;
|
|
textAppearance.font = Typeface.create(typeface, textAppearance.textStyle);
|
|
TextAppearance.this.fontResolved = true;
|
|
textAppearanceFontCallback.onFontRetrieved(TextAppearance.this.font, false);
|
|
}
|
|
|
|
@Override // androidx.core.content.res.ResourcesCompat.FontCallback
|
|
/* renamed from: onFontRetrievalFailed */
|
|
public void m5134xb24343b7(int i2) {
|
|
TextAppearance.this.fontResolved = true;
|
|
textAppearanceFontCallback.onFontRetrievalFailed(i2);
|
|
}
|
|
}, null);
|
|
} catch (Resources.NotFoundException unused) {
|
|
this.fontResolved = true;
|
|
textAppearanceFontCallback.onFontRetrievalFailed(1);
|
|
} catch (Exception e) {
|
|
Log.d(TAG, "Error loading font " + this.fontFamily, e);
|
|
this.fontResolved = true;
|
|
textAppearanceFontCallback.onFontRetrievalFailed(-3);
|
|
}
|
|
}
|
|
|
|
public void getFontAsync(final Context context, final TextPaint textPaint, final TextAppearanceFontCallback textAppearanceFontCallback) {
|
|
updateTextPaintMeasureState(context, textPaint, getFallbackFont());
|
|
getFontAsync(context, new TextAppearanceFontCallback() { // from class: com.google.android.material.resources.TextAppearance.2
|
|
@Override // com.google.android.material.resources.TextAppearanceFontCallback
|
|
public void onFontRetrieved(Typeface typeface, boolean z) {
|
|
TextAppearance.this.updateTextPaintMeasureState(context, textPaint, typeface);
|
|
textAppearanceFontCallback.onFontRetrieved(typeface, z);
|
|
}
|
|
|
|
@Override // com.google.android.material.resources.TextAppearanceFontCallback
|
|
public void onFontRetrievalFailed(int i) {
|
|
textAppearanceFontCallback.onFontRetrievalFailed(i);
|
|
}
|
|
});
|
|
}
|
|
|
|
public Typeface getFallbackFont() {
|
|
createFallbackFont();
|
|
return this.font;
|
|
}
|
|
|
|
private void createFallbackFont() {
|
|
String str;
|
|
if (this.font == null && (str = this.fontFamily) != null) {
|
|
this.font = Typeface.create(str, this.textStyle);
|
|
}
|
|
if (this.font == null) {
|
|
int i = this.typeface;
|
|
if (i == 1) {
|
|
this.font = Typeface.SANS_SERIF;
|
|
} else if (i == 2) {
|
|
this.font = Typeface.SERIF;
|
|
} else if (i == 3) {
|
|
this.font = Typeface.MONOSPACE;
|
|
} else {
|
|
this.font = Typeface.DEFAULT;
|
|
}
|
|
this.font = Typeface.create(this.font, this.textStyle);
|
|
}
|
|
}
|
|
|
|
public void updateDrawState(Context context, TextPaint textPaint, TextAppearanceFontCallback textAppearanceFontCallback) {
|
|
updateMeasureState(context, textPaint, textAppearanceFontCallback);
|
|
ColorStateList colorStateList = this.textColor;
|
|
textPaint.setColor(colorStateList != null ? colorStateList.getColorForState(textPaint.drawableState, this.textColor.getDefaultColor()) : ViewCompat.MEASURED_STATE_MASK);
|
|
float f = this.shadowRadius;
|
|
float f2 = this.shadowDx;
|
|
float f3 = this.shadowDy;
|
|
ColorStateList colorStateList2 = this.shadowColor;
|
|
textPaint.setShadowLayer(f, f2, f3, colorStateList2 != null ? colorStateList2.getColorForState(textPaint.drawableState, this.shadowColor.getDefaultColor()) : 0);
|
|
}
|
|
|
|
public void updateMeasureState(Context context, TextPaint textPaint, TextAppearanceFontCallback textAppearanceFontCallback) {
|
|
if (shouldLoadFontSynchronously(context)) {
|
|
updateTextPaintMeasureState(context, textPaint, getFont(context));
|
|
} else {
|
|
getFontAsync(context, textPaint, textAppearanceFontCallback);
|
|
}
|
|
}
|
|
|
|
public void updateTextPaintMeasureState(Context context, TextPaint textPaint, Typeface typeface) {
|
|
Typeface maybeCopyWithFontWeightAdjustment = TypefaceUtils.maybeCopyWithFontWeightAdjustment(context, typeface);
|
|
if (maybeCopyWithFontWeightAdjustment != null) {
|
|
typeface = maybeCopyWithFontWeightAdjustment;
|
|
}
|
|
textPaint.setTypeface(typeface);
|
|
int i = this.textStyle & (~typeface.getStyle());
|
|
textPaint.setFakeBoldText((i & 1) != 0);
|
|
textPaint.setTextSkewX((i & 2) != 0 ? -0.25f : 0.0f);
|
|
textPaint.setTextSize(this.textSize);
|
|
if (this.hasLetterSpacing) {
|
|
textPaint.setLetterSpacing(this.letterSpacing);
|
|
}
|
|
}
|
|
|
|
private boolean shouldLoadFontSynchronously(Context context) {
|
|
if (TextAppearanceConfig.shouldLoadFontSynchronously()) {
|
|
return true;
|
|
}
|
|
int i = this.fontFamilyResourceId;
|
|
return (i != 0 ? ResourcesCompat.getCachedFont(context, i) : null) != null;
|
|
}
|
|
}
|