Rabbit-R1/android (non root)/java/sources/androidx/emoji2/text/DefaultEmojiCompatConfig.java
2024-05-21 17:08:36 -04:00

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;
}
}
}