- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
173 lines
8.4 KiB
Java
173 lines
8.4 KiB
Java
package com.google.firebase.crashlytics.internal.common;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Build;
|
|
import com.google.firebase.crashlytics.internal.Logger;
|
|
import com.google.firebase.crashlytics.internal.common.InstallIdProvider;
|
|
import com.google.firebase.installations.FirebaseInstallationsApi;
|
|
import java.util.Locale;
|
|
import java.util.Objects;
|
|
import java.util.UUID;
|
|
import java.util.regex.Pattern;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public class IdManager implements InstallIdProvider {
|
|
public final Context appContext;
|
|
public final String appIdentifier;
|
|
public final DataCollectionArbiter dataCollectionArbiter;
|
|
public final FirebaseInstallationsApi firebaseInstallations;
|
|
public InstallIdProvider.InstallIds installIds;
|
|
public final InstallerPackageNameProvider installerPackageNameProvider;
|
|
public static final Pattern ID_PATTERN = Pattern.compile("[^\\p{Alnum}]");
|
|
public static final String FORWARD_SLASH_REGEX = Pattern.quote("/");
|
|
|
|
public String getAppIdentifier() {
|
|
return this.appIdentifier;
|
|
}
|
|
|
|
public IdManager(Context context, String str, FirebaseInstallationsApi firebaseInstallationsApi, DataCollectionArbiter dataCollectionArbiter) {
|
|
if (context == null) {
|
|
throw new IllegalArgumentException("appContext must not be null");
|
|
}
|
|
if (str == null) {
|
|
throw new IllegalArgumentException("appIdentifier must not be null");
|
|
}
|
|
this.appContext = context;
|
|
this.appIdentifier = str;
|
|
this.firebaseInstallations = firebaseInstallationsApi;
|
|
this.dataCollectionArbiter = dataCollectionArbiter;
|
|
this.installerPackageNameProvider = new InstallerPackageNameProvider();
|
|
}
|
|
|
|
public static String formatId(String str) {
|
|
return ID_PATTERN.matcher(str).replaceAll("").toLowerCase(Locale.US);
|
|
}
|
|
|
|
@Override // com.google.firebase.crashlytics.internal.common.InstallIdProvider
|
|
public synchronized InstallIdProvider.InstallIds getInstallIds() {
|
|
if (!shouldRefresh()) {
|
|
return this.installIds;
|
|
}
|
|
Logger.getLogger().v("Determining Crashlytics installation ID...");
|
|
SharedPreferences sharedPrefs = CommonUtils.getSharedPrefs(this.appContext);
|
|
String string = sharedPrefs.getString("firebase.installation.id", null);
|
|
Logger.getLogger().v("Cached Firebase Installation ID: " + string);
|
|
if (this.dataCollectionArbiter.isAutomaticDataCollectionEnabled()) {
|
|
FirebaseInstallationId fetchTrueFid = fetchTrueFid(false);
|
|
Logger.getLogger().v("Fetched Firebase Installation ID: " + fetchTrueFid.getFid());
|
|
if (fetchTrueFid.getFid() == null) {
|
|
fetchTrueFid = new FirebaseInstallationId(string == null ? createSyntheticFid() : string, null);
|
|
}
|
|
if (Objects.equals(fetchTrueFid.getFid(), string)) {
|
|
this.installIds = InstallIdProvider.InstallIds.create(readCachedCrashlyticsInstallId(sharedPrefs), fetchTrueFid);
|
|
} else {
|
|
this.installIds = InstallIdProvider.InstallIds.create(createAndCacheCrashlyticsInstallId(fetchTrueFid.getFid(), sharedPrefs), fetchTrueFid);
|
|
}
|
|
} else if (isSyntheticFid(string)) {
|
|
this.installIds = InstallIdProvider.InstallIds.createWithoutFid(readCachedCrashlyticsInstallId(sharedPrefs));
|
|
} else {
|
|
this.installIds = InstallIdProvider.InstallIds.createWithoutFid(createAndCacheCrashlyticsInstallId(createSyntheticFid(), sharedPrefs));
|
|
}
|
|
Logger.getLogger().v("Install IDs: " + this.installIds);
|
|
return this.installIds;
|
|
}
|
|
|
|
public final boolean shouldRefresh() {
|
|
InstallIdProvider.InstallIds installIds = this.installIds;
|
|
return installIds == null || (installIds.getFirebaseInstallationId() == null && this.dataCollectionArbiter.isAutomaticDataCollectionEnabled());
|
|
}
|
|
|
|
public static String createSyntheticFid() {
|
|
return "SYN_" + UUID.randomUUID().toString();
|
|
}
|
|
|
|
public static boolean isSyntheticFid(String str) {
|
|
return str != null && str.startsWith("SYN_");
|
|
}
|
|
|
|
public final String readCachedCrashlyticsInstallId(SharedPreferences sharedPreferences) {
|
|
return sharedPreferences.getString("crashlytics.installation.id", null);
|
|
}
|
|
|
|
/* JADX WARN: Can't wrap try/catch for region: R(9:0|1|(7:13|14|4|5|6|7|8)|3|4|5|6|7|8) */
|
|
/* JADX WARN: Code restructure failed: missing block: B:11:0x002e, code lost:
|
|
|
|
r1 = move-exception;
|
|
*/
|
|
/* JADX WARN: Code restructure failed: missing block: B:12:0x002f, code lost:
|
|
|
|
com.google.firebase.crashlytics.internal.Logger.getLogger().w("Error getting Firebase installation id.", r1);
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public com.google.firebase.crashlytics.internal.common.FirebaseInstallationId fetchTrueFid(boolean r5) {
|
|
/*
|
|
r4 = this;
|
|
r0 = 0
|
|
if (r5 == 0) goto L1f
|
|
com.google.firebase.installations.FirebaseInstallationsApi r5 = r4.firebaseInstallations // Catch: java.lang.Exception -> L15
|
|
r1 = 0
|
|
com.google.android.gms.tasks.Task r5 = r5.getToken(r1) // Catch: java.lang.Exception -> L15
|
|
java.lang.Object r5 = com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread(r5) // Catch: java.lang.Exception -> L15
|
|
com.google.firebase.installations.InstallationTokenResult r5 = (com.google.firebase.installations.InstallationTokenResult) r5 // Catch: java.lang.Exception -> L15
|
|
java.lang.String r5 = r5.getToken() // Catch: java.lang.Exception -> L15
|
|
goto L20
|
|
L15:
|
|
r5 = move-exception
|
|
com.google.firebase.crashlytics.internal.Logger r1 = com.google.firebase.crashlytics.internal.Logger.getLogger()
|
|
java.lang.String r2 = "Error getting Firebase authentication token."
|
|
r1.w(r2, r5)
|
|
L1f:
|
|
r5 = r0
|
|
L20:
|
|
com.google.firebase.installations.FirebaseInstallationsApi r1 = r4.firebaseInstallations // Catch: java.lang.Exception -> L2e
|
|
com.google.android.gms.tasks.Task r1 = r1.getId() // Catch: java.lang.Exception -> L2e
|
|
java.lang.Object r1 = com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread(r1) // Catch: java.lang.Exception -> L2e
|
|
java.lang.String r1 = (java.lang.String) r1 // Catch: java.lang.Exception -> L2e
|
|
r0 = r1
|
|
goto L38
|
|
L2e:
|
|
r1 = move-exception
|
|
com.google.firebase.crashlytics.internal.Logger r2 = com.google.firebase.crashlytics.internal.Logger.getLogger()
|
|
java.lang.String r3 = "Error getting Firebase installation id."
|
|
r2.w(r3, r1)
|
|
L38:
|
|
com.google.firebase.crashlytics.internal.common.FirebaseInstallationId r1 = new com.google.firebase.crashlytics.internal.common.FirebaseInstallationId
|
|
r1.<init>(r0, r5)
|
|
return r1
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.crashlytics.internal.common.IdManager.fetchTrueFid(boolean):com.google.firebase.crashlytics.internal.common.FirebaseInstallationId");
|
|
}
|
|
|
|
public final synchronized String createAndCacheCrashlyticsInstallId(String str, SharedPreferences sharedPreferences) {
|
|
String formatId;
|
|
formatId = formatId(UUID.randomUUID().toString());
|
|
Logger.getLogger().v("Created new Crashlytics installation ID: " + formatId + " for FID: " + str);
|
|
sharedPreferences.edit().putString("crashlytics.installation.id", formatId).putString("firebase.installation.id", str).apply();
|
|
return formatId;
|
|
}
|
|
|
|
public String getOsDisplayVersionString() {
|
|
return removeForwardSlashesIn(Build.VERSION.RELEASE);
|
|
}
|
|
|
|
public String getOsBuildVersionString() {
|
|
return removeForwardSlashesIn(Build.VERSION.INCREMENTAL);
|
|
}
|
|
|
|
public String getModelName() {
|
|
return String.format(Locale.US, "%s/%s", removeForwardSlashesIn(Build.MANUFACTURER), removeForwardSlashesIn(Build.MODEL));
|
|
}
|
|
|
|
public final String removeForwardSlashesIn(String str) {
|
|
return str.replaceAll(FORWARD_SLASH_REGEX, "");
|
|
}
|
|
|
|
public String getInstallerPackageName() {
|
|
return this.installerPackageNameProvider.getInstallerPackageName(this.appContext);
|
|
}
|
|
}
|