package androidx.core.graphics; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Resources; import android.graphics.Typeface; import android.os.CancellationSignal; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RestrictTo; import androidx.core.content.res.FontResourcesParserCompat; import androidx.core.provider.FontsContractCompat; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.util.concurrent.ConcurrentHashMap; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public class TypefaceCompatBaseImpl { private static final int INVALID_KEY = 0; private static final String TAG = "TypefaceCompatBaseImpl"; @SuppressLint({"BanConcurrentHashMap"}) private ConcurrentHashMap mFontFamilies = new ConcurrentHashMap<>(); /* renamed from: androidx.core.graphics.TypefaceCompatBaseImpl$1 reason: invalid class name */ public class AnonymousClass1 implements StyleExtractor { public AnonymousClass1() { } public int getWeight(FontsContractCompat.FontInfo fontInfo) { return fontInfo.getWeight(); } public boolean isItalic(FontsContractCompat.FontInfo fontInfo) { return fontInfo.isItalic(); } } /* renamed from: androidx.core.graphics.TypefaceCompatBaseImpl$2 reason: invalid class name */ public class AnonymousClass2 implements StyleExtractor { public AnonymousClass2() { } public int getWeight(FontResourcesParserCompat.FontFileResourceEntry fontFileResourceEntry) { return fontFileResourceEntry.getWeight(); } public boolean isItalic(FontResourcesParserCompat.FontFileResourceEntry fontFileResourceEntry) { return fontFileResourceEntry.isItalic(); } } public interface StyleExtractor { int getWeight(T t); boolean isItalic(T t); } private void addFontFamily(Typeface typeface, FontResourcesParserCompat.FontFamilyFilesResourceEntry fontFamilyFilesResourceEntry) { long uniqueKey = getUniqueKey(typeface); if (uniqueKey != 0) { this.mFontFamilies.put(Long.valueOf(uniqueKey), fontFamilyFilesResourceEntry); } } private FontResourcesParserCompat.FontFileResourceEntry findBestEntry(FontResourcesParserCompat.FontFamilyFilesResourceEntry fontFamilyFilesResourceEntry, int i) { return (FontResourcesParserCompat.FontFileResourceEntry) findBestFont(fontFamilyFilesResourceEntry.getEntries(), i, new AnonymousClass2()); } private static T findBestFont(T[] tArr, int i, StyleExtractor styleExtractor) { int i2 = (i & 1) == 0 ? 400 : 700; boolean z2 = (i & 2) != 0; T t = null; int i3 = Integer.MAX_VALUE; for (T t2 : tArr) { int abs = (Math.abs(styleExtractor.getWeight(t2) - i2) * 2) + (styleExtractor.isItalic(t2) == z2 ? 0 : 1); if (t == null || i3 > abs) { t = t2; i3 = abs; } } return t; } private static long getUniqueKey(@Nullable Typeface typeface) { if (typeface == null) { return 0; } try { Field declaredField = Typeface.class.getDeclaredField("native_instance"); declaredField.setAccessible(true); return ((Number) declaredField.get(typeface)).longValue(); } catch (NoSuchFieldException e) { Log.e(TAG, "Could not retrieve font from family.", e); return 0; } catch (IllegalAccessException e2) { Log.e(TAG, "Could not retrieve font from family.", e2); return 0; } } @Nullable public Typeface createFromFontFamilyFilesResourceEntry(Context context, FontResourcesParserCompat.FontFamilyFilesResourceEntry fontFamilyFilesResourceEntry, Resources resources, int i) { FontResourcesParserCompat.FontFileResourceEntry findBestEntry = findBestEntry(fontFamilyFilesResourceEntry, i); if (findBestEntry == null) { return null; } Typeface createFromResourcesFontFile = TypefaceCompat.createFromResourcesFontFile(context, resources, findBestEntry.getResourceId(), findBestEntry.getFileName(), i); addFontFamily(createFromResourcesFontFile, fontFamilyFilesResourceEntry); return createFromResourcesFontFile; } @Nullable public Typeface createFromFontInfo(Context context, @Nullable CancellationSignal cancellationSignal, @NonNull FontsContractCompat.FontInfo[] fontInfoArr, int i) { InputStream inputStream; Throwable th; InputStream inputStream2 = null; if (fontInfoArr.length < 1) { return null; } try { inputStream = context.getContentResolver().openInputStream(findBestInfo(fontInfoArr, i).getUri()); try { Typeface createFromInputStream = createFromInputStream(context, inputStream); TypefaceCompatUtil.closeQuietly(inputStream); return createFromInputStream; } catch (IOException unused) { TypefaceCompatUtil.closeQuietly(inputStream); return null; } catch (Throwable th2) { th = th2; inputStream2 = inputStream; TypefaceCompatUtil.closeQuietly(inputStream2); throw th; } } catch (IOException unused2) { inputStream = null; TypefaceCompatUtil.closeQuietly(inputStream); return null; } catch (Throwable th3) { th = th3; TypefaceCompatUtil.closeQuietly(inputStream2); throw th; } } public Typeface createFromInputStream(Context context, InputStream inputStream) { File tempFile = TypefaceCompatUtil.getTempFile(context); if (tempFile == null) { return null; } try { if (!TypefaceCompatUtil.copyToFile(tempFile, inputStream)) { return null; } Typeface createFromFile = Typeface.createFromFile(tempFile.getPath()); tempFile.delete(); return createFromFile; } catch (RuntimeException unused) { return null; } finally { tempFile.delete(); } } @Nullable public Typeface createFromResourcesFontFile(Context context, Resources resources, int i, String str, int i2) { File tempFile = TypefaceCompatUtil.getTempFile(context); if (tempFile == null) { return null; } try { if (!TypefaceCompatUtil.copyToFile(tempFile, resources, i)) { return null; } Typeface createFromFile = Typeface.createFromFile(tempFile.getPath()); tempFile.delete(); return createFromFile; } catch (RuntimeException unused) { return null; } finally { tempFile.delete(); } } public FontsContractCompat.FontInfo findBestInfo(FontsContractCompat.FontInfo[] fontInfoArr, int i) { return (FontsContractCompat.FontInfo) findBestFont(fontInfoArr, i, new AnonymousClass1()); } @Nullable public FontResourcesParserCompat.FontFamilyFilesResourceEntry getFontFamily(Typeface typeface) { long uniqueKey = getUniqueKey(typeface); if (uniqueKey == 0) { return null; } return this.mFontFamilies.get(Long.valueOf(uniqueKey)); } }