mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
88 lines
4.4 KiB
Java
88 lines
4.4 KiB
Java
package com.google.android.material.textview;
|
|
|
|
import android.R;
|
|
import android.content.Context;
|
|
import android.content.res.Resources;
|
|
import android.content.res.TypedArray;
|
|
import android.util.AttributeSet;
|
|
import androidx.appcompat.widget.AppCompatTextView;
|
|
import com.google.android.material.resources.MaterialAttributes;
|
|
import com.google.android.material.resources.MaterialResources;
|
|
import com.google.android.material.theme.overlay.MaterialThemeOverlay;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class MaterialTextView extends AppCompatTextView {
|
|
public MaterialTextView(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public MaterialTextView(Context context, AttributeSet attributeSet) {
|
|
this(context, attributeSet, R.attr.textViewStyle);
|
|
}
|
|
|
|
public MaterialTextView(Context context, AttributeSet attributeSet, int i) {
|
|
super(MaterialThemeOverlay.wrap(context, attributeSet, i, 0), attributeSet, i);
|
|
initialize(attributeSet, i, 0);
|
|
}
|
|
|
|
@Deprecated
|
|
public MaterialTextView(Context context, AttributeSet attributeSet, int i, int i2) {
|
|
super(MaterialThemeOverlay.wrap(context, attributeSet, i, i2), attributeSet, i);
|
|
initialize(attributeSet, i, i2);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.AppCompatTextView, android.widget.TextView
|
|
public void setTextAppearance(Context context, int i) {
|
|
super.setTextAppearance(context, i);
|
|
if (canApplyTextAppearanceLineHeight(context)) {
|
|
applyLineHeightFromViewAppearance(context.getTheme(), i);
|
|
}
|
|
}
|
|
|
|
private void initialize(AttributeSet attributeSet, int i, int i2) {
|
|
int findViewAppearanceResourceId;
|
|
Context context = getContext();
|
|
if (canApplyTextAppearanceLineHeight(context)) {
|
|
Resources.Theme theme = context.getTheme();
|
|
if (viewAttrsHasLineHeight(context, theme, attributeSet, i, i2) || (findViewAppearanceResourceId = findViewAppearanceResourceId(theme, attributeSet, i, i2)) == -1) {
|
|
return;
|
|
}
|
|
applyLineHeightFromViewAppearance(theme, findViewAppearanceResourceId);
|
|
}
|
|
}
|
|
|
|
private void applyLineHeightFromViewAppearance(Resources.Theme theme, int i) {
|
|
TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(i, com.google.android.material.R.styleable.MaterialTextAppearance);
|
|
int readFirstAvailableDimension = readFirstAvailableDimension(getContext(), obtainStyledAttributes, com.google.android.material.R.styleable.MaterialTextAppearance_android_lineHeight, com.google.android.material.R.styleable.MaterialTextAppearance_lineHeight);
|
|
obtainStyledAttributes.recycle();
|
|
if (readFirstAvailableDimension >= 0) {
|
|
setLineHeight(readFirstAvailableDimension);
|
|
}
|
|
}
|
|
|
|
private static boolean canApplyTextAppearanceLineHeight(Context context) {
|
|
return MaterialAttributes.resolveBoolean(context, com.google.android.material.R.attr.textAppearanceLineHeightEnabled, true);
|
|
}
|
|
|
|
private static int readFirstAvailableDimension(Context context, TypedArray typedArray, int... iArr) {
|
|
int i = -1;
|
|
for (int i2 = 0; i2 < iArr.length && i < 0; i2++) {
|
|
i = MaterialResources.getDimensionPixelSize(context, typedArray, iArr[i2], -1);
|
|
}
|
|
return i;
|
|
}
|
|
|
|
private static boolean viewAttrsHasLineHeight(Context context, Resources.Theme theme, AttributeSet attributeSet, int i, int i2) {
|
|
TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(attributeSet, com.google.android.material.R.styleable.MaterialTextView, i, i2);
|
|
int readFirstAvailableDimension = readFirstAvailableDimension(context, obtainStyledAttributes, com.google.android.material.R.styleable.MaterialTextView_android_lineHeight, com.google.android.material.R.styleable.MaterialTextView_lineHeight);
|
|
obtainStyledAttributes.recycle();
|
|
return readFirstAvailableDimension != -1;
|
|
}
|
|
|
|
private static int findViewAppearanceResourceId(Resources.Theme theme, AttributeSet attributeSet, int i, int i2) {
|
|
TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(attributeSet, com.google.android.material.R.styleable.MaterialTextView, i, i2);
|
|
int resourceId = obtainStyledAttributes.getResourceId(com.google.android.material.R.styleable.MaterialTextView_android_textAppearance, -1);
|
|
obtainStyledAttributes.recycle();
|
|
return resourceId;
|
|
}
|
|
}
|