mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-31 11:32:28 -06:00
133 lines
5.9 KiB
Java
133 lines
5.9 KiB
Java
package androidx.emoji2.text;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ProviderInfo;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.content.pm.Signature;
|
|
import android.util.Log;
|
|
import androidx.core.provider.FontRequest;
|
|
import androidx.core.util.Preconditions;
|
|
import androidx.emoji2.text.EmojiCompat;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class DefaultEmojiCompatConfig {
|
|
private DefaultEmojiCompatConfig() {
|
|
}
|
|
|
|
public static FontRequestEmojiCompatConfig create(Context context) {
|
|
return (FontRequestEmojiCompatConfig) new DefaultEmojiCompatConfigFactory(null).create(context);
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class DefaultEmojiCompatConfigFactory {
|
|
private static final String DEFAULT_EMOJI_QUERY = "emojicompat-emoji-font";
|
|
private static final String INTENT_LOAD_EMOJI_FONT = "androidx.content.action.LOAD_EMOJI_FONT";
|
|
private static final String TAG = "emoji2.text.DefaultEmojiConfig";
|
|
private final DefaultEmojiCompatConfigHelper mHelper;
|
|
|
|
public DefaultEmojiCompatConfigFactory(DefaultEmojiCompatConfigHelper defaultEmojiCompatConfigHelper) {
|
|
this.mHelper = defaultEmojiCompatConfigHelper == null ? getHelperForApi() : defaultEmojiCompatConfigHelper;
|
|
}
|
|
|
|
public EmojiCompat.Config create(Context context) {
|
|
return configOrNull(context, queryForDefaultFontRequest(context));
|
|
}
|
|
|
|
private EmojiCompat.Config configOrNull(Context context, FontRequest fontRequest) {
|
|
if (fontRequest == null) {
|
|
return null;
|
|
}
|
|
return new FontRequestEmojiCompatConfig(context, fontRequest);
|
|
}
|
|
|
|
FontRequest queryForDefaultFontRequest(Context context) {
|
|
PackageManager packageManager = context.getPackageManager();
|
|
Preconditions.checkNotNull(packageManager, "Package manager required to locate emoji font provider");
|
|
ProviderInfo queryDefaultInstalledContentProvider = queryDefaultInstalledContentProvider(packageManager);
|
|
if (queryDefaultInstalledContentProvider == null) {
|
|
return null;
|
|
}
|
|
try {
|
|
return generateFontRequestFrom(queryDefaultInstalledContentProvider, packageManager);
|
|
} catch (PackageManager.NameNotFoundException e) {
|
|
Log.wtf(TAG, e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private ProviderInfo queryDefaultInstalledContentProvider(PackageManager packageManager) {
|
|
Iterator<ResolveInfo> it = this.mHelper.queryIntentContentProviders(packageManager, new Intent(INTENT_LOAD_EMOJI_FONT), 0).iterator();
|
|
while (it.hasNext()) {
|
|
ProviderInfo providerInfo = this.mHelper.getProviderInfo(it.next());
|
|
if (hasFlagSystem(providerInfo)) {
|
|
return providerInfo;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private boolean hasFlagSystem(ProviderInfo providerInfo) {
|
|
return (providerInfo == null || providerInfo.applicationInfo == null || (providerInfo.applicationInfo.flags & 1) != 1) ? false : true;
|
|
}
|
|
|
|
private FontRequest generateFontRequestFrom(ProviderInfo providerInfo, PackageManager packageManager) throws PackageManager.NameNotFoundException {
|
|
String str = providerInfo.authority;
|
|
String str2 = providerInfo.packageName;
|
|
return new FontRequest(str, str2, DEFAULT_EMOJI_QUERY, convertToByteArray(this.mHelper.getSigningSignatures(packageManager, str2)));
|
|
}
|
|
|
|
private List<List<byte[]>> convertToByteArray(Signature[] signatureArr) {
|
|
ArrayList arrayList = new ArrayList();
|
|
for (Signature signature : signatureArr) {
|
|
arrayList.add(signature.toByteArray());
|
|
}
|
|
return Collections.singletonList(arrayList);
|
|
}
|
|
|
|
private static DefaultEmojiCompatConfigHelper getHelperForApi() {
|
|
return new DefaultEmojiCompatConfigHelper_API28();
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class DefaultEmojiCompatConfigHelper {
|
|
public Signature[] getSigningSignatures(PackageManager packageManager, String str) throws PackageManager.NameNotFoundException {
|
|
return packageManager.getPackageInfo(str, 64).signatures;
|
|
}
|
|
|
|
public List<ResolveInfo> queryIntentContentProviders(PackageManager packageManager, Intent intent, int i) {
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
public ProviderInfo getProviderInfo(ResolveInfo resolveInfo) {
|
|
throw new IllegalStateException("Unable to get provider info prior to API 19");
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class DefaultEmojiCompatConfigHelper_API19 extends DefaultEmojiCompatConfigHelper {
|
|
@Override // androidx.emoji2.text.DefaultEmojiCompatConfig.DefaultEmojiCompatConfigHelper
|
|
public List<ResolveInfo> queryIntentContentProviders(PackageManager packageManager, Intent intent, int i) {
|
|
return packageManager.queryIntentContentProviders(intent, i);
|
|
}
|
|
|
|
@Override // androidx.emoji2.text.DefaultEmojiCompatConfig.DefaultEmojiCompatConfigHelper
|
|
public ProviderInfo getProviderInfo(ResolveInfo resolveInfo) {
|
|
return resolveInfo.providerInfo;
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class DefaultEmojiCompatConfigHelper_API28 extends DefaultEmojiCompatConfigHelper_API19 {
|
|
@Override // androidx.emoji2.text.DefaultEmojiCompatConfig.DefaultEmojiCompatConfigHelper
|
|
public Signature[] getSigningSignatures(PackageManager packageManager, String str) throws PackageManager.NameNotFoundException {
|
|
return packageManager.getPackageInfo(str, 64).signatures;
|
|
}
|
|
}
|
|
}
|