- 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
463 lines
18 KiB
Java
463 lines
18 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.ColorStateList;
|
|
import android.content.res.Resources;
|
|
import android.graphics.PorterDuff;
|
|
import android.graphics.Typeface;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.os.Build;
|
|
import android.os.LocaleList;
|
|
import android.view.inputmethod.EditorInfo;
|
|
import android.view.inputmethod.InputConnection;
|
|
import android.widget.TextView;
|
|
import androidx.annotation.DoNotInline;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.R;
|
|
import androidx.core.content.res.ResourcesCompat;
|
|
import androidx.core.view.inputmethod.EditorInfoCompat;
|
|
import java.lang.ref.WeakReference;
|
|
import java.util.Locale;
|
|
|
|
/* loaded from: classes.dex */
|
|
class AppCompatTextHelper {
|
|
private static final int MONOSPACE = 3;
|
|
private static final int SANS = 1;
|
|
private static final int SERIF = 2;
|
|
private static final int TEXT_FONT_WEIGHT_UNSPECIFIED = -1;
|
|
private boolean mAsyncFontPending;
|
|
|
|
@NonNull
|
|
private final AppCompatTextViewAutoSizeHelper mAutoSizeTextHelper;
|
|
private TintInfo mDrawableBottomTint;
|
|
private TintInfo mDrawableEndTint;
|
|
private TintInfo mDrawableLeftTint;
|
|
private TintInfo mDrawableRightTint;
|
|
private TintInfo mDrawableStartTint;
|
|
private TintInfo mDrawableTint;
|
|
private TintInfo mDrawableTopTint;
|
|
private Typeface mFontTypeface;
|
|
|
|
@NonNull
|
|
private final TextView mView;
|
|
private int mStyle = 0;
|
|
private int mFontWeight = -1;
|
|
|
|
private void setCompoundTints() {
|
|
TintInfo tintInfo = this.mDrawableTint;
|
|
this.mDrawableLeftTint = tintInfo;
|
|
this.mDrawableTopTint = tintInfo;
|
|
this.mDrawableRightTint = tintInfo;
|
|
this.mDrawableBottomTint = tintInfo;
|
|
this.mDrawableStartTint = tintInfo;
|
|
this.mDrawableEndTint = tintInfo;
|
|
}
|
|
|
|
public AppCompatTextHelper(@NonNull TextView textView) {
|
|
this.mView = textView;
|
|
this.mAutoSizeTextHelper = new AppCompatTextViewAutoSizeHelper(textView);
|
|
}
|
|
|
|
/* JADX WARN: Removed duplicated region for block: B:108:0x0293 */
|
|
/* JADX WARN: Removed duplicated region for block: B:110:0x029a */
|
|
/* JADX WARN: Removed duplicated region for block: B:113:0x02a3 */
|
|
/* JADX WARN: Removed duplicated region for block: B:119:? A[RETURN, SYNTHETIC] */
|
|
@android.annotation.SuppressLint({"NewApi"})
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public void loadFromAttributes(@androidx.annotation.Nullable android.util.AttributeSet r17, int r18) {
|
|
/*
|
|
Method dump skipped, instructions count: 690
|
|
To view this dump add '--comments-level debug' option
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.widget.AppCompatTextHelper.loadFromAttributes(android.util.AttributeSet, int):void");
|
|
}
|
|
|
|
private void updateTypefaceAndStyle(Context context, TintTypedArray tintTypedArray) {
|
|
int i;
|
|
String string;
|
|
this.mStyle = tintTypedArray.getInt(R.styleable.TextAppearance_android_textStyle, this.mStyle);
|
|
int i2 = Build.VERSION.SDK_INT;
|
|
if (i2 >= 28) {
|
|
int i3 = tintTypedArray.getInt(R.styleable.TextAppearance_android_textFontWeight, -1);
|
|
this.mFontWeight = i3;
|
|
if (i3 != -1) {
|
|
this.mStyle &= 2;
|
|
}
|
|
}
|
|
if (tintTypedArray.hasValue(R.styleable.TextAppearance_android_fontFamily) || tintTypedArray.hasValue(R.styleable.TextAppearance_fontFamily)) {
|
|
this.mFontTypeface = null;
|
|
if (tintTypedArray.hasValue(R.styleable.TextAppearance_fontFamily)) {
|
|
i = R.styleable.TextAppearance_fontFamily;
|
|
} else {
|
|
i = R.styleable.TextAppearance_android_fontFamily;
|
|
}
|
|
final int i4 = this.mFontWeight;
|
|
final int i5 = this.mStyle;
|
|
if (!context.isRestricted()) {
|
|
final WeakReference weakReference = new WeakReference(this.mView);
|
|
try {
|
|
Typeface font = tintTypedArray.getFont(i, this.mStyle, new ResourcesCompat.FontCallback() { // from class: androidx.appcompat.widget.AppCompatTextHelper.1
|
|
@Override // androidx.core.content.res.ResourcesCompat.FontCallback
|
|
/* renamed from: onFontRetrievalFailed */
|
|
public void lambda$callbackFailAsync$1(int i6) {
|
|
}
|
|
|
|
@Override // androidx.core.content.res.ResourcesCompat.FontCallback
|
|
/* renamed from: onFontRetrieved */
|
|
public void lambda$callbackSuccessAsync$0(@NonNull Typeface typeface) {
|
|
int i6;
|
|
if (Build.VERSION.SDK_INT >= 28 && (i6 = i4) != -1) {
|
|
typeface = Api28Impl.create(typeface, i6, (i5 & 2) != 0);
|
|
}
|
|
AppCompatTextHelper.this.onAsyncTypefaceReceived(weakReference, typeface);
|
|
}
|
|
});
|
|
if (font != null) {
|
|
if (i2 < 28 || this.mFontWeight == -1) {
|
|
this.mFontTypeface = font;
|
|
} else {
|
|
this.mFontTypeface = Api28Impl.create(Typeface.create(font, 0), this.mFontWeight, (this.mStyle & 2) != 0);
|
|
}
|
|
}
|
|
this.mAsyncFontPending = this.mFontTypeface == null;
|
|
} catch (Resources.NotFoundException | UnsupportedOperationException unused) {
|
|
}
|
|
}
|
|
if (this.mFontTypeface != null || (string = tintTypedArray.getString(i)) == null) {
|
|
return;
|
|
}
|
|
if (Build.VERSION.SDK_INT >= 28 && this.mFontWeight != -1) {
|
|
this.mFontTypeface = Api28Impl.create(Typeface.create(string, 0), this.mFontWeight, (this.mStyle & 2) != 0);
|
|
return;
|
|
} else {
|
|
this.mFontTypeface = Typeface.create(string, this.mStyle);
|
|
return;
|
|
}
|
|
}
|
|
if (tintTypedArray.hasValue(R.styleable.TextAppearance_android_typeface)) {
|
|
this.mAsyncFontPending = false;
|
|
int i6 = tintTypedArray.getInt(R.styleable.TextAppearance_android_typeface, 1);
|
|
if (i6 == 1) {
|
|
this.mFontTypeface = Typeface.SANS_SERIF;
|
|
} else if (i6 == 2) {
|
|
this.mFontTypeface = Typeface.SERIF;
|
|
} else {
|
|
if (i6 != 3) {
|
|
return;
|
|
}
|
|
this.mFontTypeface = Typeface.MONOSPACE;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void onAsyncTypefaceReceived(WeakReference<TextView> weakReference, final Typeface typeface) {
|
|
if (this.mAsyncFontPending) {
|
|
this.mFontTypeface = typeface;
|
|
final TextView textView = weakReference.get();
|
|
if (textView != null) {
|
|
if (textView.isAttachedToWindow()) {
|
|
final int i = this.mStyle;
|
|
textView.post(new Runnable() { // from class: androidx.appcompat.widget.AppCompatTextHelper.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
textView.setTypeface(typeface, i);
|
|
}
|
|
});
|
|
} else {
|
|
textView.setTypeface(typeface, this.mStyle);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void onSetTextAppearance(Context context, int i) {
|
|
String string;
|
|
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, i, R.styleable.TextAppearance);
|
|
if (obtainStyledAttributes.hasValue(R.styleable.TextAppearance_textAllCaps)) {
|
|
setAllCaps(obtainStyledAttributes.getBoolean(R.styleable.TextAppearance_textAllCaps, false));
|
|
}
|
|
if (obtainStyledAttributes.hasValue(R.styleable.TextAppearance_android_textSize) && obtainStyledAttributes.getDimensionPixelSize(R.styleable.TextAppearance_android_textSize, -1) == 0) {
|
|
this.mView.setTextSize(0, 0.0f);
|
|
}
|
|
updateTypefaceAndStyle(context, obtainStyledAttributes);
|
|
if (obtainStyledAttributes.hasValue(R.styleable.TextAppearance_fontVariationSettings) && (string = obtainStyledAttributes.getString(R.styleable.TextAppearance_fontVariationSettings)) != null) {
|
|
Api26Impl.setFontVariationSettings(this.mView, string);
|
|
}
|
|
obtainStyledAttributes.recycle();
|
|
Typeface typeface = this.mFontTypeface;
|
|
if (typeface != null) {
|
|
this.mView.setTypeface(typeface, this.mStyle);
|
|
}
|
|
}
|
|
|
|
public void setAllCaps(boolean z) {
|
|
this.mView.setAllCaps(z);
|
|
}
|
|
|
|
public void onSetCompoundDrawables() {
|
|
applyCompoundDrawablesTints();
|
|
}
|
|
|
|
public void applyCompoundDrawablesTints() {
|
|
if (this.mDrawableLeftTint != null || this.mDrawableTopTint != null || this.mDrawableRightTint != null || this.mDrawableBottomTint != null) {
|
|
Drawable[] compoundDrawables = this.mView.getCompoundDrawables();
|
|
applyCompoundDrawableTint(compoundDrawables[0], this.mDrawableLeftTint);
|
|
applyCompoundDrawableTint(compoundDrawables[1], this.mDrawableTopTint);
|
|
applyCompoundDrawableTint(compoundDrawables[2], this.mDrawableRightTint);
|
|
applyCompoundDrawableTint(compoundDrawables[3], this.mDrawableBottomTint);
|
|
}
|
|
if (this.mDrawableStartTint == null && this.mDrawableEndTint == null) {
|
|
return;
|
|
}
|
|
Drawable[] compoundDrawablesRelative = this.mView.getCompoundDrawablesRelative();
|
|
applyCompoundDrawableTint(compoundDrawablesRelative[0], this.mDrawableStartTint);
|
|
applyCompoundDrawableTint(compoundDrawablesRelative[2], this.mDrawableEndTint);
|
|
}
|
|
|
|
private void applyCompoundDrawableTint(Drawable drawable, TintInfo tintInfo) {
|
|
if (drawable == null || tintInfo == null) {
|
|
return;
|
|
}
|
|
AppCompatDrawableManager.tintDrawable(drawable, tintInfo, this.mView.getDrawableState());
|
|
}
|
|
|
|
private static TintInfo createTintInfo(Context context, AppCompatDrawableManager appCompatDrawableManager, int i) {
|
|
ColorStateList tintList = appCompatDrawableManager.getTintList(context, i);
|
|
if (tintList == null) {
|
|
return null;
|
|
}
|
|
TintInfo tintInfo = new TintInfo();
|
|
tintInfo.mHasTintList = true;
|
|
tintInfo.mTintList = tintList;
|
|
return tintInfo;
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void onLayout(boolean z, int i, int i2, int i3, int i4) {
|
|
if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
|
|
return;
|
|
}
|
|
autoSizeText();
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void setTextSize(int i, float f) {
|
|
if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE || isAutoSizeEnabled()) {
|
|
return;
|
|
}
|
|
setTextSizeInternal(i, f);
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void autoSizeText() {
|
|
this.mAutoSizeTextHelper.autoSizeText();
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public boolean isAutoSizeEnabled() {
|
|
return this.mAutoSizeTextHelper.isAutoSizeEnabled();
|
|
}
|
|
|
|
private void setTextSizeInternal(int i, float f) {
|
|
this.mAutoSizeTextHelper.setTextSizeInternal(i, f);
|
|
}
|
|
|
|
public void setAutoSizeTextTypeWithDefaults(int i) {
|
|
this.mAutoSizeTextHelper.setAutoSizeTextTypeWithDefaults(i);
|
|
}
|
|
|
|
public void setAutoSizeTextTypeUniformWithConfiguration(int i, int i2, int i3, int i4) throws IllegalArgumentException {
|
|
this.mAutoSizeTextHelper.setAutoSizeTextTypeUniformWithConfiguration(i, i2, i3, i4);
|
|
}
|
|
|
|
public void setAutoSizeTextTypeUniformWithPresetSizes(@NonNull int[] iArr, int i) throws IllegalArgumentException {
|
|
this.mAutoSizeTextHelper.setAutoSizeTextTypeUniformWithPresetSizes(iArr, i);
|
|
}
|
|
|
|
public int getAutoSizeTextType() {
|
|
return this.mAutoSizeTextHelper.getAutoSizeTextType();
|
|
}
|
|
|
|
public int getAutoSizeStepGranularity() {
|
|
return this.mAutoSizeTextHelper.getAutoSizeStepGranularity();
|
|
}
|
|
|
|
public int getAutoSizeMinTextSize() {
|
|
return this.mAutoSizeTextHelper.getAutoSizeMinTextSize();
|
|
}
|
|
|
|
public int getAutoSizeMaxTextSize() {
|
|
return this.mAutoSizeTextHelper.getAutoSizeMaxTextSize();
|
|
}
|
|
|
|
public int[] getAutoSizeTextAvailableSizes() {
|
|
return this.mAutoSizeTextHelper.getAutoSizeTextAvailableSizes();
|
|
}
|
|
|
|
@Nullable
|
|
public ColorStateList getCompoundDrawableTintList() {
|
|
TintInfo tintInfo = this.mDrawableTint;
|
|
if (tintInfo != null) {
|
|
return tintInfo.mTintList;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public void setCompoundDrawableTintList(@Nullable ColorStateList colorStateList) {
|
|
if (this.mDrawableTint == null) {
|
|
this.mDrawableTint = new TintInfo();
|
|
}
|
|
TintInfo tintInfo = this.mDrawableTint;
|
|
tintInfo.mTintList = colorStateList;
|
|
tintInfo.mHasTintList = colorStateList != null;
|
|
setCompoundTints();
|
|
}
|
|
|
|
@Nullable
|
|
public PorterDuff.Mode getCompoundDrawableTintMode() {
|
|
TintInfo tintInfo = this.mDrawableTint;
|
|
if (tintInfo != null) {
|
|
return tintInfo.mTintMode;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public void setCompoundDrawableTintMode(@Nullable PorterDuff.Mode mode) {
|
|
if (this.mDrawableTint == null) {
|
|
this.mDrawableTint = new TintInfo();
|
|
}
|
|
TintInfo tintInfo = this.mDrawableTint;
|
|
tintInfo.mTintMode = mode;
|
|
tintInfo.mHasTintMode = mode != null;
|
|
setCompoundTints();
|
|
}
|
|
|
|
private void setCompoundDrawables(Drawable drawable, Drawable drawable2, Drawable drawable3, Drawable drawable4, Drawable drawable5, Drawable drawable6) {
|
|
if (drawable5 != null || drawable6 != null) {
|
|
Drawable[] compoundDrawablesRelative = this.mView.getCompoundDrawablesRelative();
|
|
if (drawable5 == null) {
|
|
drawable5 = compoundDrawablesRelative[0];
|
|
}
|
|
if (drawable2 == null) {
|
|
drawable2 = compoundDrawablesRelative[1];
|
|
}
|
|
if (drawable6 == null) {
|
|
drawable6 = compoundDrawablesRelative[2];
|
|
}
|
|
TextView textView = this.mView;
|
|
if (drawable4 == null) {
|
|
drawable4 = compoundDrawablesRelative[3];
|
|
}
|
|
textView.setCompoundDrawablesRelativeWithIntrinsicBounds(drawable5, drawable2, drawable6, drawable4);
|
|
return;
|
|
}
|
|
if (drawable == null && drawable2 == null && drawable3 == null && drawable4 == null) {
|
|
return;
|
|
}
|
|
Drawable[] compoundDrawablesRelative2 = this.mView.getCompoundDrawablesRelative();
|
|
Drawable drawable7 = compoundDrawablesRelative2[0];
|
|
if (drawable7 != null || compoundDrawablesRelative2[2] != null) {
|
|
if (drawable2 == null) {
|
|
drawable2 = compoundDrawablesRelative2[1];
|
|
}
|
|
if (drawable4 == null) {
|
|
drawable4 = compoundDrawablesRelative2[3];
|
|
}
|
|
this.mView.setCompoundDrawablesRelativeWithIntrinsicBounds(drawable7, drawable2, compoundDrawablesRelative2[2], drawable4);
|
|
return;
|
|
}
|
|
Drawable[] compoundDrawables = this.mView.getCompoundDrawables();
|
|
TextView textView2 = this.mView;
|
|
if (drawable == null) {
|
|
drawable = compoundDrawables[0];
|
|
}
|
|
if (drawable2 == null) {
|
|
drawable2 = compoundDrawables[1];
|
|
}
|
|
if (drawable3 == null) {
|
|
drawable3 = compoundDrawables[2];
|
|
}
|
|
if (drawable4 == null) {
|
|
drawable4 = compoundDrawables[3];
|
|
}
|
|
textView2.setCompoundDrawablesWithIntrinsicBounds(drawable, drawable2, drawable3, drawable4);
|
|
}
|
|
|
|
public void populateSurroundingTextIfNeeded(@NonNull TextView textView, @Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo) {
|
|
if (Build.VERSION.SDK_INT >= 30 || inputConnection == null) {
|
|
return;
|
|
}
|
|
EditorInfoCompat.setInitialSurroundingText(editorInfo, textView.getText());
|
|
}
|
|
|
|
@RequiresApi(26)
|
|
public static class Api26Impl {
|
|
private Api26Impl() {
|
|
}
|
|
|
|
@DoNotInline
|
|
public static boolean setFontVariationSettings(TextView textView, String str) {
|
|
return textView.setFontVariationSettings(str);
|
|
}
|
|
|
|
@DoNotInline
|
|
public static int getAutoSizeStepGranularity(TextView textView) {
|
|
return textView.getAutoSizeStepGranularity();
|
|
}
|
|
|
|
@DoNotInline
|
|
public static void setAutoSizeTextTypeUniformWithConfiguration(TextView textView, int i, int i2, int i3, int i4) {
|
|
textView.setAutoSizeTextTypeUniformWithConfiguration(i, i2, i3, i4);
|
|
}
|
|
|
|
@DoNotInline
|
|
public static void setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] iArr, int i) {
|
|
textView.setAutoSizeTextTypeUniformWithPresetSizes(iArr, i);
|
|
}
|
|
}
|
|
|
|
@RequiresApi(24)
|
|
public static class Api24Impl {
|
|
private Api24Impl() {
|
|
}
|
|
|
|
@DoNotInline
|
|
public static void setTextLocales(TextView textView, LocaleList localeList) {
|
|
textView.setTextLocales(localeList);
|
|
}
|
|
|
|
@DoNotInline
|
|
public static LocaleList forLanguageTags(String str) {
|
|
return LocaleList.forLanguageTags(str);
|
|
}
|
|
}
|
|
|
|
@RequiresApi(21)
|
|
public static class Api21Impl {
|
|
private Api21Impl() {
|
|
}
|
|
|
|
@DoNotInline
|
|
public static Locale forLanguageTag(String str) {
|
|
return Locale.forLanguageTag(str);
|
|
}
|
|
}
|
|
|
|
@RequiresApi(28)
|
|
public static class Api28Impl {
|
|
private Api28Impl() {
|
|
}
|
|
|
|
@DoNotInline
|
|
public static Typeface create(Typeface typeface, int i, boolean z) {
|
|
return Typeface.create(typeface, i, z);
|
|
}
|
|
}
|
|
}
|