Initial import of ADIF API reverse-engineering toolkit

This commit is contained in:
2025-12-16 08:37:56 +01:00
commit 60388529c1
11486 changed files with 1086536 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
package com.google.android.gms.common.util;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.ShowFirstParty;
import com.google.android.gms.common.wrappers.Wrappers;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@ShowFirstParty
@KeepForSdk
/* loaded from: classes3.dex */
public class AndroidUtilsLight {
private static volatile int zza = -1;
@KeepForSdk
@Deprecated
public static byte[] getPackageCertificateHashBytes(Context context, String str) throws PackageManager.NameNotFoundException {
MessageDigest zza2;
PackageInfo packageInfo = Wrappers.packageManager(context).getPackageInfo(str, 64);
Signature[] signatureArr = packageInfo.signatures;
if (signatureArr == null || signatureArr.length != 1 || (zza2 = zza("SHA1")) == null) {
return null;
}
return zza2.digest(packageInfo.signatures[0].toByteArray());
}
public static MessageDigest zza(String str) {
MessageDigest messageDigest;
for (int i = 0; i < 2; i++) {
try {
messageDigest = MessageDigest.getInstance(str);
} catch (NoSuchAlgorithmException unused) {
}
if (messageDigest != null) {
return messageDigest;
}
}
return null;
}
}

View File

@@ -0,0 +1,243 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Objects;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@VisibleForTesting
@KeepForSdk
/* loaded from: classes3.dex */
public final class ArrayUtils {
private ArrayUtils() {
}
@KeepForSdk
public static <T> T[] concat(T[]... tArr) {
if (tArr.length == 0) {
return (T[]) ((Object[]) Array.newInstance(tArr.getClass(), 0));
}
int i = 0;
for (T[] tArr2 : tArr) {
i += tArr2.length;
}
T[] tArr3 = (T[]) Arrays.copyOf(tArr[0], i);
int length = tArr[0].length;
for (int i4 = 1; i4 < tArr.length; i4++) {
T[] tArr4 = tArr[i4];
int length2 = tArr4.length;
System.arraycopy(tArr4, 0, tArr3, length, length2);
length += length2;
}
return tArr3;
}
@KeepForSdk
public static byte[] concatByteArrays(byte[]... bArr) {
if (bArr.length == 0) {
return new byte[0];
}
int i = 0;
for (byte[] bArr2 : bArr) {
i += bArr2.length;
}
byte[] copyOf = Arrays.copyOf(bArr[0], i);
int length = bArr[0].length;
for (int i4 = 1; i4 < bArr.length; i4++) {
byte[] bArr3 = bArr[i4];
int length2 = bArr3.length;
System.arraycopy(bArr3, 0, copyOf, length, length2);
length += length2;
}
return copyOf;
}
@KeepForSdk
public static boolean contains(int[] iArr, int i) {
if (iArr == null) {
return false;
}
for (int i4 : iArr) {
if (i4 == i) {
return true;
}
}
return false;
}
@KeepForSdk
public static <T> ArrayList<T> newArrayList() {
return new ArrayList<>();
}
@KeepForSdk
public static <T> T[] removeAll(T[] tArr, T... tArr2) {
int length;
int i;
if (tArr == null) {
return null;
}
if (tArr2 == null || (length = tArr2.length) == 0) {
return (T[]) Arrays.copyOf(tArr, tArr.length);
}
T[] tArr3 = (T[]) ((Object[]) Array.newInstance(tArr2.getClass().getComponentType(), tArr.length));
if (length == 1) {
i = 0;
for (T t2 : tArr) {
if (!Objects.equal(tArr2[0], t2)) {
tArr3[i] = t2;
i++;
}
}
} else {
int i4 = 0;
for (T t4 : tArr) {
if (!contains(tArr2, t4)) {
tArr3[i4] = t4;
i4++;
}
}
i = i4;
}
if (tArr3 == null) {
return null;
}
return i == tArr3.length ? tArr3 : (T[]) Arrays.copyOf(tArr3, i);
}
@KeepForSdk
public static <T> ArrayList<T> toArrayList(T[] tArr) {
ArrayList<T> arrayList = new ArrayList<>(tArr.length);
for (T t2 : tArr) {
arrayList.add(t2);
}
return arrayList;
}
@KeepForSdk
public static int[] toPrimitiveArray(Collection<Integer> collection) {
int i = 0;
if (collection == null || collection.isEmpty()) {
return new int[0];
}
int[] iArr = new int[collection.size()];
Iterator<Integer> it = collection.iterator();
while (it.hasNext()) {
iArr[i] = it.next().intValue();
i++;
}
return iArr;
}
@KeepForSdk
public static Integer[] toWrapperArray(int[] iArr) {
if (iArr == null) {
return null;
}
int length = iArr.length;
Integer[] numArr = new Integer[length];
for (int i = 0; i < length; i++) {
numArr[i] = Integer.valueOf(iArr[i]);
}
return numArr;
}
@KeepForSdk
public static void writeArray(StringBuilder sb, double[] dArr) {
int length = dArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(Double.toString(dArr[i]));
}
}
@KeepForSdk
public static void writeStringArray(StringBuilder sb, String[] strArr) {
int length = strArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append("\"");
sb.append(strArr[i]);
sb.append("\"");
}
}
@KeepForSdk
public static <T> boolean contains(T[] tArr, T t2) {
int length = tArr != null ? tArr.length : 0;
int i = 0;
while (true) {
if (i >= length) {
break;
}
if (!Objects.equal(tArr[i], t2)) {
i++;
} else if (i >= 0) {
return true;
}
}
return false;
}
@KeepForSdk
public static void writeArray(StringBuilder sb, float[] fArr) {
int length = fArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(Float.toString(fArr[i]));
}
}
@KeepForSdk
public static void writeArray(StringBuilder sb, int[] iArr) {
int length = iArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(Integer.toString(iArr[i]));
}
}
@KeepForSdk
public static void writeArray(StringBuilder sb, long[] jArr) {
int length = jArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(Long.toString(jArr[i]));
}
}
@KeepForSdk
public static <T> void writeArray(StringBuilder sb, T[] tArr) {
int length = tArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(tArr[i]);
}
}
@KeepForSdk
public static void writeArray(StringBuilder sb, boolean[] zArr) {
int length = zArr.length;
for (int i = 0; i < length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append(Boolean.toString(zArr[i]));
}
}
}

View File

@@ -0,0 +1,56 @@
package com.google.android.gms.common.util;
import android.util.Base64;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public final class Base64Utils {
@KeepForSdk
public static byte[] decode(String str) {
if (str == null) {
return null;
}
return Base64.decode(str, 0);
}
@KeepForSdk
public static byte[] decodeUrlSafe(String str) {
if (str == null) {
return null;
}
return Base64.decode(str, 10);
}
@KeepForSdk
public static byte[] decodeUrlSafeNoPadding(String str) {
if (str == null) {
return null;
}
return Base64.decode(str, 11);
}
@KeepForSdk
public static String encode(byte[] bArr) {
if (bArr == null) {
return null;
}
return Base64.encodeToString(bArr, 0);
}
@KeepForSdk
public static String encodeUrlSafe(byte[] bArr) {
if (bArr == null) {
return null;
}
return Base64.encodeToString(bArr, 10);
}
@KeepForSdk
public static String encodeUrlSafeNoPadding(byte[] bArr) {
if (bArr == null) {
return null;
}
return Base64.encodeToString(bArr, 11);
}
}

View File

@@ -0,0 +1,10 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public interface BiConsumer<T, U> {
@KeepForSdk
void accept(T t2, U u3);
}

View File

@@ -0,0 +1,41 @@
package com.google.android.gms.common.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.wrappers.Wrappers;
@KeepForSdk
/* loaded from: classes3.dex */
public class ClientLibraryUtils {
private ClientLibraryUtils() {
}
@KeepForSdk
public static int getClientVersion(Context context, String str) {
ApplicationInfo applicationInfo;
Bundle bundle;
PackageInfo packageInfo = getPackageInfo(context, str);
if (packageInfo == null || (applicationInfo = packageInfo.applicationInfo) == null || (bundle = applicationInfo.metaData) == null) {
return -1;
}
return bundle.getInt("com.google.android.gms.version", -1);
}
@KeepForSdk
public static PackageInfo getPackageInfo(Context context, String str) {
try {
return Wrappers.packageManager(context).getPackageInfo(str, 128);
} catch (PackageManager.NameNotFoundException unused) {
return null;
}
}
@KeepForSdk
public static boolean isPackageSide() {
return false;
}
}

View File

@@ -0,0 +1,27 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.ShowFirstParty;
@ShowFirstParty
@KeepForSdk
/* loaded from: classes3.dex */
public interface Clock {
/* renamed from: com.google.android.gms.common.util.Clock$-CC, reason: invalid class name */
/* loaded from: classes3.dex */
public final /* synthetic */ class CC {
}
@KeepForSdk
long currentThreadTimeMillis();
@KeepForSdk
long currentTimeMillis();
@KeepForSdk
long elapsedRealtime();
@KeepForSdk
long nanoTime();
}

View File

@@ -0,0 +1,157 @@
package com.google.android.gms.common.util;
import C.w;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import s.f;
import s.j;
@KeepForSdk
/* loaded from: classes3.dex */
public final class CollectionUtils {
private CollectionUtils() {
}
@KeepForSdk
public static boolean isEmpty(Collection<?> collection) {
if (collection == null) {
return true;
}
return collection.isEmpty();
}
@KeepForSdk
@Deprecated
public static <T> List<T> listOf() {
return Collections.EMPTY_LIST;
}
@KeepForSdk
public static <K, V> Map<K, V> mapOf(K k4, V v3, K k5, V v4, K k6, V v5) {
Map zza = zza(3, false);
zza.put(k4, v3);
zza.put(k5, v4);
zza.put(k6, v5);
return Collections.unmodifiableMap(zza);
}
@KeepForSdk
public static <K, V> Map<K, V> mapOfKeyValueArrays(K[] kArr, V[] vArr) {
int length = kArr.length;
int length2 = vArr.length;
if (length != length2) {
throw new IllegalArgumentException(w.k("Key and values array lengths not equal: ", length, length2, " != "));
}
if (length == 0) {
return Collections.EMPTY_MAP;
}
if (length == 1) {
return Collections.singletonMap(kArr[0], vArr[0]);
}
Map zza = zza(length, false);
for (int i = 0; i < kArr.length; i++) {
zza.put(kArr[i], vArr[i]);
}
return Collections.unmodifiableMap(zza);
}
@KeepForSdk
public static <T> Set<T> mutableSetOfWithSize(int i) {
return i == 0 ? new f(0) : zzb(i, true);
}
@KeepForSdk
@Deprecated
public static <T> Set<T> setOf(T t2, T t4, T t5) {
Set zzb = zzb(3, false);
zzb.add(t2);
zzb.add(t4);
zzb.add(t5);
return Collections.unmodifiableSet(zzb);
}
/* JADX WARN: Type inference failed for: r2v3, types: [java.util.Map, s.j] */
private static Map zza(int i, boolean z3) {
return i <= 256 ? new j(i) : new HashMap(i, 1.0f);
}
private static Set zzb(int i, boolean z3) {
return i <= (true != z3 ? 256 : 128) ? new f(i) : new HashSet(i, true != z3 ? 1.0f : 0.75f);
}
@KeepForSdk
@Deprecated
public static <T> List<T> listOf(T t2) {
return Collections.singletonList(t2);
}
@KeepForSdk
@Deprecated
public static <T> List<T> listOf(T... tArr) {
int length = tArr.length;
if (length == 0) {
return listOf();
}
if (length != 1) {
return Collections.unmodifiableList(Arrays.asList(tArr));
}
return listOf(tArr[0]);
}
@KeepForSdk
public static <K, V> Map<K, V> mapOf(K k4, V v3, K k5, V v4, K k6, V v5, K k7, V v6, K k8, V v7, K k9, V v8) {
Map zza = zza(6, false);
zza.put(k4, v3);
zza.put(k5, v4);
zza.put(k6, v5);
zza.put(k7, v6);
zza.put(k8, v7);
zza.put(k9, v8);
return Collections.unmodifiableMap(zza);
}
@KeepForSdk
@Deprecated
public static <T> Set<T> setOf(T... tArr) {
int length = tArr.length;
if (length == 0) {
return Collections.EMPTY_SET;
}
if (length == 1) {
return Collections.singleton(tArr[0]);
}
if (length == 2) {
T t2 = tArr[0];
T t4 = tArr[1];
Set zzb = zzb(2, false);
zzb.add(t2);
zzb.add(t4);
return Collections.unmodifiableSet(zzb);
}
if (length == 3) {
return setOf(tArr[0], tArr[1], tArr[2]);
}
if (length != 4) {
Set zzb2 = zzb(length, false);
Collections.addAll(zzb2, tArr);
return Collections.unmodifiableSet(zzb2);
}
T t5 = tArr[0];
T t6 = tArr[1];
T t7 = tArr[2];
T t8 = tArr[3];
Set zzb3 = zzb(4, false);
zzb3.add(t5);
zzb3.add(t6);
zzb3.add(t7);
zzb3.add(t8);
return Collections.unmodifiableSet(zzb3);
}
}

View File

@@ -0,0 +1,24 @@
package com.google.android.gms.common.util;
import android.content.Context;
import android.util.Log;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
@KeepForSdk
/* loaded from: classes3.dex */
public final class CrashUtils {
private static final String[] zza = {"android.", "com.android.", "dalvik.", "java.", "javax."};
@KeepForSdk
public static boolean addDynamiteErrorToDropBox(Context context, Throwable th) {
try {
Preconditions.checkNotNull(context);
Preconditions.checkNotNull(th);
return false;
} catch (Exception e4) {
Log.e("CrashUtils", "Error adding exception to DropBox!", e4);
return false;
}
}
}

View File

@@ -0,0 +1,33 @@
package com.google.android.gms.common.util;
import android.database.CharArrayBuffer;
import android.graphics.Bitmap;
import android.text.TextUtils;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.io.ByteArrayOutputStream;
@KeepForSdk
/* loaded from: classes3.dex */
public final class DataUtils {
@KeepForSdk
public static void copyStringToBuffer(String str, CharArrayBuffer charArrayBuffer) {
if (TextUtils.isEmpty(str)) {
charArrayBuffer.sizeCopied = 0;
return;
}
char[] cArr = charArrayBuffer.data;
if (cArr == null || cArr.length < str.length()) {
charArrayBuffer.data = str.toCharArray();
} else {
str.getChars(0, str.length(), charArrayBuffer.data, 0);
}
charArrayBuffer.sizeCopied = str.length();
}
@KeepForSdk
public static byte[] loadImageBytes(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
}
}

View File

@@ -0,0 +1,38 @@
package com.google.android.gms.common.util;
import android.os.SystemClock;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public class DefaultClock implements Clock {
private static final DefaultClock zza = new DefaultClock();
private DefaultClock() {
}
@KeepForSdk
public static Clock getInstance() {
return zza;
}
@Override // com.google.android.gms.common.util.Clock
public final long currentThreadTimeMillis() {
return SystemClock.currentThreadTimeMillis();
}
@Override // com.google.android.gms.common.util.Clock
public final long currentTimeMillis() {
return System.currentTimeMillis();
}
@Override // com.google.android.gms.common.util.Clock
public final long elapsedRealtime() {
return SystemClock.elapsedRealtime();
}
@Override // com.google.android.gms.common.util.Clock
public final long nanoTime() {
return System.nanoTime();
}
}

View File

@@ -0,0 +1,200 @@
package com.google.android.gms.common.util;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import com.google.android.gms.common.GooglePlayServicesUtilLight;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public final class DeviceProperties {
private static Boolean zza;
private static Boolean zzb;
private static Boolean zzc;
private static Boolean zzd;
private static Boolean zze;
private static Boolean zzf;
private static Boolean zzg;
private static Boolean zzh;
private static Boolean zzi;
private static Boolean zzj;
private static Boolean zzk;
private static Boolean zzl;
private DeviceProperties() {
}
@KeepForSdk
public static boolean isAuto(Context context) {
PackageManager packageManager = context.getPackageManager();
if (zzi == null) {
boolean z3 = false;
if (PlatformVersion.isAtLeastO() && packageManager.hasSystemFeature("android.hardware.type.automotive")) {
z3 = true;
}
zzi = Boolean.valueOf(z3);
}
return zzi.booleanValue();
}
@KeepForSdk
public static boolean isBstar(Context context) {
if (zzl == null) {
boolean z3 = false;
if (PlatformVersion.isAtLeastR() && context.getPackageManager().hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")) {
z3 = true;
}
zzl = Boolean.valueOf(z3);
}
return zzl.booleanValue();
}
@KeepForSdk
public static boolean isLatchsky(Context context) {
if (zzf == null) {
PackageManager packageManager = context.getPackageManager();
boolean z3 = false;
if (packageManager.hasSystemFeature("com.google.android.feature.services_updater") && packageManager.hasSystemFeature("cn.google.services")) {
z3 = true;
}
zzf = Boolean.valueOf(z3);
}
return zzf.booleanValue();
}
@KeepForSdk
public static boolean isPhone(Context context) {
if (zza == null) {
boolean z3 = false;
if (!isTablet(context) && !isWearable(context) && !zzb(context)) {
if (zzh == null) {
zzh = Boolean.valueOf(context.getPackageManager().hasSystemFeature("org.chromium.arc"));
}
if (!zzh.booleanValue() && !isAuto(context) && !isTv(context)) {
if (zzk == null) {
zzk = Boolean.valueOf(context.getPackageManager().hasSystemFeature("com.google.android.feature.AMATI_EXPERIENCE"));
}
if (!zzk.booleanValue() && !isBstar(context)) {
z3 = true;
}
}
}
zza = Boolean.valueOf(z3);
}
return zza.booleanValue();
}
@KeepForSdk
public static boolean isSevenInchTablet(Context context) {
return zzc(context.getResources());
}
@KeepForSdk
@TargetApi(21)
public static boolean isSidewinder(Context context) {
return zza(context);
}
@KeepForSdk
public static boolean isTablet(Context context) {
return isTablet(context.getResources());
}
@KeepForSdk
public static boolean isTv(Context context) {
PackageManager packageManager = context.getPackageManager();
if (zzj == null) {
boolean z3 = true;
if (!packageManager.hasSystemFeature("com.google.android.tv") && !packageManager.hasSystemFeature("android.hardware.type.television") && !packageManager.hasSystemFeature("android.software.leanback")) {
z3 = false;
}
zzj = Boolean.valueOf(z3);
}
return zzj.booleanValue();
}
@KeepForSdk
public static boolean isUserBuild() {
int i = GooglePlayServicesUtilLight.GOOGLE_PLAY_SERVICES_VERSION_CODE;
return "user".equals(Build.TYPE);
}
@KeepForSdk
@TargetApi(20)
public static boolean isWearable(Context context) {
PackageManager packageManager = context.getPackageManager();
if (zzd == null) {
boolean z3 = false;
if (PlatformVersion.isAtLeastKitKatWatch() && packageManager.hasSystemFeature("android.hardware.type.watch")) {
z3 = true;
}
zzd = Boolean.valueOf(z3);
}
return zzd.booleanValue();
}
@KeepForSdk
@TargetApi(26)
public static boolean isWearableWithoutPlayStore(Context context) {
if (isWearable(context) && !PlatformVersion.isAtLeastN()) {
return true;
}
if (zza(context)) {
return !PlatformVersion.isAtLeastO() || PlatformVersion.isAtLeastR();
}
return false;
}
@TargetApi(21)
public static boolean zza(Context context) {
if (zze == null) {
boolean z3 = false;
if (PlatformVersion.isAtLeastLollipop() && context.getPackageManager().hasSystemFeature("cn.google")) {
z3 = true;
}
zze = Boolean.valueOf(z3);
}
return zze.booleanValue();
}
public static boolean zzb(Context context) {
if (zzg == null) {
boolean z3 = true;
if (!context.getPackageManager().hasSystemFeature("android.hardware.type.iot") && !context.getPackageManager().hasSystemFeature("android.hardware.type.embedded")) {
z3 = false;
}
zzg = Boolean.valueOf(z3);
}
return zzg.booleanValue();
}
public static boolean zzc(Resources resources) {
boolean z3 = false;
if (resources == null) {
return false;
}
if (zzc == null) {
Configuration configuration = resources.getConfiguration();
if ((configuration.screenLayout & 15) <= 3 && configuration.smallestScreenWidthDp >= 600) {
z3 = true;
}
zzc = Boolean.valueOf(z3);
}
return zzc.booleanValue();
}
@KeepForSdk
public static boolean isTablet(Resources resources) {
if (resources == null) {
return false;
}
if (zzb == null) {
zzb = Boolean.valueOf((resources.getConfiguration().screenLayout & 15) > 3 || zzc(resources));
}
return zzb.booleanValue();
}
}

View File

@@ -0,0 +1,11 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target({ElementType.TYPE})
@KeepForSdk
/* loaded from: classes3.dex */
public @interface DynamiteApi {
}

View File

@@ -0,0 +1,46 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public final class GmsVersion {
@KeepForSdk
public static final int VERSION_HALLOUMI = 4100000;
@KeepForSdk
public static final int VERSION_JARLSBERG = 4300000;
@KeepForSdk
public static final int VERSION_KENAFA = 4400000;
@KeepForSdk
public static final int VERSION_LONGHORN = 5000000;
@KeepForSdk
public static final int VERSION_MANCHEGO = 6000000;
@KeepForSdk
public static final int VERSION_ORLA = 7000000;
@KeepForSdk
public static final int VERSION_PARMESAN = 7200000;
@KeepForSdk
public static final int VERSION_QUESO = 7500000;
@KeepForSdk
public static final int VERSION_REBLOCHON = 7800000;
@KeepForSdk
public static final int VERSION_SAGA = 8000000;
private GmsVersion() {
}
@KeepForSdk
public static boolean isAtLeastFenacho(int i) {
return i >= 3200000;
}
}

View File

@@ -0,0 +1,62 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.ShowFirstParty;
import kotlin.UByte;
@ShowFirstParty
@KeepForSdk
/* loaded from: classes3.dex */
public class Hex {
private static final char[] zza = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
private static final char[] zzb = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
@KeepForSdk
public static String bytesToStringLowercase(byte[] bArr) {
int length = bArr.length;
char[] cArr = new char[length + length];
int i = 0;
for (byte b4 : bArr) {
int i4 = b4 & UByte.MAX_VALUE;
int i5 = i + 1;
char[] cArr2 = zzb;
cArr[i] = cArr2[i4 >>> 4];
i += 2;
cArr[i5] = cArr2[b4 & 15];
}
return new String(cArr);
}
@KeepForSdk
public static String bytesToStringUppercase(byte[] bArr) {
return bytesToStringUppercase(bArr, false);
}
@KeepForSdk
public static byte[] stringToBytes(String str) throws IllegalArgumentException {
int length = str.length();
if (length % 2 != 0) {
throw new IllegalArgumentException("Hex string has odd number of characters");
}
byte[] bArr = new byte[length / 2];
int i = 0;
while (i < length) {
int i4 = i + 2;
bArr[i / 2] = (byte) Integer.parseInt(str.substring(i, i4), 16);
i = i4;
}
return bArr;
}
@KeepForSdk
public static String bytesToStringUppercase(byte[] bArr, boolean z3) {
int length = bArr.length;
StringBuilder sb = new StringBuilder(length + length);
for (int i = 0; i < length && (!z3 || i != length - 1 || (bArr[i] & UByte.MAX_VALUE) != 0); i++) {
char[] cArr = zza;
sb.append(cArr[(bArr[i] & 240) >>> 4]);
sb.append(cArr[bArr[i] & 15]);
}
return sb.toString();
}
}

View File

@@ -0,0 +1,60 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import kotlin.UByte;
@KeepForSdk
/* loaded from: classes3.dex */
public final class HexDumpUtils {
@KeepForSdk
public static String dump(byte[] bArr, int i, int i4, boolean z3) {
int length;
if (bArr == null || (length = bArr.length) == 0 || i < 0 || i4 <= 0 || i + i4 > length) {
return null;
}
StringBuilder sb = new StringBuilder(((i4 + 15) / 16) * (z3 ? 75 : 57));
int i5 = i4;
int i6 = 0;
int i7 = 0;
while (i5 > 0) {
if (i6 == 0) {
if (i4 < 65536) {
sb.append(String.format("%04X:", Integer.valueOf(i)));
} else {
sb.append(String.format("%08X:", Integer.valueOf(i)));
}
i7 = i;
} else if (i6 == 8) {
sb.append(" -");
}
sb.append(String.format(" %02X", Integer.valueOf(bArr[i] & UByte.MAX_VALUE)));
i5--;
i6++;
if (z3 && (i6 == 16 || i5 == 0)) {
int i8 = 16 - i6;
if (i8 > 0) {
for (int i9 = 0; i9 < i8; i9++) {
sb.append(" ");
}
}
if (i8 >= 8) {
sb.append(" ");
}
sb.append(" ");
for (int i10 = 0; i10 < i6; i10++) {
char c4 = (char) bArr[i7 + i10];
if (c4 < ' ' || c4 > '~') {
c4 = '.';
}
sb.append(c4);
}
}
if (i6 == 16 || i5 == 0) {
sb.append('\n');
i6 = 0;
}
i++;
}
return sb.toString();
}
}

View File

@@ -0,0 +1,60 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.internal.common.zzo;
import com.google.android.gms.internal.common.zzx;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLDecoder;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import kotlin.text.Typography;
@KeepForSdk
/* loaded from: classes3.dex */
public class HttpUtils {
private static final Pattern zza = Pattern.compile("^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$");
private static final Pattern zzb = Pattern.compile("^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");
private static final Pattern zzc = Pattern.compile("^((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)$");
private HttpUtils() {
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r0v0, types: [java.util.Map] */
/* JADX WARN: Type inference failed for: r0v1, types: [java.util.Map<java.lang.String, java.lang.String>] */
/* JADX WARN: Type inference failed for: r0v2, types: [java.util.HashMap] */
@KeepForSdk
public static Map<String, String> parse(URI uri, String str) {
?? r02 = Collections.EMPTY_MAP;
String rawQuery = uri.getRawQuery();
if (rawQuery != null && rawQuery.length() > 0) {
r02 = new HashMap();
zzx zzc2 = zzx.zzc(zzo.zzb('='));
Iterator it = zzx.zzc(zzo.zzb(Typography.amp)).zzb().zzd(rawQuery).iterator();
while (it.hasNext()) {
List zzf = zzc2.zzf((String) it.next());
if (zzf.isEmpty() || zzf.size() > 2) {
throw new IllegalArgumentException("bad parameter");
}
r02.put(zza((String) zzf.get(0), str), zzf.size() == 2 ? zza((String) zzf.get(1), str) : null);
}
}
return r02;
}
private static String zza(String str, String str2) {
if (str2 == null) {
str2 = "ISO-8859-1";
}
try {
return URLDecoder.decode(str, str2);
} catch (UnsupportedEncodingException e4) {
throw new IllegalArgumentException(e4);
}
}
}

View File

@@ -0,0 +1,116 @@
package com.google.android.gms.common.util;
import android.os.ParcelFileDescriptor;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.internal.ShowFirstParty;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import kotlin.UByte;
import kotlin.io.ConstantsKt;
@ShowFirstParty
@KeepForSdk
@Deprecated
/* loaded from: classes3.dex */
public final class IOUtils {
private IOUtils() {
}
@KeepForSdk
public static void closeQuietly(ParcelFileDescriptor parcelFileDescriptor) {
if (parcelFileDescriptor != null) {
try {
parcelFileDescriptor.close();
} catch (IOException unused) {
}
}
}
@KeepForSdk
@Deprecated
public static long copyStream(InputStream inputStream, OutputStream outputStream) throws IOException {
return copyStream(inputStream, outputStream, false, 1024);
}
@KeepForSdk
public static boolean isGzipByteBuffer(byte[] bArr) {
if (bArr.length > 1) {
if ((((bArr[1] & UByte.MAX_VALUE) << 8) | (bArr[0] & UByte.MAX_VALUE)) == 35615) {
return true;
}
}
return false;
}
@KeepForSdk
@Deprecated
public static byte[] readInputStreamFully(InputStream inputStream) throws IOException {
return readInputStreamFully(inputStream, true);
}
@KeepForSdk
@Deprecated
public static byte[] toByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Preconditions.checkNotNull(inputStream);
Preconditions.checkNotNull(byteArrayOutputStream);
byte[] bArr = new byte[ConstantsKt.DEFAULT_BLOCK_SIZE];
while (true) {
int read = inputStream.read(bArr);
if (read == -1) {
return byteArrayOutputStream.toByteArray();
}
byteArrayOutputStream.write(bArr, 0, read);
}
}
@KeepForSdk
public static void closeQuietly(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException unused) {
}
}
}
@KeepForSdk
@Deprecated
public static long copyStream(InputStream inputStream, OutputStream outputStream, boolean z3, int i) throws IOException {
byte[] bArr = new byte[i];
long j4 = 0;
while (true) {
try {
int read = inputStream.read(bArr, 0, i);
if (read == -1) {
break;
}
j4 += read;
outputStream.write(bArr, 0, read);
} catch (Throwable th) {
if (z3) {
closeQuietly(inputStream);
closeQuietly(outputStream);
}
throw th;
}
}
if (z3) {
closeQuietly(inputStream);
closeQuietly(outputStream);
}
return j4;
}
@KeepForSdk
@Deprecated
public static byte[] readInputStreamFully(InputStream inputStream, boolean z3) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
copyStream(inputStream, byteArrayOutputStream, z3, 1024);
return byteArrayOutputStream.toByteArray();
}
}

View File

@@ -0,0 +1,153 @@
package com.google.android.gms.common.util;
import android.text.TextUtils;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import com.google.firebase.sessions.settings.RemoteSettings;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@VisibleForTesting
@KeepForSdk
/* loaded from: classes3.dex */
public final class JsonUtils {
private static final Pattern zza = Pattern.compile("\\\\.");
private static final Pattern zzb = Pattern.compile("[\\\\\"/\b\f\n\r\t]");
private JsonUtils() {
}
@KeepForSdk
public static boolean areJsonValuesEquivalent(Object obj, Object obj2) {
if (obj == null && obj2 == null) {
return true;
}
if (obj == null || obj2 == null) {
return false;
}
if ((obj instanceof JSONObject) && (obj2 instanceof JSONObject)) {
JSONObject jSONObject = (JSONObject) obj;
JSONObject jSONObject2 = (JSONObject) obj2;
if (jSONObject.length() != jSONObject2.length()) {
return false;
}
Iterator<String> keys = jSONObject.keys();
while (keys.hasNext()) {
String next = keys.next();
if (!jSONObject2.has(next)) {
return false;
}
try {
Preconditions.checkNotNull(next);
} catch (JSONException unused) {
}
if (!areJsonValuesEquivalent(jSONObject.get(next), jSONObject2.get(next))) {
return false;
}
}
return true;
}
if (!(obj instanceof JSONArray) || !(obj2 instanceof JSONArray)) {
return obj.equals(obj2);
}
JSONArray jSONArray = (JSONArray) obj;
JSONArray jSONArray2 = (JSONArray) obj2;
if (jSONArray.length() != jSONArray2.length()) {
return false;
}
for (int i = 0; i < jSONArray.length(); i++) {
if (!areJsonValuesEquivalent(jSONArray.get(i), jSONArray2.get(i))) {
return false;
}
}
return true;
}
@KeepForSdk
public static String escapeString(String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
Matcher matcher = zzb.matcher(str);
StringBuffer stringBuffer = null;
while (matcher.find()) {
if (stringBuffer == null) {
stringBuffer = new StringBuffer();
}
char charAt = matcher.group().charAt(0);
if (charAt == '\f') {
matcher.appendReplacement(stringBuffer, "\\\\f");
} else if (charAt == '\r') {
matcher.appendReplacement(stringBuffer, "\\\\r");
} else if (charAt == '\"') {
matcher.appendReplacement(stringBuffer, "\\\\\\\"");
} else if (charAt == '/') {
matcher.appendReplacement(stringBuffer, "\\\\/");
} else if (charAt != '\\') {
switch (charAt) {
case '\b':
matcher.appendReplacement(stringBuffer, "\\\\b");
break;
case '\t':
matcher.appendReplacement(stringBuffer, "\\\\t");
break;
case '\n':
matcher.appendReplacement(stringBuffer, "\\\\n");
break;
}
} else {
matcher.appendReplacement(stringBuffer, "\\\\\\\\");
}
}
if (stringBuffer == null) {
return str;
}
matcher.appendTail(stringBuffer);
return stringBuffer.toString();
}
@KeepForSdk
public static String unescapeString(String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
String zza2 = zzc.zza(str);
Matcher matcher = zza.matcher(zza2);
StringBuffer stringBuffer = null;
while (matcher.find()) {
if (stringBuffer == null) {
stringBuffer = new StringBuffer();
}
char charAt = matcher.group().charAt(1);
if (charAt == '\"') {
matcher.appendReplacement(stringBuffer, "\"");
} else if (charAt == '/') {
matcher.appendReplacement(stringBuffer, RemoteSettings.FORWARD_SLASH_STRING);
} else if (charAt == '\\') {
matcher.appendReplacement(stringBuffer, "\\\\");
} else if (charAt == 'b') {
matcher.appendReplacement(stringBuffer, "\b");
} else if (charAt == 'f') {
matcher.appendReplacement(stringBuffer, "\f");
} else if (charAt == 'n') {
matcher.appendReplacement(stringBuffer, "\n");
} else if (charAt == 'r') {
matcher.appendReplacement(stringBuffer, "\r");
} else {
if (charAt != 't') {
throw new IllegalStateException("Found an escaped character that should never be.");
}
matcher.appendReplacement(stringBuffer, "\t");
}
}
if (stringBuffer == null) {
return zza2;
}
matcher.appendTail(stringBuffer);
return stringBuffer.toString();
}
}

View File

@@ -0,0 +1,32 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.util.HashMap;
@KeepForSdk
/* loaded from: classes3.dex */
public class MapUtils {
@KeepForSdk
public static void writeStringMapToJson(StringBuilder sb, HashMap<String, String> hashMap) {
sb.append("{");
boolean z3 = true;
for (String str : hashMap.keySet()) {
if (!z3) {
sb.append(",");
}
String str2 = hashMap.get(str);
sb.append("\"");
sb.append(str);
sb.append("\":");
if (str2 == null) {
sb.append("null");
} else {
sb.append("\"");
sb.append(str2);
sb.append("\"");
}
z3 = false;
}
sb.append("}");
}
}

View File

@@ -0,0 +1,39 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import kotlin.KotlinVersion;
@KeepForSdk
/* loaded from: classes3.dex */
public class MurmurHash3 {
private MurmurHash3() {
}
@KeepForSdk
public static int murmurhash3_x86_32(byte[] bArr, int i, int i4, int i5) {
int i6 = (i4 & (-4)) + i;
while (i < i6) {
int i7 = ((bArr[i] & KotlinVersion.MAX_COMPONENT_VALUE) | ((bArr[i + 1] & KotlinVersion.MAX_COMPONENT_VALUE) << 8) | ((bArr[i + 2] & KotlinVersion.MAX_COMPONENT_VALUE) << 16) | (bArr[i + 3] << 24)) * (-862048943);
int i8 = i5 ^ (((i7 << 15) | (i7 >>> 17)) * 461845907);
i5 = (((i8 >>> 19) | (i8 << 13)) * 5) - 430675100;
i += 4;
}
int i9 = i4 & 3;
if (i9 != 1) {
if (i9 != 2) {
r3 = i9 == 3 ? (bArr[i6 + 2] & KotlinVersion.MAX_COMPONENT_VALUE) << 16 : 0;
int i10 = i5 ^ i4;
int i11 = (i10 ^ (i10 >>> 16)) * (-2048144789);
int i12 = (i11 ^ (i11 >>> 13)) * (-1028477387);
return i12 ^ (i12 >>> 16);
}
r3 |= (bArr[i6 + 1] & KotlinVersion.MAX_COMPONENT_VALUE) << 8;
}
int i13 = ((bArr[i6] & KotlinVersion.MAX_COMPONENT_VALUE) | r3) * (-862048943);
i5 ^= ((i13 >>> 17) | (i13 << 15)) * 461845907;
int i102 = i5 ^ i4;
int i112 = (i102 ^ (i102 >>> 16)) * (-2048144789);
int i122 = (i112 ^ (i112 >>> 13)) * (-1028477387);
return i122 ^ (i122 >>> 16);
}
}

View File

@@ -0,0 +1,11 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
@VisibleForTesting
@KeepForSdk
/* loaded from: classes3.dex */
public class NumberUtils {
private NumberUtils() {
}
}

View File

@@ -0,0 +1,144 @@
package com.google.android.gms.common.util;
import K.b;
import android.os.Build;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.util.Locale;
import kotlin.jvm.internal.Intrinsics;
@VisibleForTesting
@KeepForSdk
/* loaded from: classes3.dex */
public final class PlatformVersion {
private PlatformVersion() {
}
@KeepForSdk
public static boolean isAtLeastHoneycomb() {
return true;
}
@KeepForSdk
public static boolean isAtLeastHoneycombMR1() {
return true;
}
@KeepForSdk
public static boolean isAtLeastIceCreamSandwich() {
return true;
}
@KeepForSdk
public static boolean isAtLeastIceCreamSandwichMR1() {
return true;
}
@KeepForSdk
public static boolean isAtLeastJellyBean() {
return true;
}
@KeepForSdk
public static boolean isAtLeastJellyBeanMR1() {
return true;
}
@KeepForSdk
public static boolean isAtLeastJellyBeanMR2() {
return true;
}
@KeepForSdk
public static boolean isAtLeastKitKat() {
return true;
}
@KeepForSdk
public static boolean isAtLeastKitKatWatch() {
return true;
}
@KeepForSdk
public static boolean isAtLeastLollipop() {
return true;
}
@KeepForSdk
public static boolean isAtLeastLollipopMR1() {
return true;
}
@KeepForSdk
public static boolean isAtLeastM() {
return true;
}
@KeepForSdk
public static boolean isAtLeastN() {
return true;
}
@KeepForSdk
public static boolean isAtLeastO() {
return true;
}
@KeepForSdk
public static boolean isAtLeastP() {
return true;
}
@KeepForSdk
public static boolean isAtLeastQ() {
return true;
}
@KeepForSdk
public static boolean isAtLeastR() {
return Build.VERSION.SDK_INT >= 30;
}
@KeepForSdk
public static boolean isAtLeastS() {
return Build.VERSION.SDK_INT >= 31;
}
@KeepForSdk
public static boolean isAtLeastSv2() {
return Build.VERSION.SDK_INT >= 32;
}
@KeepForSdk
public static boolean isAtLeastT() {
return Build.VERSION.SDK_INT >= 33 || Build.VERSION.CODENAME.charAt(0) == 'T';
}
@KeepForSdk
public static boolean isAtLeastU() {
if (!isAtLeastT()) {
return false;
}
int i = b.f966a;
int i4 = Build.VERSION.SDK_INT;
if (i4 >= 34) {
return true;
}
if (i4 >= 33) {
String buildCodename = Build.VERSION.CODENAME;
Intrinsics.checkNotNullExpressionValue(buildCodename, "CODENAME");
Intrinsics.checkNotNullParameter("UpsideDownCake", "codename");
Intrinsics.checkNotNullParameter(buildCodename, "buildCodename");
if (!Intrinsics.areEqual("REL", buildCodename)) {
Locale locale = Locale.ROOT;
String upperCase = buildCodename.toUpperCase(locale);
Intrinsics.checkNotNullExpressionValue(upperCase, "this as java.lang.String).toUpperCase(Locale.ROOT)");
String upperCase2 = "UpsideDownCake".toUpperCase(locale);
Intrinsics.checkNotNullExpressionValue(upperCase2, "this as java.lang.String).toUpperCase(Locale.ROOT)");
if (upperCase.compareTo(upperCase2) >= 0) {
return true;
}
}
}
return false;
}
}

View File

@@ -0,0 +1,10 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public interface Predicate<T> {
@KeepForSdk
boolean apply(T t2);
}

View File

@@ -0,0 +1,64 @@
package com.google.android.gms.common.util;
import android.os.Process;
import android.os.StrictMode;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
@KeepForSdk
/* loaded from: classes3.dex */
public class ProcessUtils {
private static String zza;
private static int zzb;
private ProcessUtils() {
}
@KeepForSdk
public static String getMyProcessName() {
BufferedReader bufferedReader;
if (zza == null) {
int i = zzb;
if (i == 0) {
i = Process.myPid();
zzb = i;
}
String str = null;
str = null;
str = null;
BufferedReader bufferedReader2 = null;
if (i > 0) {
try {
String str2 = "/proc/" + i + "/cmdline";
StrictMode.ThreadPolicy allowThreadDiskReads = StrictMode.allowThreadDiskReads();
try {
bufferedReader = new BufferedReader(new FileReader(str2));
try {
String readLine = bufferedReader.readLine();
Preconditions.checkNotNull(readLine);
str = readLine.trim();
} catch (IOException unused) {
} catch (Throwable th) {
th = th;
bufferedReader2 = bufferedReader;
IOUtils.closeQuietly(bufferedReader2);
throw th;
}
} finally {
StrictMode.setThreadPolicy(allowThreadDiskReads);
}
} catch (IOException unused2) {
bufferedReader = null;
} catch (Throwable th2) {
th = th2;
}
IOUtils.closeQuietly(bufferedReader);
}
zza = str;
}
return zza;
}
}

View File

@@ -0,0 +1,8 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public @interface RetainForClient {
}

View File

@@ -0,0 +1,25 @@
package com.google.android.gms.common.util;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.api.Scope;
import com.google.android.gms.common.internal.Preconditions;
import java.util.Set;
@KeepForSdk
/* loaded from: classes3.dex */
public final class ScopeUtil {
private ScopeUtil() {
}
@KeepForSdk
public static String[] toScopeString(Set<Scope> set) {
Preconditions.checkNotNull(set, "scopes can't be null.");
Scope[] scopeArr = (Scope[]) set.toArray(new Scope[set.size()]);
Preconditions.checkNotNull(scopeArr, "scopes can't be null.");
String[] strArr = new String[scopeArr.length];
for (int i = 0; i < scopeArr.length; i++) {
strArr[i] = scopeArr[i].getScopeUri();
}
return strArr;
}
}

View File

@@ -0,0 +1,18 @@
package com.google.android.gms.common.util;
import android.content.Context;
import android.content.SharedPreferences;
import com.google.android.gms.common.annotation.KeepForSdk;
@KeepForSdk
/* loaded from: classes3.dex */
public class SharedPreferencesUtils {
private SharedPreferencesUtils() {
}
@KeepForSdk
@Deprecated
public static void publishWorldReadableSharedPreferences(Context context, SharedPreferences.Editor editor, String str) {
throw new IllegalStateException("world-readable shared preferences should only be used by apk");
}
}

View File

@@ -0,0 +1,30 @@
package com.google.android.gms.common.util;
import android.text.TextUtils;
import com.google.android.gms.common.annotation.KeepForSdk;
import java.util.regex.Pattern;
import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf;
@VisibleForTesting
@KeepForSdk
/* loaded from: classes3.dex */
public class Strings {
private static final Pattern zza = Pattern.compile("\\$\\{(.*?)\\}");
private Strings() {
}
@KeepForSdk
public static String emptyToNull(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
return str;
}
@EnsuresNonNullIf(expression = {"#1"}, result = false)
@KeepForSdk
public static boolean isEmptyOrWhitespace(String str) {
return str == null || str.trim().isEmpty();
}
}

View File

@@ -0,0 +1,37 @@
package com.google.android.gms.common.util;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.pm.PackageManager;
import android.util.Log;
import com.google.android.gms.common.GoogleSignatureVerifier;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.wrappers.Wrappers;
@KeepForSdk
/* loaded from: classes3.dex */
public final class UidVerifier {
private UidVerifier() {
}
@KeepForSdk
public static boolean isGooglePlayServicesUid(Context context, int i) {
if (!uidHasPackageName(context, i, "com.google.android.gms")) {
return false;
}
try {
return GoogleSignatureVerifier.getInstance(context).isGooglePublicSignedPackage(context.getPackageManager().getPackageInfo("com.google.android.gms", 64));
} catch (PackageManager.NameNotFoundException unused) {
if (Log.isLoggable("UidVerifier", 3)) {
Log.d("UidVerifier", "Package manager can't find google play services package, defaulting to false");
}
return false;
}
}
@KeepForSdk
@TargetApi(19)
public static boolean uidHasPackageName(Context context, int i, String str) {
return Wrappers.packageManager(context).zza(i, str);
}
}

View File

@@ -0,0 +1,5 @@
package com.google.android.gms.common.util;
/* loaded from: classes3.dex */
public @interface VisibleForTesting {
}

View File

@@ -0,0 +1,307 @@
package com.google.android.gms.common.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.WorkSource;
import android.util.Log;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.wrappers.Wrappers;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
@KeepForSdk
/* loaded from: classes3.dex */
public class WorkSourceUtil {
private static final int zza;
private static final Method zzb;
private static final Method zzc;
private static final Method zzd;
private static final Method zze;
private static final Method zzf;
private static final Method zzg;
private static final Method zzh;
private static final Method zzi;
/* JADX WARN: Can't wrap try/catch for region: R(24:1|(2:2|3)|4|(21:49|50|7|8|9|10|11|12|13|(12:41|42|16|(9:36|37|19|(6:31|32|22|(2:27|28)|24|25)|21|22|(0)|24|25)|18|19|(0)|21|22|(0)|24|25)|15|16|(0)|18|19|(0)|21|22|(0)|24|25)|6|7|8|9|10|11|12|13|(0)|15|16|(0)|18|19|(0)|21|22|(0)|24|25) */
/* JADX WARN: Can't wrap try/catch for region: R(25:1|2|3|4|(21:49|50|7|8|9|10|11|12|13|(12:41|42|16|(9:36|37|19|(6:31|32|22|(2:27|28)|24|25)|21|22|(0)|24|25)|18|19|(0)|21|22|(0)|24|25)|15|16|(0)|18|19|(0)|21|22|(0)|24|25)|6|7|8|9|10|11|12|13|(0)|15|16|(0)|18|19|(0)|21|22|(0)|24|25) */
/* JADX WARN: Code restructure failed: missing block: B:46:0x0045, code lost:
r4 = null;
*/
/* JADX WARN: Code restructure failed: missing block: B:48:0x0037, code lost:
r4 = null;
*/
/* JADX WARN: Removed duplicated region for block: B:27:0x009c A[EXC_TOP_SPLITTER, SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:31:0x007c A[EXC_TOP_SPLITTER, SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:36:0x0064 A[EXC_TOP_SPLITTER, SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:41:0x004e A[EXC_TOP_SPLITTER, SYNTHETIC] */
static {
/*
java.lang.String r0 = "add"
java.lang.Class r1 = java.lang.Integer.TYPE
java.lang.Class<android.os.WorkSource> r2 = android.os.WorkSource.class
int r3 = android.os.Process.myUid()
com.google.android.gms.common.util.WorkSourceUtil.zza = r3
r3 = 0
java.lang.Class[] r4 = new java.lang.Class[]{r1} // Catch: java.lang.Exception -> L16
java.lang.reflect.Method r4 = r2.getMethod(r0, r4) // Catch: java.lang.Exception -> L16
goto L17
L16:
r4 = r3
L17:
com.google.android.gms.common.util.WorkSourceUtil.zzb = r4
boolean r4 = com.google.android.gms.common.util.PlatformVersion.isAtLeastJellyBeanMR2()
java.lang.Class<java.lang.String> r5 = java.lang.String.class
if (r4 == 0) goto L2a
java.lang.Class[] r4 = new java.lang.Class[]{r1, r5} // Catch: java.lang.Exception -> L2a
java.lang.reflect.Method r0 = r2.getMethod(r0, r4) // Catch: java.lang.Exception -> L2a
goto L2b
L2a:
r0 = r3
L2b:
com.google.android.gms.common.util.WorkSourceUtil.zzc = r0
r0 = 0
java.lang.String r4 = "size"
java.lang.Class[] r6 = new java.lang.Class[r0] // Catch: java.lang.Exception -> L37
java.lang.reflect.Method r4 = r2.getMethod(r4, r6) // Catch: java.lang.Exception -> L37
goto L38
L37:
r4 = r3
L38:
com.google.android.gms.common.util.WorkSourceUtil.zzd = r4
java.lang.Class[] r4 = new java.lang.Class[]{r1} // Catch: java.lang.Exception -> L45
java.lang.String r6 = "get"
java.lang.reflect.Method r4 = r2.getMethod(r6, r4) // Catch: java.lang.Exception -> L45
goto L46
L45:
r4 = r3
L46:
com.google.android.gms.common.util.WorkSourceUtil.zze = r4
boolean r4 = com.google.android.gms.common.util.PlatformVersion.isAtLeastJellyBeanMR2()
if (r4 == 0) goto L59
java.lang.Class[] r4 = new java.lang.Class[]{r1} // Catch: java.lang.Exception -> L59
java.lang.String r6 = "getName"
java.lang.reflect.Method r4 = r2.getMethod(r6, r4) // Catch: java.lang.Exception -> L59
goto L5a
L59:
r4 = r3
L5a:
com.google.android.gms.common.util.WorkSourceUtil.zzf = r4
boolean r4 = com.google.android.gms.common.util.PlatformVersion.isAtLeastP()
java.lang.String r6 = "WorkSourceUtil"
if (r4 == 0) goto L73
java.lang.String r4 = "createWorkChain"
java.lang.Class[] r7 = new java.lang.Class[r0] // Catch: java.lang.Exception -> L6d
java.lang.reflect.Method r4 = r2.getMethod(r4, r7) // Catch: java.lang.Exception -> L6d
goto L74
L6d:
r4 = move-exception
java.lang.String r7 = "Missing WorkChain API createWorkChain"
android.util.Log.w(r6, r7, r4)
L73:
r4 = r3
L74:
com.google.android.gms.common.util.WorkSourceUtil.zzg = r4
boolean r4 = com.google.android.gms.common.util.PlatformVersion.isAtLeastP()
if (r4 == 0) goto L93
java.lang.String r4 = "android.os.WorkSource$WorkChain"
java.lang.Class r4 = java.lang.Class.forName(r4) // Catch: java.lang.Exception -> L8d
java.lang.Class[] r1 = new java.lang.Class[]{r1, r5} // Catch: java.lang.Exception -> L8d
java.lang.String r5 = "addNode"
java.lang.reflect.Method r1 = r4.getMethod(r5, r1) // Catch: java.lang.Exception -> L8d
goto L94
L8d:
r1 = move-exception
java.lang.String r4 = "Missing WorkChain class"
android.util.Log.w(r6, r4, r1)
L93:
r1 = r3
L94:
com.google.android.gms.common.util.WorkSourceUtil.zzh = r1
boolean r1 = com.google.android.gms.common.util.PlatformVersion.isAtLeastP()
if (r1 == 0) goto La8
java.lang.String r1 = "isEmpty"
java.lang.Class[] r0 = new java.lang.Class[r0] // Catch: java.lang.Exception -> La8
java.lang.reflect.Method r3 = r2.getMethod(r1, r0) // Catch: java.lang.Exception -> La8
r0 = 1
r3.setAccessible(r0) // Catch: java.lang.Exception -> La8
La8:
com.google.android.gms.common.util.WorkSourceUtil.zzi = r3
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.common.util.WorkSourceUtil.<clinit>():void");
}
private WorkSourceUtil() {
}
@KeepForSdk
public static void add(WorkSource workSource, int i, String str) {
Method method = zzc;
if (method != null) {
if (str == null) {
str = "";
}
try {
method.invoke(workSource, Integer.valueOf(i), str);
return;
} catch (Exception e4) {
Log.wtf("WorkSourceUtil", "Unable to assign blame through WorkSource", e4);
return;
}
}
Method method2 = zzb;
if (method2 != null) {
try {
method2.invoke(workSource, Integer.valueOf(i));
} catch (Exception e5) {
Log.wtf("WorkSourceUtil", "Unable to assign blame through WorkSource", e5);
}
}
}
@KeepForSdk
public static WorkSource fromPackage(Context context, String str) {
if (context != null && context.getPackageManager() != null && str != null) {
try {
ApplicationInfo applicationInfo = Wrappers.packageManager(context).getApplicationInfo(str, 0);
if (applicationInfo == null) {
Log.e("WorkSourceUtil", "Could not get applicationInfo from package: ".concat(str));
return null;
}
int i = applicationInfo.uid;
WorkSource workSource = new WorkSource();
add(workSource, i, str);
return workSource;
} catch (PackageManager.NameNotFoundException unused) {
Log.e("WorkSourceUtil", "Could not find package: ".concat(str));
}
}
return null;
}
@KeepForSdk
public static WorkSource fromPackageAndModuleExperimentalPi(Context context, String str, String str2) {
Method method;
if (context == null || context.getPackageManager() == null || str2 == null || str == null) {
Log.w("WorkSourceUtil", "Unexpected null arguments");
return null;
}
int i = -1;
try {
ApplicationInfo applicationInfo = Wrappers.packageManager(context).getApplicationInfo(str, 0);
if (applicationInfo == null) {
Log.e("WorkSourceUtil", "Could not get applicationInfo from package: ".concat(str));
} else {
i = applicationInfo.uid;
}
} catch (PackageManager.NameNotFoundException unused) {
Log.e("WorkSourceUtil", "Could not find package: ".concat(str));
}
if (i < 0) {
return null;
}
WorkSource workSource = new WorkSource();
Method method2 = zzg;
if (method2 == null || (method = zzh) == null) {
add(workSource, i, str);
} else {
try {
Object invoke = method2.invoke(workSource, new Object[0]);
int i4 = zza;
if (i != i4) {
method.invoke(invoke, Integer.valueOf(i), str);
}
method.invoke(invoke, Integer.valueOf(i4), str2);
} catch (Exception e4) {
Log.w("WorkSourceUtil", "Unable to assign chained blame through WorkSource", e4);
}
}
return workSource;
}
@KeepForSdk
public static int get(WorkSource workSource, int i) {
Method method = zze;
if (method == null) {
return 0;
}
try {
Object invoke = method.invoke(workSource, Integer.valueOf(i));
Preconditions.checkNotNull(invoke);
return ((Integer) invoke).intValue();
} catch (Exception e4) {
Log.wtf("WorkSourceUtil", "Unable to assign blame through WorkSource", e4);
return 0;
}
}
@KeepForSdk
public static String getName(WorkSource workSource, int i) {
Method method = zzf;
if (method == null) {
return null;
}
try {
return (String) method.invoke(workSource, Integer.valueOf(i));
} catch (Exception e4) {
Log.wtf("WorkSourceUtil", "Unable to assign blame through WorkSource", e4);
return null;
}
}
@KeepForSdk
public static List<String> getNames(WorkSource workSource) {
ArrayList arrayList = new ArrayList();
int size = workSource == null ? 0 : size(workSource);
if (size != 0) {
for (int i = 0; i < size; i++) {
String name = getName(workSource, i);
if (!Strings.isEmptyOrWhitespace(name)) {
Preconditions.checkNotNull(name);
arrayList.add(name);
}
}
}
return arrayList;
}
@KeepForSdk
public static boolean hasWorkSourcePermission(Context context) {
return (context == null || context.getPackageManager() == null || Wrappers.packageManager(context).checkPermission("android.permission.UPDATE_DEVICE_STATS", context.getPackageName()) != 0) ? false : true;
}
@KeepForSdk
public static boolean isEmpty(WorkSource workSource) {
Method method = zzi;
if (method != null) {
try {
Object invoke = method.invoke(workSource, new Object[0]);
Preconditions.checkNotNull(invoke);
return ((Boolean) invoke).booleanValue();
} catch (Exception e4) {
Log.e("WorkSourceUtil", "Unable to check WorkSource emptiness", e4);
}
}
return size(workSource) == 0;
}
@KeepForSdk
public static int size(WorkSource workSource) {
Method method = zzd;
if (method != null) {
try {
Object invoke = method.invoke(workSource, new Object[0]);
Preconditions.checkNotNull(invoke);
return ((Integer) invoke).intValue();
} catch (Exception e4) {
Log.wtf("WorkSourceUtil", "Unable to assign blame through WorkSource", e4);
}
}
return 0;
}
}

View File

@@ -0,0 +1,23 @@
package com.google.android.gms.common.util.concurrent;
import android.os.Handler;
import android.os.Looper;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.internal.common.zzi;
import java.util.concurrent.Executor;
@KeepForSdk
/* loaded from: classes3.dex */
public class HandlerExecutor implements Executor {
private final Handler zza;
@KeepForSdk
public HandlerExecutor(Looper looper) {
this.zza = new zzi(looper);
}
@Override // java.util.concurrent.Executor
public final void execute(Runnable runnable) {
this.zza.post(runnable);
}
}

View File

@@ -0,0 +1,26 @@
package com.google.android.gms.common.util.concurrent;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
@KeepForSdk
/* loaded from: classes3.dex */
public class NamedThreadFactory implements ThreadFactory {
private final String zza;
private final ThreadFactory zzb = Executors.defaultThreadFactory();
@KeepForSdk
public NamedThreadFactory(String str) {
Preconditions.checkNotNull(str, "Name must not be null");
this.zza = str;
}
@Override // java.util.concurrent.ThreadFactory
public final Thread newThread(Runnable runnable) {
Thread newThread = this.zzb.newThread(new zza(runnable, 0));
newThread.setName(this.zza);
return newThread;
}
}

View File

@@ -0,0 +1,28 @@
package com.google.android.gms.common.util.concurrent;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
@KeepForSdk
/* loaded from: classes3.dex */
public class NumberedThreadFactory implements ThreadFactory {
private final String zza;
private final AtomicInteger zzb = new AtomicInteger();
private final ThreadFactory zzc = Executors.defaultThreadFactory();
@KeepForSdk
public NumberedThreadFactory(String str) {
Preconditions.checkNotNull(str, "Name must not be null");
this.zza = str;
}
@Override // java.util.concurrent.ThreadFactory
public final Thread newThread(Runnable runnable) {
Thread newThread = this.zzc.newThread(new zza(runnable, 0));
newThread.setName(this.zza + "[" + this.zzb.getAndIncrement() + "]");
return newThread;
}
}

View File

@@ -0,0 +1,18 @@
package com.google.android.gms.common.util.concurrent;
import android.os.Process;
/* loaded from: classes3.dex */
final class zza implements Runnable {
private final Runnable zza;
public zza(Runnable runnable, int i) {
this.zza = runnable;
}
@Override // java.lang.Runnable
public final void run() {
Process.setThreadPriority(0);
this.zza.run();
}
}

View File

@@ -0,0 +1,11 @@
package com.google.android.gms.common.util;
/* loaded from: classes3.dex */
public final class zza {
public static int zza(int i) {
if (i == -1) {
return -1;
}
return i / 1000;
}
}

View File

@@ -0,0 +1,10 @@
package com.google.android.gms.common.util;
import android.os.Looper;
/* loaded from: classes3.dex */
public final class zzb {
public static boolean zza() {
return Looper.getMainLooper() == Looper.myLooper();
}
}

View File

@@ -0,0 +1,46 @@
package com.google.android.gms.common.util;
import android.text.TextUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* loaded from: classes3.dex */
final class zzc {
private static final Pattern zza = Pattern.compile("\\\\u[0-9a-fA-F]{4}");
public static String zza(String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
Matcher matcher = zza.matcher(str);
int i = 0;
StringBuilder sb = null;
while (matcher.find()) {
if (sb == null) {
sb = new StringBuilder();
}
int start = matcher.start();
int i4 = start;
while (i4 >= 0 && str.charAt(i4) == '\\') {
i4--;
}
if ((start - i4) % 2 != 0) {
int parseInt = Integer.parseInt(matcher.group().substring(2), 16);
sb.append((CharSequence) str, i, matcher.start());
if (parseInt == 92) {
sb.append("\\\\");
} else {
sb.append(Character.toChars(parseInt));
}
i = matcher.end();
}
}
if (sb == null) {
return str;
}
if (i < matcher.regionEnd()) {
sb.append((CharSequence) str, i, matcher.regionEnd());
}
return sb.toString();
}
}