mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-26 17:12:31 -06:00
137 lines
4.7 KiB
Java
137 lines
4.7 KiB
Java
package com.google.android.material.internal;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.Typeface;
|
|
import android.text.TextPaint;
|
|
import com.google.android.material.resources.TextAppearance;
|
|
import com.google.android.material.resources.TextAppearanceFontCallback;
|
|
import java.lang.ref.WeakReference;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class TextDrawableHelper {
|
|
private TextAppearance textAppearance;
|
|
private float textHeight;
|
|
private float textWidth;
|
|
private final TextPaint textPaint = new TextPaint(1);
|
|
private final TextAppearanceFontCallback fontCallback = new TextAppearanceFontCallback() { // from class: com.google.android.material.internal.TextDrawableHelper.1
|
|
@Override // com.google.android.material.resources.TextAppearanceFontCallback
|
|
public void onFontRetrieved(Typeface typeface, boolean z) {
|
|
if (z) {
|
|
return;
|
|
}
|
|
TextDrawableHelper.this.textSizeDirty = true;
|
|
TextDrawableDelegate textDrawableDelegate = (TextDrawableDelegate) TextDrawableHelper.this.delegate.get();
|
|
if (textDrawableDelegate != null) {
|
|
textDrawableDelegate.onTextSizeChange();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.material.resources.TextAppearanceFontCallback
|
|
public void onFontRetrievalFailed(int i) {
|
|
TextDrawableHelper.this.textSizeDirty = true;
|
|
TextDrawableDelegate textDrawableDelegate = (TextDrawableDelegate) TextDrawableHelper.this.delegate.get();
|
|
if (textDrawableDelegate != null) {
|
|
textDrawableDelegate.onTextSizeChange();
|
|
}
|
|
}
|
|
};
|
|
private boolean textSizeDirty = true;
|
|
private WeakReference<TextDrawableDelegate> delegate = new WeakReference<>(null);
|
|
|
|
/* loaded from: classes2.dex */
|
|
public interface TextDrawableDelegate {
|
|
int[] getState();
|
|
|
|
boolean onStateChange(int[] iArr);
|
|
|
|
void onTextSizeChange();
|
|
}
|
|
|
|
public TextAppearance getTextAppearance() {
|
|
return this.textAppearance;
|
|
}
|
|
|
|
public TextPaint getTextPaint() {
|
|
return this.textPaint;
|
|
}
|
|
|
|
public boolean isTextWidthDirty() {
|
|
return this.textSizeDirty;
|
|
}
|
|
|
|
public void setTextSizeDirty(boolean z) {
|
|
this.textSizeDirty = z;
|
|
}
|
|
|
|
public void setTextWidthDirty(boolean z) {
|
|
this.textSizeDirty = z;
|
|
}
|
|
|
|
public TextDrawableHelper(TextDrawableDelegate textDrawableDelegate) {
|
|
setDelegate(textDrawableDelegate);
|
|
}
|
|
|
|
public void setDelegate(TextDrawableDelegate textDrawableDelegate) {
|
|
this.delegate = new WeakReference<>(textDrawableDelegate);
|
|
}
|
|
|
|
private void refreshTextDimens(String str) {
|
|
this.textWidth = calculateTextWidth(str);
|
|
this.textHeight = calculateTextHeight(str);
|
|
this.textSizeDirty = false;
|
|
}
|
|
|
|
public float getTextWidth(String str) {
|
|
if (!this.textSizeDirty) {
|
|
return this.textWidth;
|
|
}
|
|
refreshTextDimens(str);
|
|
return this.textWidth;
|
|
}
|
|
|
|
private float calculateTextWidth(CharSequence charSequence) {
|
|
if (charSequence == null) {
|
|
return 0.0f;
|
|
}
|
|
return this.textPaint.measureText(charSequence, 0, charSequence.length());
|
|
}
|
|
|
|
public float getTextHeight(String str) {
|
|
if (!this.textSizeDirty) {
|
|
return this.textHeight;
|
|
}
|
|
refreshTextDimens(str);
|
|
return this.textHeight;
|
|
}
|
|
|
|
private float calculateTextHeight(String str) {
|
|
if (str == null) {
|
|
return 0.0f;
|
|
}
|
|
return Math.abs(this.textPaint.getFontMetrics().ascent);
|
|
}
|
|
|
|
public void setTextAppearance(TextAppearance textAppearance, Context context) {
|
|
if (this.textAppearance != textAppearance) {
|
|
this.textAppearance = textAppearance;
|
|
if (textAppearance != null) {
|
|
textAppearance.updateMeasureState(context, this.textPaint, this.fontCallback);
|
|
TextDrawableDelegate textDrawableDelegate = this.delegate.get();
|
|
if (textDrawableDelegate != null) {
|
|
this.textPaint.drawableState = textDrawableDelegate.getState();
|
|
}
|
|
textAppearance.updateDrawState(context, this.textPaint, this.fontCallback);
|
|
this.textSizeDirty = true;
|
|
}
|
|
TextDrawableDelegate textDrawableDelegate2 = this.delegate.get();
|
|
if (textDrawableDelegate2 != null) {
|
|
textDrawableDelegate2.onTextSizeChange();
|
|
textDrawableDelegate2.onStateChange(textDrawableDelegate2.getState());
|
|
}
|
|
}
|
|
}
|
|
|
|
public void updateTextPaintDrawState(Context context) {
|
|
this.textAppearance.updateDrawState(context, this.textPaint, this.fontCallback);
|
|
}
|
|
}
|