Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.android.gms.measurement.AppMeasurement;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.annotations.DeferredApi;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.analytics.BlockingAnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.analytics.BreadcrumbAnalyticsEventReceiver;
|
||||
import com.google.firebase.crashlytics.internal.analytics.CrashlyticsOriginAnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.analytics.UnavailableAnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbHandler;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.DisabledBreadcrumbSource;
|
||||
import com.google.firebase.inject.Deferred;
|
||||
import com.google.firebase.inject.Provider;
|
||||
import com.google.firebase.messaging.ServiceStarter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnalyticsDeferredProxy {
|
||||
private final Deferred<AnalyticsConnector> analyticsConnectorDeferred;
|
||||
private volatile AnalyticsEventLogger analyticsEventLogger;
|
||||
private final List<BreadcrumbHandler> breadcrumbHandlerList;
|
||||
private volatile BreadcrumbSource breadcrumbSource;
|
||||
|
||||
public AnalyticsDeferredProxy(Deferred<AnalyticsConnector> deferred) {
|
||||
this(deferred, new DisabledBreadcrumbSource(), new UnavailableAnalyticsEventLogger());
|
||||
}
|
||||
|
||||
private void init() {
|
||||
this.analyticsConnectorDeferred.whenAvailable(new a(this));
|
||||
}
|
||||
|
||||
public /* synthetic */ void lambda$getAnalyticsEventLogger$1(String str, Bundle bundle) {
|
||||
this.analyticsEventLogger.logEvent(str, bundle);
|
||||
}
|
||||
|
||||
public /* synthetic */ void lambda$getDeferredBreadcrumbSource$0(BreadcrumbHandler breadcrumbHandler) {
|
||||
synchronized (this) {
|
||||
try {
|
||||
if (this.breadcrumbSource instanceof DisabledBreadcrumbSource) {
|
||||
this.breadcrumbHandlerList.add(breadcrumbHandler);
|
||||
}
|
||||
this.breadcrumbSource.registerBreadcrumbHandler(breadcrumbHandler);
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public /* synthetic */ void lambda$init$2(Provider provider) {
|
||||
Logger.getLogger().d("AnalyticsConnector now available.");
|
||||
AnalyticsConnector analyticsConnector = (AnalyticsConnector) provider.get();
|
||||
CrashlyticsOriginAnalyticsEventLogger crashlyticsOriginAnalyticsEventLogger = new CrashlyticsOriginAnalyticsEventLogger(analyticsConnector);
|
||||
CrashlyticsAnalyticsListener crashlyticsAnalyticsListener = new CrashlyticsAnalyticsListener();
|
||||
if (subscribeToAnalyticsEvents(analyticsConnector, crashlyticsAnalyticsListener) == null) {
|
||||
Logger.getLogger().w("Could not register Firebase Analytics listener; a listener is already registered.");
|
||||
return;
|
||||
}
|
||||
Logger.getLogger().d("Registered Firebase Analytics listener.");
|
||||
BreadcrumbAnalyticsEventReceiver breadcrumbAnalyticsEventReceiver = new BreadcrumbAnalyticsEventReceiver();
|
||||
BlockingAnalyticsEventLogger blockingAnalyticsEventLogger = new BlockingAnalyticsEventLogger(crashlyticsOriginAnalyticsEventLogger, ServiceStarter.ERROR_UNKNOWN, TimeUnit.MILLISECONDS);
|
||||
synchronized (this) {
|
||||
try {
|
||||
Iterator<BreadcrumbHandler> it = this.breadcrumbHandlerList.iterator();
|
||||
while (it.hasNext()) {
|
||||
breadcrumbAnalyticsEventReceiver.registerBreadcrumbHandler(it.next());
|
||||
}
|
||||
crashlyticsAnalyticsListener.setBreadcrumbEventReceiver(breadcrumbAnalyticsEventReceiver);
|
||||
crashlyticsAnalyticsListener.setCrashlyticsOriginEventReceiver(blockingAnalyticsEventLogger);
|
||||
this.breadcrumbSource = breadcrumbAnalyticsEventReceiver;
|
||||
this.analyticsEventLogger = blockingAnalyticsEventLogger;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@DeferredApi
|
||||
private static AnalyticsConnector.AnalyticsConnectorHandle subscribeToAnalyticsEvents(AnalyticsConnector analyticsConnector, CrashlyticsAnalyticsListener crashlyticsAnalyticsListener) {
|
||||
AnalyticsConnector.AnalyticsConnectorHandle registerAnalyticsConnectorListener = analyticsConnector.registerAnalyticsConnectorListener("clx", crashlyticsAnalyticsListener);
|
||||
if (registerAnalyticsConnectorListener != null) {
|
||||
return registerAnalyticsConnectorListener;
|
||||
}
|
||||
Logger.getLogger().d("Could not register AnalyticsConnectorListener with Crashlytics origin.");
|
||||
AnalyticsConnector.AnalyticsConnectorHandle registerAnalyticsConnectorListener2 = analyticsConnector.registerAnalyticsConnectorListener(AppMeasurement.CRASH_ORIGIN, crashlyticsAnalyticsListener);
|
||||
if (registerAnalyticsConnectorListener2 != null) {
|
||||
Logger.getLogger().w("A new version of the Google Analytics for Firebase SDK is now available. For improved performance and compatibility with Crashlytics, please update to the latest version.");
|
||||
}
|
||||
return registerAnalyticsConnectorListener2;
|
||||
}
|
||||
|
||||
public AnalyticsEventLogger getAnalyticsEventLogger() {
|
||||
return new a(this);
|
||||
}
|
||||
|
||||
public BreadcrumbSource getDeferredBreadcrumbSource() {
|
||||
return new a(this);
|
||||
}
|
||||
|
||||
public AnalyticsDeferredProxy(Deferred<AnalyticsConnector> deferred, BreadcrumbSource breadcrumbSource, AnalyticsEventLogger analyticsEventLogger) {
|
||||
this.analyticsConnectorDeferred = deferred;
|
||||
this.breadcrumbSource = breadcrumbSource;
|
||||
this.breadcrumbHandlerList = new ArrayList();
|
||||
this.analyticsEventLogger = analyticsEventLogger;
|
||||
init();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class BuildConfig {
|
||||
public static final String BUILD_TYPE = "release";
|
||||
public static final boolean DEBUG = false;
|
||||
public static final String LIBRARY_PACKAGE_NAME = "com.google.firebase.crashlytics";
|
||||
public static final String VERSION_NAME = "18.6.0";
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventReceiver;
|
||||
import java.util.Locale;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
class CrashlyticsAnalyticsListener implements AnalyticsConnector.AnalyticsConnectorListener {
|
||||
static final String CRASHLYTICS_ORIGIN = "clx";
|
||||
static final String EVENT_NAME_KEY = "name";
|
||||
static final String EVENT_ORIGIN_KEY = "_o";
|
||||
static final String EVENT_PARAMS_KEY = "params";
|
||||
private AnalyticsEventReceiver breadcrumbEventReceiver;
|
||||
private AnalyticsEventReceiver crashlyticsOriginEventReceiver;
|
||||
|
||||
private static void notifyEventReceiver(AnalyticsEventReceiver analyticsEventReceiver, String str, Bundle bundle) {
|
||||
if (analyticsEventReceiver == null) {
|
||||
return;
|
||||
}
|
||||
analyticsEventReceiver.onEvent(str, bundle);
|
||||
}
|
||||
|
||||
private void notifyEventReceivers(String str, Bundle bundle) {
|
||||
notifyEventReceiver(CRASHLYTICS_ORIGIN.equals(bundle.getString(EVENT_ORIGIN_KEY)) ? this.crashlyticsOriginEventReceiver : this.breadcrumbEventReceiver, str, bundle);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.analytics.connector.AnalyticsConnector.AnalyticsConnectorListener
|
||||
public void onMessageTriggered(int i, Bundle bundle) {
|
||||
String string;
|
||||
Logger logger = Logger.getLogger();
|
||||
Locale locale = Locale.US;
|
||||
logger.v("Analytics listener received message. ID: " + i + ", Extras: " + bundle);
|
||||
if (bundle == null || (string = bundle.getString("name")) == null) {
|
||||
return;
|
||||
}
|
||||
Bundle bundle2 = bundle.getBundle(EVENT_PARAMS_KEY);
|
||||
if (bundle2 == null) {
|
||||
bundle2 = new Bundle();
|
||||
}
|
||||
notifyEventReceivers(string, bundle2);
|
||||
}
|
||||
|
||||
public void setBreadcrumbEventReceiver(AnalyticsEventReceiver analyticsEventReceiver) {
|
||||
this.breadcrumbEventReceiver = analyticsEventReceiver;
|
||||
}
|
||||
|
||||
public void setCrashlyticsOriginEventReceiver(AnalyticsEventReceiver analyticsEventReceiver) {
|
||||
this.crashlyticsOriginEventReceiver = analyticsEventReceiver;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.components.Component;
|
||||
import com.google.firebase.components.ComponentContainer;
|
||||
import com.google.firebase.components.ComponentRegistrar;
|
||||
import com.google.firebase.components.Dependency;
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
|
||||
import com.google.firebase.heartbeatinfo.b;
|
||||
import com.google.firebase.installations.FirebaseInstallationsApi;
|
||||
import com.google.firebase.platforminfo.LibraryVersionComponent;
|
||||
import com.google.firebase.remoteconfig.interop.FirebaseRemoteConfigInterop;
|
||||
import com.google.firebase.sessions.api.FirebaseSessionsDependencies;
|
||||
import com.google.firebase.sessions.api.SessionSubscriber;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsRegistrar implements ComponentRegistrar {
|
||||
private static final String LIBRARY_NAME = "fire-cls";
|
||||
|
||||
static {
|
||||
FirebaseSessionsDependencies.INSTANCE.addDependency(SessionSubscriber.Name.CRASHLYTICS);
|
||||
}
|
||||
|
||||
public FirebaseCrashlytics buildCrashlytics(ComponentContainer componentContainer) {
|
||||
return FirebaseCrashlytics.init((FirebaseApp) componentContainer.get(FirebaseApp.class), (FirebaseInstallationsApi) componentContainer.get(FirebaseInstallationsApi.class), componentContainer.getDeferred(CrashlyticsNativeComponent.class), componentContainer.getDeferred(AnalyticsConnector.class), componentContainer.getDeferred(FirebaseRemoteConfigInterop.class));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.components.ComponentRegistrar
|
||||
public List<Component<?>> getComponents() {
|
||||
return Arrays.asList(Component.builder(FirebaseCrashlytics.class).name(LIBRARY_NAME).add(Dependency.required((Class<?>) FirebaseApp.class)).add(Dependency.required((Class<?>) FirebaseInstallationsApi.class)).add(Dependency.deferred((Class<?>) CrashlyticsNativeComponent.class)).add(Dependency.deferred((Class<?>) AnalyticsConnector.class)).add(Dependency.deferred((Class<?>) FirebaseRemoteConfigInterop.class)).factory(new b(this, 2)).eagerInDefaultApp().build(), LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CustomKeysAndValues {
|
||||
final Map<String, String> keysAndValues;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Builder {
|
||||
private Map<String, String> keysAndValues = new HashMap();
|
||||
|
||||
public CustomKeysAndValues build() {
|
||||
return new CustomKeysAndValues(this);
|
||||
}
|
||||
|
||||
public Builder putBoolean(String str, boolean z3) {
|
||||
this.keysAndValues.put(str, Boolean.toString(z3));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder putDouble(String str, double d4) {
|
||||
this.keysAndValues.put(str, Double.toString(d4));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder putFloat(String str, float f2) {
|
||||
this.keysAndValues.put(str, Float.toString(f2));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder putInt(String str, int i) {
|
||||
this.keysAndValues.put(str, Integer.toString(i));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder putLong(String str, long j4) {
|
||||
this.keysAndValues.put(str, Long.toString(j4));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder putString(String str, String str2) {
|
||||
this.keysAndValues.put(str, str2);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public CustomKeysAndValues(Builder builder) {
|
||||
this.keysAndValues = builder.keysAndValues;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,173 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import com.google.android.gms.tasks.Continuation;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponentDeferredProxy;
|
||||
import com.google.firebase.crashlytics.internal.DevelopmentPlatformProvider;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.RemoteConfigDeferredProxy;
|
||||
import com.google.firebase.crashlytics.internal.common.AppData;
|
||||
import com.google.firebase.crashlytics.internal.common.BuildIdInfo;
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import com.google.firebase.crashlytics.internal.common.CrashlyticsAppQualitySessionsSubscriber;
|
||||
import com.google.firebase.crashlytics.internal.common.CrashlyticsCore;
|
||||
import com.google.firebase.crashlytics.internal.common.DataCollectionArbiter;
|
||||
import com.google.firebase.crashlytics.internal.common.ExecutorUtils;
|
||||
import com.google.firebase.crashlytics.internal.common.IdManager;
|
||||
import com.google.firebase.crashlytics.internal.network.HttpRequestFactory;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsController;
|
||||
import com.google.firebase.inject.Deferred;
|
||||
import com.google.firebase.installations.FirebaseInstallationsApi;
|
||||
import com.google.firebase.remoteconfig.interop.FirebaseRemoteConfigInterop;
|
||||
import com.google.firebase.sessions.api.FirebaseSessionsDependencies;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class FirebaseCrashlytics {
|
||||
static final int APP_EXCEPTION_CALLBACK_TIMEOUT_MS = 500;
|
||||
static final String FIREBASE_CRASHLYTICS_ANALYTICS_ORIGIN = "clx";
|
||||
static final String LEGACY_CRASH_ANALYTICS_ORIGIN = "crash";
|
||||
final CrashlyticsCore core;
|
||||
|
||||
private FirebaseCrashlytics(CrashlyticsCore crashlyticsCore) {
|
||||
this.core = crashlyticsCore;
|
||||
}
|
||||
|
||||
public static FirebaseCrashlytics getInstance() {
|
||||
FirebaseCrashlytics firebaseCrashlytics = (FirebaseCrashlytics) FirebaseApp.getInstance().get(FirebaseCrashlytics.class);
|
||||
if (firebaseCrashlytics != null) {
|
||||
return firebaseCrashlytics;
|
||||
}
|
||||
throw new NullPointerException("FirebaseCrashlytics component is not present.");
|
||||
}
|
||||
|
||||
public static FirebaseCrashlytics init(FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi, Deferred<CrashlyticsNativeComponent> deferred, Deferred<AnalyticsConnector> deferred2, Deferred<FirebaseRemoteConfigInterop> deferred3) {
|
||||
Context applicationContext = firebaseApp.getApplicationContext();
|
||||
String packageName = applicationContext.getPackageName();
|
||||
Logger.getLogger().i("Initializing Firebase Crashlytics " + CrashlyticsCore.getVersion() + " for " + packageName);
|
||||
FileStore fileStore = new FileStore(applicationContext);
|
||||
DataCollectionArbiter dataCollectionArbiter = new DataCollectionArbiter(firebaseApp);
|
||||
IdManager idManager = new IdManager(applicationContext, packageName, firebaseInstallationsApi, dataCollectionArbiter);
|
||||
CrashlyticsNativeComponentDeferredProxy crashlyticsNativeComponentDeferredProxy = new CrashlyticsNativeComponentDeferredProxy(deferred);
|
||||
AnalyticsDeferredProxy analyticsDeferredProxy = new AnalyticsDeferredProxy(deferred2);
|
||||
ExecutorService buildSingleThreadExecutorService = ExecutorUtils.buildSingleThreadExecutorService("Crashlytics Exception Handler");
|
||||
CrashlyticsAppQualitySessionsSubscriber crashlyticsAppQualitySessionsSubscriber = new CrashlyticsAppQualitySessionsSubscriber(dataCollectionArbiter, fileStore);
|
||||
FirebaseSessionsDependencies.register(crashlyticsAppQualitySessionsSubscriber);
|
||||
final CrashlyticsCore crashlyticsCore = new CrashlyticsCore(firebaseApp, idManager, crashlyticsNativeComponentDeferredProxy, dataCollectionArbiter, analyticsDeferredProxy.getDeferredBreadcrumbSource(), analyticsDeferredProxy.getAnalyticsEventLogger(), fileStore, buildSingleThreadExecutorService, crashlyticsAppQualitySessionsSubscriber, new RemoteConfigDeferredProxy(deferred3));
|
||||
String applicationId = firebaseApp.getOptions().getApplicationId();
|
||||
String mappingFileId = CommonUtils.getMappingFileId(applicationContext);
|
||||
List<BuildIdInfo> buildIdInfo = CommonUtils.getBuildIdInfo(applicationContext);
|
||||
Logger.getLogger().d("Mapping file ID is: " + mappingFileId);
|
||||
for (BuildIdInfo buildIdInfo2 : buildIdInfo) {
|
||||
Logger.getLogger().d("Build id for " + buildIdInfo2.getLibraryName() + " on " + buildIdInfo2.getArch() + ": " + buildIdInfo2.getBuildId());
|
||||
}
|
||||
try {
|
||||
AppData create = AppData.create(applicationContext, idManager, applicationId, mappingFileId, buildIdInfo, new DevelopmentPlatformProvider(applicationContext));
|
||||
Logger.getLogger().v("Installer package name is: " + create.installerPackageName);
|
||||
ExecutorService buildSingleThreadExecutorService2 = ExecutorUtils.buildSingleThreadExecutorService("com.google.firebase.crashlytics.startup");
|
||||
final SettingsController create2 = SettingsController.create(applicationContext, applicationId, idManager, new HttpRequestFactory(), create.versionCode, create.versionName, fileStore, dataCollectionArbiter);
|
||||
create2.loadSettingsData(buildSingleThreadExecutorService2).continueWith(buildSingleThreadExecutorService2, new Continuation<Void, Object>() { // from class: com.google.firebase.crashlytics.FirebaseCrashlytics.1
|
||||
@Override // com.google.android.gms.tasks.Continuation
|
||||
public Object then(Task<Void> task) throws Exception {
|
||||
if (task.isSuccessful()) {
|
||||
return null;
|
||||
}
|
||||
Logger.getLogger().e("Error fetching settings.", task.getException());
|
||||
return null;
|
||||
}
|
||||
});
|
||||
final boolean onPreExecute = crashlyticsCore.onPreExecute(create, create2);
|
||||
Tasks.call(buildSingleThreadExecutorService2, new Callable<Void>() { // from class: com.google.firebase.crashlytics.FirebaseCrashlytics.2
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
if (!onPreExecute) {
|
||||
return null;
|
||||
}
|
||||
crashlyticsCore.doBackgroundInitializationAsync(create2);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
return new FirebaseCrashlytics(crashlyticsCore);
|
||||
} catch (PackageManager.NameNotFoundException e4) {
|
||||
Logger.getLogger().e("Error retrieving app package info.", e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Boolean> checkForUnsentReports() {
|
||||
return this.core.checkForUnsentReports();
|
||||
}
|
||||
|
||||
public void deleteUnsentReports() {
|
||||
this.core.deleteUnsentReports();
|
||||
}
|
||||
|
||||
public boolean didCrashOnPreviousExecution() {
|
||||
return this.core.didCrashOnPreviousExecution();
|
||||
}
|
||||
|
||||
public void log(String str) {
|
||||
this.core.log(str);
|
||||
}
|
||||
|
||||
public void recordException(Throwable th) {
|
||||
if (th == null) {
|
||||
Logger.getLogger().w("A null value was passed to recordException. Ignoring.");
|
||||
} else {
|
||||
this.core.logException(th);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendUnsentReports() {
|
||||
this.core.sendUnsentReports();
|
||||
}
|
||||
|
||||
public void setCrashlyticsCollectionEnabled(boolean z3) {
|
||||
this.core.setCrashlyticsCollectionEnabled(Boolean.valueOf(z3));
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, boolean z3) {
|
||||
this.core.setCustomKey(str, Boolean.toString(z3));
|
||||
}
|
||||
|
||||
public void setCustomKeys(CustomKeysAndValues customKeysAndValues) {
|
||||
this.core.setCustomKeys(customKeysAndValues.keysAndValues);
|
||||
}
|
||||
|
||||
public void setUserId(String str) {
|
||||
this.core.setUserId(str);
|
||||
}
|
||||
|
||||
public void setCrashlyticsCollectionEnabled(Boolean bool) {
|
||||
this.core.setCrashlyticsCollectionEnabled(bool);
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, double d4) {
|
||||
this.core.setCustomKey(str, Double.toString(d4));
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, float f2) {
|
||||
this.core.setCustomKey(str, Float.toString(f2));
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, int i) {
|
||||
this.core.setCustomKey(str, Integer.toString(i));
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, long j4) {
|
||||
this.core.setCustomKey(str, Long.toString(j4));
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, String str2) {
|
||||
this.core.setCustomKey(str, str2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import com.google.firebase.Firebase;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u0000\"\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\u001a#\u0010\u0005\u001a\u00020\u0006*\u00020\u00012\u0017\u0010\u0007\u001a\u0013\u0012\u0004\u0012\u00020\t\u0012\u0004\u0012\u00020\u00060\b¢\u0006\u0002\b\n\"\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00028F¢\u0006\u0006\u001a\u0004\b\u0003\u0010\u0004¨\u0006\u000b"}, d2 = {"crashlytics", "Lcom/google/firebase/crashlytics/FirebaseCrashlytics;", "Lcom/google/firebase/Firebase;", "getCrashlytics", "(Lcom/google/firebase/Firebase;)Lcom/google/firebase/crashlytics/FirebaseCrashlytics;", "setCustomKeys", "", "init", "Lkotlin/Function1;", "Lcom/google/firebase/crashlytics/KeyValueBuilder;", "Lkotlin/ExtensionFunctionType;", "com.google.firebase-firebase-crashlytics"}, k = 2, mv = {1, 7, 1}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class FirebaseCrashlyticsKt {
|
||||
public static final FirebaseCrashlytics getCrashlytics(Firebase firebase) {
|
||||
Intrinsics.checkNotNullParameter(firebase, "<this>");
|
||||
FirebaseCrashlytics firebaseCrashlytics = FirebaseCrashlytics.getInstance();
|
||||
Intrinsics.checkNotNullExpressionValue(firebaseCrashlytics, "getInstance()");
|
||||
return firebaseCrashlytics;
|
||||
}
|
||||
|
||||
public static final void setCustomKeys(FirebaseCrashlytics firebaseCrashlytics, Function1<? super KeyValueBuilder, Unit> init) {
|
||||
Intrinsics.checkNotNullParameter(firebaseCrashlytics, "<this>");
|
||||
Intrinsics.checkNotNullParameter(init, "init");
|
||||
init.invoke(new KeyValueBuilder(firebaseCrashlytics));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
import com.google.firebase.components.Component;
|
||||
import com.google.firebase.components.ComponentRegistrar;
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
|
||||
@Keep
|
||||
@Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0001\u0018\u0000 \u00062\u00020\u0001:\u0001\u0006B\u0005¢\u0006\u0002\u0010\u0002J\u0012\u0010\u0003\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u00050\u0004H\u0016¨\u0006\u0007"}, d2 = {"Lcom/google/firebase/crashlytics/FirebaseCrashlyticsKtxRegistrar;", "Lcom/google/firebase/components/ComponentRegistrar;", "()V", "getComponents", "", "Lcom/google/firebase/components/Component;", "Companion", "com.google.firebase-firebase-crashlytics"}, k = 1, mv = {1, 7, 1}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class FirebaseCrashlyticsKtxRegistrar implements ComponentRegistrar {
|
||||
@Override // com.google.firebase.components.ComponentRegistrar
|
||||
public List<Component<?>> getComponents() {
|
||||
return CollectionsKt.emptyList();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u00002\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u000b\n\u0002\u0010\u0006\n\u0002\u0010\u0007\n\u0002\u0010\b\n\u0002\u0010\t\n\u0000\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\tJ\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\nJ\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\u000bJ\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\fJ\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\rJ\u0016\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0005\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\u0007R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u000e"}, d2 = {"Lcom/google/firebase/crashlytics/KeyValueBuilder;", "", "crashlytics", "Lcom/google/firebase/crashlytics/FirebaseCrashlytics;", "(Lcom/google/firebase/crashlytics/FirebaseCrashlytics;)V", "key", "", "", "value", "", "", "", "", "", "com.google.firebase-firebase-crashlytics"}, k = 1, mv = {1, 7, 1}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class KeyValueBuilder {
|
||||
private final FirebaseCrashlytics crashlytics;
|
||||
|
||||
public KeyValueBuilder(FirebaseCrashlytics crashlytics) {
|
||||
Intrinsics.checkNotNullParameter(crashlytics, "crashlytics");
|
||||
this.crashlytics = crashlytics;
|
||||
}
|
||||
|
||||
public final void key(String key, boolean value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
|
||||
public final void key(String key, double value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
|
||||
public final void key(String key, float value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
|
||||
public final void key(String key, int value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
|
||||
public final void key(String key, long value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
|
||||
public final void key(String key, String value) {
|
||||
Intrinsics.checkNotNullParameter(key, "key");
|
||||
Intrinsics.checkNotNullParameter(value, "value");
|
||||
this.crashlytics.setCustomKey(key, value);
|
||||
}
|
||||
}
|
||||
290
apk_decompiled/sources/com/google/firebase/crashlytics/R.java
Normal file
290
apk_decompiled/sources/com/google/firebase/crashlytics/R.java
Normal file
@@ -0,0 +1,290 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class R {
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class attr {
|
||||
public static final int alpha = 0x7f030031;
|
||||
public static final int coordinatorLayoutStyle = 0x7f03016c;
|
||||
public static final int font = 0x7f03022d;
|
||||
public static final int fontProviderAuthority = 0x7f03022f;
|
||||
public static final int fontProviderCerts = 0x7f030230;
|
||||
public static final int fontProviderFetchStrategy = 0x7f030231;
|
||||
public static final int fontProviderFetchTimeout = 0x7f030232;
|
||||
public static final int fontProviderPackage = 0x7f030233;
|
||||
public static final int fontProviderQuery = 0x7f030234;
|
||||
public static final int fontStyle = 0x7f030236;
|
||||
public static final int fontVariationSettings = 0x7f030237;
|
||||
public static final int fontWeight = 0x7f030238;
|
||||
public static final int keylines = 0x7f0302b5;
|
||||
public static final int layout_anchor = 0x7f0302c6;
|
||||
public static final int layout_anchorGravity = 0x7f0302c7;
|
||||
public static final int layout_behavior = 0x7f0302c9;
|
||||
public static final int layout_dodgeInsetEdges = 0x7f0302fa;
|
||||
public static final int layout_insetEdge = 0x7f030305;
|
||||
public static final int layout_keyline = 0x7f030306;
|
||||
public static final int statusBarBackground = 0x7f030488;
|
||||
public static final int ttcIndex = 0x7f030559;
|
||||
|
||||
private attr() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class color {
|
||||
public static final int notification_action_color_filter = 0x7f050315;
|
||||
public static final int notification_icon_bg_color = 0x7f050316;
|
||||
public static final int ripple_material_light = 0x7f050322;
|
||||
public static final int secondary_text_default_material_light = 0x7f050324;
|
||||
|
||||
private color() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class dimen {
|
||||
public static final int compat_button_inset_horizontal_material = 0x7f06006d;
|
||||
public static final int compat_button_inset_vertical_material = 0x7f06006e;
|
||||
public static final int compat_button_padding_horizontal_material = 0x7f06006f;
|
||||
public static final int compat_button_padding_vertical_material = 0x7f060070;
|
||||
public static final int compat_control_corner_material = 0x7f060071;
|
||||
public static final int compat_notification_large_icon_max_height = 0x7f060072;
|
||||
public static final int compat_notification_large_icon_max_width = 0x7f060073;
|
||||
public static final int notification_action_icon_size = 0x7f060385;
|
||||
public static final int notification_action_text_size = 0x7f060386;
|
||||
public static final int notification_big_circle_margin = 0x7f060387;
|
||||
public static final int notification_content_margin_start = 0x7f060388;
|
||||
public static final int notification_large_icon_height = 0x7f06038d;
|
||||
public static final int notification_large_icon_width = 0x7f06038e;
|
||||
public static final int notification_main_column_padding_top = 0x7f06038f;
|
||||
public static final int notification_media_narrow_margin = 0x7f060391;
|
||||
public static final int notification_right_icon_size = 0x7f060393;
|
||||
public static final int notification_right_side_padding_top = 0x7f060394;
|
||||
public static final int notification_small_icon_background_padding = 0x7f060395;
|
||||
public static final int notification_small_icon_size_as_large = 0x7f060396;
|
||||
public static final int notification_subtext_size = 0x7f060397;
|
||||
public static final int notification_top_pad = 0x7f06039b;
|
||||
public static final int notification_top_pad_large_text = 0x7f06039c;
|
||||
|
||||
private dimen() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class drawable {
|
||||
public static final int notification_action_background = 0x7f070181;
|
||||
public static final int notification_bg = 0x7f070182;
|
||||
public static final int notification_bg_low = 0x7f070183;
|
||||
public static final int notification_bg_low_normal = 0x7f070184;
|
||||
public static final int notification_bg_low_pressed = 0x7f070185;
|
||||
public static final int notification_bg_normal = 0x7f070186;
|
||||
public static final int notification_bg_normal_pressed = 0x7f070187;
|
||||
public static final int notification_icon_background = 0x7f070188;
|
||||
public static final int notification_template_icon_bg = 0x7f07018a;
|
||||
public static final int notification_template_icon_low_bg = 0x7f07018b;
|
||||
public static final int notification_tile_bg = 0x7f07018c;
|
||||
public static final int notify_panel_notification_icon_bg = 0x7f07018d;
|
||||
|
||||
private drawable() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class id {
|
||||
public static final int accessibility_action_clickable_span = 0x7f090013;
|
||||
public static final int accessibility_custom_action_0 = 0x7f090014;
|
||||
public static final int accessibility_custom_action_1 = 0x7f090015;
|
||||
public static final int accessibility_custom_action_10 = 0x7f090016;
|
||||
public static final int accessibility_custom_action_11 = 0x7f090017;
|
||||
public static final int accessibility_custom_action_12 = 0x7f090018;
|
||||
public static final int accessibility_custom_action_13 = 0x7f090019;
|
||||
public static final int accessibility_custom_action_14 = 0x7f09001a;
|
||||
public static final int accessibility_custom_action_15 = 0x7f09001b;
|
||||
public static final int accessibility_custom_action_16 = 0x7f09001c;
|
||||
public static final int accessibility_custom_action_17 = 0x7f09001d;
|
||||
public static final int accessibility_custom_action_18 = 0x7f09001e;
|
||||
public static final int accessibility_custom_action_19 = 0x7f09001f;
|
||||
public static final int accessibility_custom_action_2 = 0x7f090020;
|
||||
public static final int accessibility_custom_action_20 = 0x7f090021;
|
||||
public static final int accessibility_custom_action_21 = 0x7f090022;
|
||||
public static final int accessibility_custom_action_22 = 0x7f090023;
|
||||
public static final int accessibility_custom_action_23 = 0x7f090024;
|
||||
public static final int accessibility_custom_action_24 = 0x7f090025;
|
||||
public static final int accessibility_custom_action_25 = 0x7f090026;
|
||||
public static final int accessibility_custom_action_26 = 0x7f090027;
|
||||
public static final int accessibility_custom_action_27 = 0x7f090028;
|
||||
public static final int accessibility_custom_action_28 = 0x7f090029;
|
||||
public static final int accessibility_custom_action_29 = 0x7f09002a;
|
||||
public static final int accessibility_custom_action_3 = 0x7f09002b;
|
||||
public static final int accessibility_custom_action_30 = 0x7f09002c;
|
||||
public static final int accessibility_custom_action_31 = 0x7f09002d;
|
||||
public static final int accessibility_custom_action_4 = 0x7f09002e;
|
||||
public static final int accessibility_custom_action_5 = 0x7f09002f;
|
||||
public static final int accessibility_custom_action_6 = 0x7f090030;
|
||||
public static final int accessibility_custom_action_7 = 0x7f090031;
|
||||
public static final int accessibility_custom_action_8 = 0x7f090032;
|
||||
public static final int accessibility_custom_action_9 = 0x7f090033;
|
||||
public static final int action_container = 0x7f090045;
|
||||
public static final int action_divider = 0x7f090048;
|
||||
public static final int action_image = 0x7f09004a;
|
||||
public static final int action_text = 0x7f090051;
|
||||
public static final int actions = 0x7f090052;
|
||||
public static final int async = 0x7f090071;
|
||||
public static final int blocking = 0x7f090082;
|
||||
public static final int bottom = 0x7f090083;
|
||||
public static final int chronometer = 0x7f0900a9;
|
||||
public static final int dialog_button = 0x7f09010b;
|
||||
public static final int end = 0x7f090133;
|
||||
public static final int forever = 0x7f090152;
|
||||
public static final int icon = 0x7f090195;
|
||||
public static final int icon_group = 0x7f090196;
|
||||
public static final int info = 0x7f0901a9;
|
||||
public static final int italic = 0x7f0901be;
|
||||
public static final int left = 0x7f0901e2;
|
||||
public static final int line1 = 0x7f0901e9;
|
||||
public static final int line3 = 0x7f0901ea;
|
||||
public static final int none = 0x7f090264;
|
||||
public static final int normal = 0x7f090265;
|
||||
public static final int notification_background = 0x7f090269;
|
||||
public static final int notification_main_column = 0x7f09026a;
|
||||
public static final int notification_main_column_container = 0x7f09026b;
|
||||
public static final int right = 0x7f0902cd;
|
||||
public static final int right_icon = 0x7f0902cf;
|
||||
public static final int right_side = 0x7f0902d0;
|
||||
public static final int start = 0x7f090322;
|
||||
public static final int tag_accessibility_actions = 0x7f09035c;
|
||||
public static final int tag_accessibility_clickable_spans = 0x7f09035d;
|
||||
public static final int tag_accessibility_heading = 0x7f09035e;
|
||||
public static final int tag_accessibility_pane_title = 0x7f09035f;
|
||||
public static final int tag_screen_reader_focusable = 0x7f090363;
|
||||
public static final int tag_transition_group = 0x7f090365;
|
||||
public static final int tag_unhandled_key_event_manager = 0x7f090366;
|
||||
public static final int tag_unhandled_key_listeners = 0x7f090367;
|
||||
public static final int text = 0x7f09036d;
|
||||
public static final int text2 = 0x7f09036e;
|
||||
public static final int time = 0x7f09038e;
|
||||
public static final int title = 0x7f090393;
|
||||
public static final int top = 0x7f0903ac;
|
||||
|
||||
private id() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class integer {
|
||||
public static final int google_play_services_version = 0x7f0a0009;
|
||||
public static final int status_bar_notification_info_maxnum = 0x7f0a0045;
|
||||
|
||||
private integer() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class layout {
|
||||
public static final int custom_dialog = 0x7f0c0026;
|
||||
public static final int notification_action = 0x7f0c00a8;
|
||||
public static final int notification_action_tombstone = 0x7f0c00a9;
|
||||
public static final int notification_template_custom_big = 0x7f0c00aa;
|
||||
public static final int notification_template_icon_group = 0x7f0c00ab;
|
||||
public static final int notification_template_part_chronometer = 0x7f0c00ac;
|
||||
public static final int notification_template_part_time = 0x7f0c00ad;
|
||||
|
||||
private layout() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class raw {
|
||||
public static final int firebase_common_keep = 0x7f120000;
|
||||
|
||||
private raw() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class string {
|
||||
public static final int common_google_play_services_unknown_issue = 0x7f1300bc;
|
||||
public static final int status_bar_notification_info_overflow = 0x7f13023b;
|
||||
|
||||
private string() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class style {
|
||||
public static final int TextAppearance_Compat_Notification = 0x7f1401fb;
|
||||
public static final int TextAppearance_Compat_Notification_Info = 0x7f1401fc;
|
||||
public static final int TextAppearance_Compat_Notification_Line2 = 0x7f1401fd;
|
||||
public static final int TextAppearance_Compat_Notification_Time = 0x7f1401fe;
|
||||
public static final int TextAppearance_Compat_Notification_Title = 0x7f1401ff;
|
||||
public static final int Widget_Compat_NotificationActionContainer = 0x7f1403a1;
|
||||
public static final int Widget_Compat_NotificationActionText = 0x7f1403a2;
|
||||
public static final int Widget_Support_CoordinatorLayout = 0x7f1404d7;
|
||||
|
||||
private style() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class styleable {
|
||||
public static final int ColorStateListItem_alpha = 0x00000003;
|
||||
public static final int ColorStateListItem_android_alpha = 0x00000001;
|
||||
public static final int ColorStateListItem_android_color = 0x00000000;
|
||||
public static final int ColorStateListItem_android_lStar = 0x00000002;
|
||||
public static final int ColorStateListItem_lStar = 0x00000004;
|
||||
public static final int CoordinatorLayout_Layout_android_layout_gravity = 0x00000000;
|
||||
public static final int CoordinatorLayout_Layout_layout_anchor = 0x00000001;
|
||||
public static final int CoordinatorLayout_Layout_layout_anchorGravity = 0x00000002;
|
||||
public static final int CoordinatorLayout_Layout_layout_behavior = 0x00000003;
|
||||
public static final int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 0x00000004;
|
||||
public static final int CoordinatorLayout_Layout_layout_insetEdge = 0x00000005;
|
||||
public static final int CoordinatorLayout_Layout_layout_keyline = 0x00000006;
|
||||
public static final int CoordinatorLayout_keylines = 0x00000000;
|
||||
public static final int CoordinatorLayout_statusBarBackground = 0x00000001;
|
||||
public static final int FontFamilyFont_android_font = 0x00000000;
|
||||
public static final int FontFamilyFont_android_fontStyle = 0x00000002;
|
||||
public static final int FontFamilyFont_android_fontVariationSettings = 0x00000004;
|
||||
public static final int FontFamilyFont_android_fontWeight = 0x00000001;
|
||||
public static final int FontFamilyFont_android_ttcIndex = 0x00000003;
|
||||
public static final int FontFamilyFont_font = 0x00000005;
|
||||
public static final int FontFamilyFont_fontStyle = 0x00000006;
|
||||
public static final int FontFamilyFont_fontVariationSettings = 0x00000007;
|
||||
public static final int FontFamilyFont_fontWeight = 0x00000008;
|
||||
public static final int FontFamilyFont_ttcIndex = 0x00000009;
|
||||
public static final int FontFamily_fontProviderAuthority = 0x00000000;
|
||||
public static final int FontFamily_fontProviderCerts = 0x00000001;
|
||||
public static final int FontFamily_fontProviderFetchStrategy = 0x00000002;
|
||||
public static final int FontFamily_fontProviderFetchTimeout = 0x00000003;
|
||||
public static final int FontFamily_fontProviderPackage = 0x00000004;
|
||||
public static final int FontFamily_fontProviderQuery = 0x00000005;
|
||||
public static final int FontFamily_fontProviderSystemFontFamily = 0x00000006;
|
||||
public static final int GradientColorItem_android_color = 0x00000000;
|
||||
public static final int GradientColorItem_android_offset = 0x00000001;
|
||||
public static final int GradientColor_android_centerColor = 0x00000007;
|
||||
public static final int GradientColor_android_centerX = 0x00000003;
|
||||
public static final int GradientColor_android_centerY = 0x00000004;
|
||||
public static final int GradientColor_android_endColor = 0x00000001;
|
||||
public static final int GradientColor_android_endX = 0x0000000a;
|
||||
public static final int GradientColor_android_endY = 0x0000000b;
|
||||
public static final int GradientColor_android_gradientRadius = 0x00000005;
|
||||
public static final int GradientColor_android_startColor = 0x00000000;
|
||||
public static final int GradientColor_android_startX = 0x00000008;
|
||||
public static final int GradientColor_android_startY = 0x00000009;
|
||||
public static final int GradientColor_android_tileMode = 0x00000006;
|
||||
public static final int GradientColor_android_type = 0x00000002;
|
||||
public static final int[] ColorStateListItem = {android.R.attr.color, android.R.attr.alpha, 16844359, com.adif.elcanomovil.R.attr.alpha, com.adif.elcanomovil.R.attr.lStar};
|
||||
public static final int[] CoordinatorLayout = {com.adif.elcanomovil.R.attr.keylines, com.adif.elcanomovil.R.attr.statusBarBackground};
|
||||
public static final int[] CoordinatorLayout_Layout = {android.R.attr.layout_gravity, com.adif.elcanomovil.R.attr.layout_anchor, com.adif.elcanomovil.R.attr.layout_anchorGravity, com.adif.elcanomovil.R.attr.layout_behavior, com.adif.elcanomovil.R.attr.layout_dodgeInsetEdges, com.adif.elcanomovil.R.attr.layout_insetEdge, com.adif.elcanomovil.R.attr.layout_keyline};
|
||||
public static final int[] FontFamily = {com.adif.elcanomovil.R.attr.fontProviderAuthority, com.adif.elcanomovil.R.attr.fontProviderCerts, com.adif.elcanomovil.R.attr.fontProviderFetchStrategy, com.adif.elcanomovil.R.attr.fontProviderFetchTimeout, com.adif.elcanomovil.R.attr.fontProviderPackage, com.adif.elcanomovil.R.attr.fontProviderQuery, com.adif.elcanomovil.R.attr.fontProviderSystemFontFamily};
|
||||
public static final int[] FontFamilyFont = {android.R.attr.font, android.R.attr.fontWeight, android.R.attr.fontStyle, android.R.attr.ttcIndex, android.R.attr.fontVariationSettings, com.adif.elcanomovil.R.attr.font, com.adif.elcanomovil.R.attr.fontStyle, com.adif.elcanomovil.R.attr.fontVariationSettings, com.adif.elcanomovil.R.attr.fontWeight, com.adif.elcanomovil.R.attr.ttcIndex};
|
||||
public static final int[] GradientColor = {android.R.attr.startColor, android.R.attr.endColor, android.R.attr.type, android.R.attr.centerX, android.R.attr.centerY, android.R.attr.gradientRadius, android.R.attr.tileMode, android.R.attr.centerColor, android.R.attr.startX, android.R.attr.startY, android.R.attr.endX, android.R.attr.endY};
|
||||
public static final int[] GradientColorItem = {android.R.attr.color, android.R.attr.offset};
|
||||
|
||||
private styleable() {
|
||||
}
|
||||
}
|
||||
|
||||
private R() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.google.firebase.crashlytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbHandler;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource;
|
||||
import com.google.firebase.inject.Deferred;
|
||||
import com.google.firebase.inject.Provider;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class a implements BreadcrumbSource, AnalyticsEventLogger, Deferred.DeferredHandler {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ AnalyticsDeferredProxy f5966a;
|
||||
|
||||
public /* synthetic */ a(AnalyticsDeferredProxy analyticsDeferredProxy) {
|
||||
this.f5966a = analyticsDeferredProxy;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.inject.Deferred.DeferredHandler
|
||||
public void handle(Provider provider) {
|
||||
AnalyticsDeferredProxy.a(this.f5966a, provider);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger
|
||||
public void logEvent(String str, Bundle bundle) {
|
||||
AnalyticsDeferredProxy.b(this.f5966a, str, bundle);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource
|
||||
public void registerBreadcrumbHandler(BreadcrumbHandler breadcrumbHandler) {
|
||||
AnalyticsDeferredProxy.c(this.f5966a, breadcrumbHandler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.StaticSessionData;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface CrashlyticsNativeComponent {
|
||||
NativeSessionFileProvider getSessionFileProvider(String str);
|
||||
|
||||
boolean hasCrashDataForCurrentSession();
|
||||
|
||||
boolean hasCrashDataForSession(String str);
|
||||
|
||||
void prepareNativeSession(String str, String str2, long j4, StaticSessionData staticSessionData);
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import I2.k;
|
||||
import c2.h;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.crashlytics.internal.model.StaticSessionData;
|
||||
import com.google.firebase.inject.Deferred;
|
||||
import com.google.firebase.inject.Provider;
|
||||
import java.io.File;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class CrashlyticsNativeComponentDeferredProxy implements CrashlyticsNativeComponent {
|
||||
private static final NativeSessionFileProvider MISSING_NATIVE_SESSION_FILE_PROVIDER = new MissingNativeSessionFileProvider();
|
||||
private final AtomicReference<CrashlyticsNativeComponent> availableNativeComponent = new AtomicReference<>(null);
|
||||
private final Deferred<CrashlyticsNativeComponent> deferredNativeComponent;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class MissingNativeSessionFileProvider implements NativeSessionFileProvider {
|
||||
private MissingNativeSessionFileProvider() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getAppFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public CrashlyticsReport.ApplicationExitInfo getApplicationExitInto() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getBinaryImagesFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getDeviceFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getMetadataFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getMinidumpFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getOsFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.NativeSessionFileProvider
|
||||
public File getSessionFile() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public /* synthetic */ MissingNativeSessionFileProvider(AnonymousClass1 anonymousClass1) {
|
||||
this();
|
||||
}
|
||||
}
|
||||
|
||||
public CrashlyticsNativeComponentDeferredProxy(Deferred<CrashlyticsNativeComponent> deferred) {
|
||||
this.deferredNativeComponent = deferred;
|
||||
deferred.whenAvailable(new k(this, 15));
|
||||
}
|
||||
|
||||
public static /* synthetic */ void b(CrashlyticsNativeComponentDeferredProxy crashlyticsNativeComponentDeferredProxy, Provider provider) {
|
||||
crashlyticsNativeComponentDeferredProxy.lambda$new$0(provider);
|
||||
}
|
||||
|
||||
public /* synthetic */ void lambda$new$0(Provider provider) {
|
||||
Logger.getLogger().d("Crashlytics native component now available.");
|
||||
this.availableNativeComponent.set((CrashlyticsNativeComponent) provider.get());
|
||||
}
|
||||
|
||||
public static /* synthetic */ void lambda$prepareNativeSession$1(String str, String str2, long j4, StaticSessionData staticSessionData, Provider provider) {
|
||||
((CrashlyticsNativeComponent) provider.get()).prepareNativeSession(str, str2, j4, staticSessionData);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent
|
||||
public NativeSessionFileProvider getSessionFileProvider(String str) {
|
||||
CrashlyticsNativeComponent crashlyticsNativeComponent = this.availableNativeComponent.get();
|
||||
return crashlyticsNativeComponent == null ? MISSING_NATIVE_SESSION_FILE_PROVIDER : crashlyticsNativeComponent.getSessionFileProvider(str);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent
|
||||
public boolean hasCrashDataForCurrentSession() {
|
||||
CrashlyticsNativeComponent crashlyticsNativeComponent = this.availableNativeComponent.get();
|
||||
return crashlyticsNativeComponent != null && crashlyticsNativeComponent.hasCrashDataForCurrentSession();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent
|
||||
public boolean hasCrashDataForSession(String str) {
|
||||
CrashlyticsNativeComponent crashlyticsNativeComponent = this.availableNativeComponent.get();
|
||||
return crashlyticsNativeComponent != null && crashlyticsNativeComponent.hasCrashDataForSession(str);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent
|
||||
public void prepareNativeSession(String str, String str2, long j4, StaticSessionData staticSessionData) {
|
||||
Logger.getLogger().v("Deferring native open session: " + str);
|
||||
this.deferredNativeComponent.whenAvailable(new h(str, str2, j4, staticSessionData));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import com.google.firebase.remoteconfig.interop.rollouts.RolloutAssignment;
|
||||
import com.google.firebase.remoteconfig.interop.rollouts.RolloutsState;
|
||||
import com.google.firebase.remoteconfig.interop.rollouts.RolloutsStateSubscriber;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Set;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.collections.CollectionsKt__IterablesKt;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0010\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\bH\u0016R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\t"}, d2 = {"Lcom/google/firebase/crashlytics/internal/CrashlyticsRemoteConfigListener;", "Lcom/google/firebase/remoteconfig/interop/rollouts/RolloutsStateSubscriber;", "userMetadata", "Lcom/google/firebase/crashlytics/internal/metadata/UserMetadata;", "(Lcom/google/firebase/crashlytics/internal/metadata/UserMetadata;)V", "onRolloutsStateChanged", "", "rolloutsState", "Lcom/google/firebase/remoteconfig/interop/rollouts/RolloutsState;", "com.google.firebase-firebase-crashlytics"}, k = 1, mv = {1, 7, 1}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class CrashlyticsRemoteConfigListener implements RolloutsStateSubscriber {
|
||||
private final UserMetadata userMetadata;
|
||||
|
||||
public CrashlyticsRemoteConfigListener(UserMetadata userMetadata) {
|
||||
Intrinsics.checkNotNullParameter(userMetadata, "userMetadata");
|
||||
this.userMetadata = userMetadata;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.remoteconfig.interop.rollouts.RolloutsStateSubscriber
|
||||
public void onRolloutsStateChanged(RolloutsState rolloutsState) {
|
||||
int collectionSizeOrDefault;
|
||||
Intrinsics.checkNotNullParameter(rolloutsState, "rolloutsState");
|
||||
UserMetadata userMetadata = this.userMetadata;
|
||||
Set<RolloutAssignment> rolloutAssignments = rolloutsState.getRolloutAssignments();
|
||||
Intrinsics.checkNotNullExpressionValue(rolloutAssignments, "rolloutsState.rolloutAssignments");
|
||||
collectionSizeOrDefault = CollectionsKt__IterablesKt.collectionSizeOrDefault(rolloutAssignments, 10);
|
||||
ArrayList arrayList = new ArrayList(collectionSizeOrDefault);
|
||||
for (RolloutAssignment rolloutAssignment : rolloutAssignments) {
|
||||
arrayList.add(com.google.firebase.crashlytics.internal.metadata.RolloutAssignment.create(rolloutAssignment.getRolloutId(), rolloutAssignment.getParameterKey(), rolloutAssignment.getParameterValue(), rolloutAssignment.getVariantId(), rolloutAssignment.getTemplateVersion()));
|
||||
}
|
||||
userMetadata.updateRolloutsState(arrayList);
|
||||
Logger.getLogger().d("Updated Crashlytics Rollout State");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DevelopmentPlatformProvider {
|
||||
private static final String FLUTTER_ASSET_FILE = "flutter_assets/NOTICES.Z";
|
||||
private static final String FLUTTER_PLATFORM = "Flutter";
|
||||
private static final String UNITY_PLATFORM = "Unity";
|
||||
private static final String UNITY_VERSION_FIELD = "com.google.firebase.crashlytics.unity_version";
|
||||
private final Context context;
|
||||
private DevelopmentPlatform developmentPlatform = null;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DevelopmentPlatform {
|
||||
private final String developmentPlatform;
|
||||
private final String developmentPlatformVersion;
|
||||
|
||||
private DevelopmentPlatform() {
|
||||
int resourcesIdentifier = CommonUtils.getResourcesIdentifier(DevelopmentPlatformProvider.this.context, DevelopmentPlatformProvider.UNITY_VERSION_FIELD, "string");
|
||||
if (resourcesIdentifier != 0) {
|
||||
this.developmentPlatform = DevelopmentPlatformProvider.UNITY_PLATFORM;
|
||||
String string = DevelopmentPlatformProvider.this.context.getResources().getString(resourcesIdentifier);
|
||||
this.developmentPlatformVersion = string;
|
||||
Logger.getLogger().v("Unity Editor version is: " + string);
|
||||
return;
|
||||
}
|
||||
if (DevelopmentPlatformProvider.this.assetFileExists(DevelopmentPlatformProvider.FLUTTER_ASSET_FILE)) {
|
||||
this.developmentPlatform = DevelopmentPlatformProvider.FLUTTER_PLATFORM;
|
||||
this.developmentPlatformVersion = null;
|
||||
Logger.getLogger().v("Development platform is: Flutter");
|
||||
} else {
|
||||
this.developmentPlatform = null;
|
||||
this.developmentPlatformVersion = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DevelopmentPlatformProvider(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public boolean assetFileExists(String str) {
|
||||
if (this.context.getAssets() == null) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
InputStream open = this.context.getAssets().open(str);
|
||||
if (open != null) {
|
||||
open.close();
|
||||
}
|
||||
return true;
|
||||
} catch (IOException unused) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private DevelopmentPlatform initDevelopmentPlatform() {
|
||||
if (this.developmentPlatform == null) {
|
||||
this.developmentPlatform = new DevelopmentPlatform();
|
||||
}
|
||||
return this.developmentPlatform;
|
||||
}
|
||||
|
||||
public static boolean isUnity(Context context) {
|
||||
return CommonUtils.getResourcesIdentifier(context, UNITY_VERSION_FIELD, "string") != 0;
|
||||
}
|
||||
|
||||
public String getDevelopmentPlatform() {
|
||||
return initDevelopmentPlatform().developmentPlatform;
|
||||
}
|
||||
|
||||
public String getDevelopmentPlatformVersion() {
|
||||
return initDevelopmentPlatform().developmentPlatformVersion;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class Logger {
|
||||
private int logLevel = 4;
|
||||
private final String tag;
|
||||
public static final String TAG = "FirebaseCrashlytics";
|
||||
static final Logger DEFAULT_LOGGER = new Logger(TAG);
|
||||
|
||||
public Logger(String str) {
|
||||
this.tag = str;
|
||||
}
|
||||
|
||||
private boolean canLog(int i) {
|
||||
return this.logLevel <= i || Log.isLoggable(this.tag, i);
|
||||
}
|
||||
|
||||
public static Logger getLogger() {
|
||||
return DEFAULT_LOGGER;
|
||||
}
|
||||
|
||||
public void d(String str, Throwable th) {
|
||||
if (canLog(3)) {
|
||||
Log.d(this.tag, str, th);
|
||||
}
|
||||
}
|
||||
|
||||
public void e(String str, Throwable th) {
|
||||
if (canLog(6)) {
|
||||
Log.e(this.tag, str, th);
|
||||
}
|
||||
}
|
||||
|
||||
public void i(String str, Throwable th) {
|
||||
if (canLog(4)) {
|
||||
Log.i(this.tag, str, th);
|
||||
}
|
||||
}
|
||||
|
||||
public void log(int i, String str) {
|
||||
log(i, str, false);
|
||||
}
|
||||
|
||||
public void v(String str, Throwable th) {
|
||||
if (canLog(2)) {
|
||||
Log.v(this.tag, str, th);
|
||||
}
|
||||
}
|
||||
|
||||
public void w(String str, Throwable th) {
|
||||
if (canLog(5)) {
|
||||
Log.w(this.tag, str, th);
|
||||
}
|
||||
}
|
||||
|
||||
public void log(int i, String str, boolean z3) {
|
||||
if (z3 || canLog(i)) {
|
||||
Log.println(i, this.tag, str);
|
||||
}
|
||||
}
|
||||
|
||||
public void d(String str) {
|
||||
d(str, null);
|
||||
}
|
||||
|
||||
public void e(String str) {
|
||||
e(str, null);
|
||||
}
|
||||
|
||||
public void i(String str) {
|
||||
i(str, null);
|
||||
}
|
||||
|
||||
public void v(String str) {
|
||||
v(str, null);
|
||||
}
|
||||
|
||||
public void w(String str) {
|
||||
w(str, null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.File;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface NativeSessionFileProvider {
|
||||
File getAppFile();
|
||||
|
||||
CrashlyticsReport.ApplicationExitInfo getApplicationExitInto();
|
||||
|
||||
File getBinaryImagesFile();
|
||||
|
||||
File getDeviceFile();
|
||||
|
||||
File getMetadataFile();
|
||||
|
||||
File getMinidumpFile();
|
||||
|
||||
File getOsFile();
|
||||
|
||||
File getSessionFile();
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Process;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.collections.CollectionsKt__IterablesKt;
|
||||
import kotlin.jvm.JvmOverloads;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u00004\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010 \n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\bÀ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J.\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\b\b\u0002\u0010\u0007\u001a\u00020\b2\b\b\u0002\u0010\t\u001a\u00020\b2\b\b\u0002\u0010\n\u001a\u00020\u000bH\u0007J\u0014\u0010\f\u001a\b\u0012\u0004\u0012\u00020\u00040\r2\u0006\u0010\u000e\u001a\u00020\u000fJ\u000e\u0010\u0010\u001a\u00020\u00042\u0006\u0010\u000e\u001a\u00020\u000fJ\b\u0010\u0011\u001a\u00020\u0006H\u0002¨\u0006\u0012"}, d2 = {"Lcom/google/firebase/crashlytics/internal/ProcessDetailsProvider;", "", "()V", "buildProcessDetails", "Lcom/google/firebase/crashlytics/internal/model/CrashlyticsReport$Session$Event$Application$ProcessDetails;", "processName", "", "pid", "", "importance", "isDefaultProcess", "", "getAppProcessDetails", "", "context", "Landroid/content/Context;", "getCurrentProcessDetails", "getProcessName", "com.google.firebase-firebase-crashlytics"}, k = 1, mv = {1, 7, 1}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ProcessDetailsProvider {
|
||||
public static final ProcessDetailsProvider INSTANCE = new ProcessDetailsProvider();
|
||||
|
||||
private ProcessDetailsProvider() {
|
||||
}
|
||||
|
||||
public static /* synthetic */ CrashlyticsReport.Session.Event.Application.ProcessDetails buildProcessDetails$default(ProcessDetailsProvider processDetailsProvider, String str, int i, int i4, boolean z3, int i5, Object obj) {
|
||||
if ((i5 & 2) != 0) {
|
||||
i = 0;
|
||||
}
|
||||
if ((i5 & 4) != 0) {
|
||||
i4 = 0;
|
||||
}
|
||||
if ((i5 & 8) != 0) {
|
||||
z3 = false;
|
||||
}
|
||||
return processDetailsProvider.buildProcessDetails(str, i, i4, z3);
|
||||
}
|
||||
|
||||
private final String getProcessName() {
|
||||
String myProcessName;
|
||||
if (Build.VERSION.SDK_INT < 33) {
|
||||
String processName = Application.getProcessName();
|
||||
return processName == null ? "" : processName;
|
||||
}
|
||||
myProcessName = Process.myProcessName();
|
||||
Intrinsics.checkNotNullExpressionValue(myProcessName, "{\n Process.myProcessName()\n }");
|
||||
return myProcessName;
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
public final CrashlyticsReport.Session.Event.Application.ProcessDetails buildProcessDetails(String processName) {
|
||||
Intrinsics.checkNotNullParameter(processName, "processName");
|
||||
return buildProcessDetails$default(this, processName, 0, 0, false, 14, null);
|
||||
}
|
||||
|
||||
public final List<CrashlyticsReport.Session.Event.Application.ProcessDetails> getAppProcessDetails(Context context) {
|
||||
int collectionSizeOrDefault;
|
||||
Intrinsics.checkNotNullParameter(context, "context");
|
||||
int i = context.getApplicationInfo().uid;
|
||||
String str = context.getApplicationInfo().processName;
|
||||
Object systemService = context.getSystemService("activity");
|
||||
ActivityManager activityManager = systemService instanceof ActivityManager ? (ActivityManager) systemService : null;
|
||||
List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager != null ? activityManager.getRunningAppProcesses() : null;
|
||||
if (runningAppProcesses == null) {
|
||||
runningAppProcesses = CollectionsKt.emptyList();
|
||||
}
|
||||
List filterNotNull = CollectionsKt.filterNotNull(runningAppProcesses);
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (Object obj : filterNotNull) {
|
||||
if (((ActivityManager.RunningAppProcessInfo) obj).uid == i) {
|
||||
arrayList.add(obj);
|
||||
}
|
||||
}
|
||||
collectionSizeOrDefault = CollectionsKt__IterablesKt.collectionSizeOrDefault(arrayList, 10);
|
||||
ArrayList arrayList2 = new ArrayList(collectionSizeOrDefault);
|
||||
Iterator it = arrayList.iterator();
|
||||
while (it.hasNext()) {
|
||||
ActivityManager.RunningAppProcessInfo runningAppProcessInfo = (ActivityManager.RunningAppProcessInfo) it.next();
|
||||
arrayList2.add(CrashlyticsReport.Session.Event.Application.ProcessDetails.builder().setProcessName(runningAppProcessInfo.processName).setPid(runningAppProcessInfo.pid).setImportance(runningAppProcessInfo.importance).setDefaultProcess(Intrinsics.areEqual(runningAppProcessInfo.processName, str)).build());
|
||||
}
|
||||
return arrayList2;
|
||||
}
|
||||
|
||||
public final CrashlyticsReport.Session.Event.Application.ProcessDetails getCurrentProcessDetails(Context context) {
|
||||
Object obj;
|
||||
Intrinsics.checkNotNullParameter(context, "context");
|
||||
int myPid = Process.myPid();
|
||||
Iterator<T> it = getAppProcessDetails(context).iterator();
|
||||
while (true) {
|
||||
if (!it.hasNext()) {
|
||||
obj = null;
|
||||
break;
|
||||
}
|
||||
obj = it.next();
|
||||
if (((CrashlyticsReport.Session.Event.Application.ProcessDetails) obj).getPid() == myPid) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails = (CrashlyticsReport.Session.Event.Application.ProcessDetails) obj;
|
||||
return processDetails == null ? buildProcessDetails$default(this, getProcessName(), myPid, 0, false, 12, null) : processDetails;
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
public final CrashlyticsReport.Session.Event.Application.ProcessDetails buildProcessDetails(String processName, int i) {
|
||||
Intrinsics.checkNotNullParameter(processName, "processName");
|
||||
return buildProcessDetails$default(this, processName, i, 0, false, 12, null);
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
public final CrashlyticsReport.Session.Event.Application.ProcessDetails buildProcessDetails(String processName, int i, int i4) {
|
||||
Intrinsics.checkNotNullParameter(processName, "processName");
|
||||
return buildProcessDetails$default(this, processName, i, i4, false, 8, null);
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
public final CrashlyticsReport.Session.Event.Application.ProcessDetails buildProcessDetails(String processName, int pid, int importance, boolean isDefaultProcess) {
|
||||
Intrinsics.checkNotNullParameter(processName, "processName");
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails build = CrashlyticsReport.Session.Event.Application.ProcessDetails.builder().setProcessName(processName).setPid(pid).setImportance(importance).setDefaultProcess(isDefaultProcess).build();
|
||||
Intrinsics.checkNotNullExpressionValue(build, "builder()\n .setProc…ltProcess)\n .build()");
|
||||
return build;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.google.firebase.crashlytics.internal;
|
||||
|
||||
import I2.k;
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import com.google.firebase.inject.Deferred;
|
||||
import com.google.firebase.inject.Provider;
|
||||
import com.google.firebase.remoteconfig.RemoteConfigComponent;
|
||||
import com.google.firebase.remoteconfig.interop.FirebaseRemoteConfigInterop;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class RemoteConfigDeferredProxy {
|
||||
private final Deferred<FirebaseRemoteConfigInterop> remoteConfigInteropDeferred;
|
||||
|
||||
public RemoteConfigDeferredProxy(Deferred<FirebaseRemoteConfigInterop> deferred) {
|
||||
this.remoteConfigInteropDeferred = deferred;
|
||||
}
|
||||
|
||||
public static /* synthetic */ void a(CrashlyticsRemoteConfigListener crashlyticsRemoteConfigListener, Provider provider) {
|
||||
lambda$setupListener$0(crashlyticsRemoteConfigListener, provider);
|
||||
}
|
||||
|
||||
public static /* synthetic */ void lambda$setupListener$0(CrashlyticsRemoteConfigListener crashlyticsRemoteConfigListener, Provider provider) {
|
||||
((FirebaseRemoteConfigInterop) provider.get()).registerRolloutsStateSubscriber(RemoteConfigComponent.DEFAULT_NAMESPACE, crashlyticsRemoteConfigListener);
|
||||
Logger.getLogger().d("Registering RemoteConfig Rollouts subscriber");
|
||||
}
|
||||
|
||||
public void setupListener(UserMetadata userMetadata) {
|
||||
if (userMetadata == null) {
|
||||
Logger.getLogger().w("Didn't successfully register with UserMetadata for rollouts listener");
|
||||
} else {
|
||||
this.remoteConfigInteropDeferred.whenAvailable(new k(new CrashlyticsRemoteConfigListener(userMetadata), 16));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface AnalyticsEventLogger {
|
||||
void logEvent(String str, Bundle bundle);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface AnalyticsEventReceiver {
|
||||
void onEvent(String str, Bundle bundle);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class BlockingAnalyticsEventLogger implements AnalyticsEventReceiver, AnalyticsEventLogger {
|
||||
static final String APP_EXCEPTION_EVENT_NAME = "_ae";
|
||||
private final CrashlyticsOriginAnalyticsEventLogger baseAnalyticsEventLogger;
|
||||
private CountDownLatch eventLatch;
|
||||
private final TimeUnit timeUnit;
|
||||
private final int timeout;
|
||||
private final Object latchLock = new Object();
|
||||
private boolean callbackReceived = false;
|
||||
|
||||
public BlockingAnalyticsEventLogger(CrashlyticsOriginAnalyticsEventLogger crashlyticsOriginAnalyticsEventLogger, int i, TimeUnit timeUnit) {
|
||||
this.baseAnalyticsEventLogger = crashlyticsOriginAnalyticsEventLogger;
|
||||
this.timeout = i;
|
||||
this.timeUnit = timeUnit;
|
||||
}
|
||||
|
||||
public boolean isCallbackReceived() {
|
||||
return this.callbackReceived;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger
|
||||
public void logEvent(String str, Bundle bundle) {
|
||||
synchronized (this.latchLock) {
|
||||
try {
|
||||
Logger.getLogger().v("Logging event " + str + " to Firebase Analytics with params " + bundle);
|
||||
this.eventLatch = new CountDownLatch(1);
|
||||
this.callbackReceived = false;
|
||||
this.baseAnalyticsEventLogger.logEvent(str, bundle);
|
||||
Logger.getLogger().v("Awaiting app exception callback from Analytics...");
|
||||
try {
|
||||
if (this.eventLatch.await(this.timeout, this.timeUnit)) {
|
||||
this.callbackReceived = true;
|
||||
Logger.getLogger().v("App exception callback received from Analytics listener.");
|
||||
} else {
|
||||
Logger.getLogger().w("Timeout exceeded while awaiting app exception callback from Analytics listener.");
|
||||
}
|
||||
} catch (InterruptedException unused) {
|
||||
Logger.getLogger().e("Interrupted while awaiting app exception callback from Analytics listener.");
|
||||
}
|
||||
this.eventLatch = null;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventReceiver
|
||||
public void onEvent(String str, Bundle bundle) {
|
||||
CountDownLatch countDownLatch = this.eventLatch;
|
||||
if (countDownLatch != null && APP_EXCEPTION_EVENT_NAME.equals(str)) {
|
||||
countDownLatch.countDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbHandler;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class BreadcrumbAnalyticsEventReceiver implements AnalyticsEventReceiver, BreadcrumbSource {
|
||||
private static final String BREADCRUMB_NAME_KEY = "name";
|
||||
private static final String BREADCRUMB_PARAMS_KEY = "parameters";
|
||||
private static final String BREADCRUMB_PREFIX = "$A$:";
|
||||
private BreadcrumbHandler breadcrumbHandler;
|
||||
|
||||
private static String serializeEvent(String str, Bundle bundle) throws JSONException {
|
||||
JSONObject jSONObject = new JSONObject();
|
||||
JSONObject jSONObject2 = new JSONObject();
|
||||
for (String str2 : bundle.keySet()) {
|
||||
jSONObject2.put(str2, bundle.get(str2));
|
||||
}
|
||||
jSONObject.put("name", str);
|
||||
jSONObject.put("parameters", jSONObject2);
|
||||
return jSONObject.toString();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventReceiver
|
||||
public void onEvent(String str, Bundle bundle) {
|
||||
BreadcrumbHandler breadcrumbHandler = this.breadcrumbHandler;
|
||||
if (breadcrumbHandler != null) {
|
||||
try {
|
||||
breadcrumbHandler.handleBreadcrumb(BREADCRUMB_PREFIX + serializeEvent(str, bundle));
|
||||
} catch (JSONException unused) {
|
||||
Logger.getLogger().w("Unable to serialize Firebase Analytics event to breadcrumb.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource
|
||||
public void registerBreadcrumbHandler(BreadcrumbHandler breadcrumbHandler) {
|
||||
this.breadcrumbHandler = breadcrumbHandler;
|
||||
Logger.getLogger().d("Registered Firebase Analytics event receiver for breadcrumbs");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsOriginAnalyticsEventLogger implements AnalyticsEventLogger {
|
||||
static final String FIREBASE_ANALYTICS_ORIGIN_CRASHLYTICS = "clx";
|
||||
private final AnalyticsConnector analyticsConnector;
|
||||
|
||||
public CrashlyticsOriginAnalyticsEventLogger(AnalyticsConnector analyticsConnector) {
|
||||
this.analyticsConnector = analyticsConnector;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger
|
||||
public void logEvent(String str, Bundle bundle) {
|
||||
this.analyticsConnector.logEvent(FIREBASE_ANALYTICS_ORIGIN_CRASHLYTICS, str, bundle);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.google.firebase.crashlytics.internal.analytics;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class UnavailableAnalyticsEventLogger implements AnalyticsEventLogger {
|
||||
@Override // com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger
|
||||
public void logEvent(String str, Bundle bundle) {
|
||||
Logger.getLogger().d("Skipping logging Crashlytics event to Firebase, no Firebase Analytics");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.google.firebase.crashlytics.internal.breadcrumbs;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface BreadcrumbHandler {
|
||||
void handleBreadcrumb(String str);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.google.firebase.crashlytics.internal.breadcrumbs;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface BreadcrumbSource {
|
||||
void registerBreadcrumbHandler(BreadcrumbHandler breadcrumbHandler);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.google.firebase.crashlytics.internal.breadcrumbs;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DisabledBreadcrumbSource implements BreadcrumbSource {
|
||||
@Override // com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource
|
||||
public void registerBreadcrumbHandler(BreadcrumbHandler breadcrumbHandler) {
|
||||
Logger.getLogger().d("Could not register handler for breadcrumbs events.");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import com.google.firebase.crashlytics.internal.DevelopmentPlatformProvider;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AppData {
|
||||
public final String buildId;
|
||||
public final List<BuildIdInfo> buildIdInfoList;
|
||||
public final DevelopmentPlatformProvider developmentPlatformProvider;
|
||||
public final String googleAppId;
|
||||
public final String installerPackageName;
|
||||
public final String packageName;
|
||||
public final String versionCode;
|
||||
public final String versionName;
|
||||
|
||||
public AppData(String str, String str2, List<BuildIdInfo> list, String str3, String str4, String str5, String str6, DevelopmentPlatformProvider developmentPlatformProvider) {
|
||||
this.googleAppId = str;
|
||||
this.buildId = str2;
|
||||
this.buildIdInfoList = list;
|
||||
this.installerPackageName = str3;
|
||||
this.packageName = str4;
|
||||
this.versionCode = str5;
|
||||
this.versionName = str6;
|
||||
this.developmentPlatformProvider = developmentPlatformProvider;
|
||||
}
|
||||
|
||||
public static AppData create(Context context, IdManager idManager, String str, String str2, List<BuildIdInfo> list, DevelopmentPlatformProvider developmentPlatformProvider) throws PackageManager.NameNotFoundException {
|
||||
String packageName = context.getPackageName();
|
||||
String installerPackageName = idManager.getInstallerPackageName();
|
||||
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
|
||||
String appBuildVersion = getAppBuildVersion(packageInfo);
|
||||
String str3 = packageInfo.versionName;
|
||||
if (str3 == null) {
|
||||
str3 = IdManager.DEFAULT_VERSION_NAME;
|
||||
}
|
||||
return new AppData(str, str2, list, installerPackageName, packageName, appBuildVersion, str3, developmentPlatformProvider);
|
||||
}
|
||||
|
||||
private static String getAppBuildVersion(PackageInfo packageInfo) {
|
||||
return Long.toString(packageInfo.getLongVersionCode());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.File;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public final class AutoValue_CrashlyticsReportWithSessionId extends CrashlyticsReportWithSessionId {
|
||||
private final CrashlyticsReport report;
|
||||
private final File reportFile;
|
||||
private final String sessionId;
|
||||
|
||||
public AutoValue_CrashlyticsReportWithSessionId(CrashlyticsReport crashlyticsReport, String str, File file) {
|
||||
if (crashlyticsReport == null) {
|
||||
throw new NullPointerException("Null report");
|
||||
}
|
||||
this.report = crashlyticsReport;
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null sessionId");
|
||||
}
|
||||
this.sessionId = str;
|
||||
if (file == null) {
|
||||
throw new NullPointerException("Null reportFile");
|
||||
}
|
||||
this.reportFile = file;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReportWithSessionId) {
|
||||
CrashlyticsReportWithSessionId crashlyticsReportWithSessionId = (CrashlyticsReportWithSessionId) obj;
|
||||
if (this.report.equals(crashlyticsReportWithSessionId.getReport()) && this.sessionId.equals(crashlyticsReportWithSessionId.getSessionId()) && this.reportFile.equals(crashlyticsReportWithSessionId.getReportFile())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsReportWithSessionId
|
||||
public CrashlyticsReport getReport() {
|
||||
return this.report;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsReportWithSessionId
|
||||
public File getReportFile() {
|
||||
return this.reportFile;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsReportWithSessionId
|
||||
public String getSessionId() {
|
||||
return this.sessionId;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.reportFile.hashCode() ^ ((((this.report.hashCode() ^ 1000003) * 1000003) ^ this.sessionId.hashCode()) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "CrashlyticsReportWithSessionId{report=" + this.report + ", sessionId=" + this.sessionId + ", reportFile=" + this.reportFile + "}";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.common.InstallIdProvider;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_InstallIdProvider_InstallIds extends InstallIdProvider.InstallIds {
|
||||
private final String crashlyticsInstallId;
|
||||
private final String firebaseInstallationId;
|
||||
|
||||
public AutoValue_InstallIdProvider_InstallIds(String str, String str2) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null crashlyticsInstallId");
|
||||
}
|
||||
this.crashlyticsInstallId = str;
|
||||
this.firebaseInstallationId = str2;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof InstallIdProvider.InstallIds) {
|
||||
InstallIdProvider.InstallIds installIds = (InstallIdProvider.InstallIds) obj;
|
||||
if (this.crashlyticsInstallId.equals(installIds.getCrashlyticsInstallId()) && ((str = this.firebaseInstallationId) != null ? str.equals(installIds.getFirebaseInstallationId()) : installIds.getFirebaseInstallationId() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.InstallIdProvider.InstallIds
|
||||
public String getCrashlyticsInstallId() {
|
||||
return this.crashlyticsInstallId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.InstallIdProvider.InstallIds
|
||||
public String getFirebaseInstallationId() {
|
||||
return this.firebaseInstallationId;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (this.crashlyticsInstallId.hashCode() ^ 1000003) * 1000003;
|
||||
String str = this.firebaseInstallationId;
|
||||
return (str == null ? 0 : str.hashCode()) ^ hashCode;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("InstallIds{crashlyticsInstallId=");
|
||||
sb.append(this.crashlyticsInstallId);
|
||||
sb.append(", firebaseInstallationId=");
|
||||
return w.r(sb, this.firebaseInstallationId, "}");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.os.Process;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class BackgroundPriorityRunnable implements Runnable {
|
||||
public abstract void onRun();
|
||||
|
||||
@Override // java.lang.Runnable
|
||||
public final void run() {
|
||||
Process.setThreadPriority(10);
|
||||
onRun();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
class BatteryState {
|
||||
static final int VELOCITY_CHARGING = 2;
|
||||
static final int VELOCITY_FULL = 3;
|
||||
static final int VELOCITY_UNPLUGGED = 1;
|
||||
private final Float level;
|
||||
private final boolean powerConnected;
|
||||
|
||||
private BatteryState(Float f2, boolean z3) {
|
||||
this.powerConnected = z3;
|
||||
this.level = f2;
|
||||
}
|
||||
|
||||
public static BatteryState get(Context context) {
|
||||
boolean z3 = false;
|
||||
Float f2 = null;
|
||||
try {
|
||||
Intent registerReceiver = context.registerReceiver(null, new IntentFilter("android.intent.action.BATTERY_CHANGED"));
|
||||
if (registerReceiver != null) {
|
||||
z3 = isPowerConnected(registerReceiver);
|
||||
f2 = getLevel(registerReceiver);
|
||||
}
|
||||
} catch (IllegalStateException e4) {
|
||||
Logger.getLogger().e("An error occurred getting battery state.", e4);
|
||||
}
|
||||
return new BatteryState(f2, z3);
|
||||
}
|
||||
|
||||
private static Float getLevel(Intent intent) {
|
||||
int intExtra = intent.getIntExtra(FirebaseAnalytics.Param.LEVEL, -1);
|
||||
int intExtra2 = intent.getIntExtra("scale", -1);
|
||||
if (intExtra == -1 || intExtra2 == -1) {
|
||||
return null;
|
||||
}
|
||||
return Float.valueOf(intExtra / intExtra2);
|
||||
}
|
||||
|
||||
public Float getBatteryLevel() {
|
||||
return this.level;
|
||||
}
|
||||
|
||||
public int getBatteryVelocity() {
|
||||
Float f2;
|
||||
if (!this.powerConnected || (f2 = this.level) == null) {
|
||||
return 1;
|
||||
}
|
||||
return ((double) f2.floatValue()) < 0.99d ? 2 : 3;
|
||||
}
|
||||
|
||||
public boolean isPowerConnected() {
|
||||
return this.powerConnected;
|
||||
}
|
||||
|
||||
private static boolean isPowerConnected(Intent intent) {
|
||||
int intExtra = intent.getIntExtra("status", -1);
|
||||
if (intExtra == -1) {
|
||||
return false;
|
||||
}
|
||||
return intExtra == 2 || intExtra == 5;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class BuildIdInfo {
|
||||
private final String arch;
|
||||
private final String buildId;
|
||||
private final String libraryName;
|
||||
|
||||
public BuildIdInfo(String str, String str2, String str3) {
|
||||
this.libraryName = str;
|
||||
this.arch = str2;
|
||||
this.buildId = str3;
|
||||
}
|
||||
|
||||
public String getArch() {
|
||||
return this.arch;
|
||||
}
|
||||
|
||||
public String getBuildId() {
|
||||
return this.buildId;
|
||||
}
|
||||
|
||||
public String getLibraryName() {
|
||||
return this.libraryName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class BytesBackedNativeSessionFile implements NativeSessionFile {
|
||||
private final byte[] bytes;
|
||||
private final String dataTransportFilename;
|
||||
private final String reportsEndpointFilename;
|
||||
|
||||
public BytesBackedNativeSessionFile(String str, String str2, byte[] bArr) {
|
||||
this.dataTransportFilename = str;
|
||||
this.reportsEndpointFilename = str2;
|
||||
this.bytes = bArr;
|
||||
}
|
||||
|
||||
private byte[] asGzippedBytes() {
|
||||
if (isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
try {
|
||||
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(byteArrayOutputStream);
|
||||
try {
|
||||
gZIPOutputStream.write(this.bytes);
|
||||
gZIPOutputStream.finish();
|
||||
byte[] byteArray = byteArrayOutputStream.toByteArray();
|
||||
gZIPOutputStream.close();
|
||||
byteArrayOutputStream.close();
|
||||
return byteArray;
|
||||
} finally {
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
try {
|
||||
byteArrayOutputStream.close();
|
||||
} catch (Throwable th2) {
|
||||
th.addSuppressed(th2);
|
||||
}
|
||||
throw th;
|
||||
}
|
||||
} catch (IOException unused) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEmpty() {
|
||||
byte[] bArr = this.bytes;
|
||||
return bArr == null || bArr.length == 0;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public CrashlyticsReport.FilesPayload.File asFilePayload() {
|
||||
byte[] asGzippedBytes = asGzippedBytes();
|
||||
if (asGzippedBytes == null) {
|
||||
return null;
|
||||
}
|
||||
return CrashlyticsReport.FilesPayload.File.builder().setContents(asGzippedBytes).setFilename(this.dataTransportFilename).build();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public String getReportsEndpointFilename() {
|
||||
return this.reportsEndpointFilename;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public InputStream getStream() {
|
||||
if (isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return new ByteArrayInputStream(this.bytes);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.os.Process;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class CLSUUID {
|
||||
private static String _clsId;
|
||||
private static final AtomicLong _sequenceNumber = new AtomicLong(0);
|
||||
|
||||
public CLSUUID(IdManager idManager) {
|
||||
byte[] bArr = new byte[10];
|
||||
populateTime(bArr);
|
||||
populateSequenceNumber(bArr);
|
||||
populatePID(bArr);
|
||||
String sha1 = CommonUtils.sha1(idManager.getInstallIds().getCrashlyticsInstallId());
|
||||
String hexify = CommonUtils.hexify(bArr);
|
||||
Locale locale = Locale.US;
|
||||
_clsId = String.format(locale, "%s%s%s%s", hexify.substring(0, 12), hexify.substring(12, 16), hexify.subSequence(16, 20), sha1.substring(0, 12)).toUpperCase(locale);
|
||||
}
|
||||
|
||||
private static byte[] convertLongToFourByteBuffer(long j4) {
|
||||
ByteBuffer allocate = ByteBuffer.allocate(4);
|
||||
allocate.putInt((int) j4);
|
||||
allocate.order(ByteOrder.BIG_ENDIAN);
|
||||
allocate.position(0);
|
||||
return allocate.array();
|
||||
}
|
||||
|
||||
private static byte[] convertLongToTwoByteBuffer(long j4) {
|
||||
ByteBuffer allocate = ByteBuffer.allocate(2);
|
||||
allocate.putShort((short) j4);
|
||||
allocate.order(ByteOrder.BIG_ENDIAN);
|
||||
allocate.position(0);
|
||||
return allocate.array();
|
||||
}
|
||||
|
||||
private void populatePID(byte[] bArr) {
|
||||
byte[] convertLongToTwoByteBuffer = convertLongToTwoByteBuffer(Integer.valueOf(Process.myPid()).shortValue());
|
||||
bArr[8] = convertLongToTwoByteBuffer[0];
|
||||
bArr[9] = convertLongToTwoByteBuffer[1];
|
||||
}
|
||||
|
||||
private void populateSequenceNumber(byte[] bArr) {
|
||||
byte[] convertLongToTwoByteBuffer = convertLongToTwoByteBuffer(_sequenceNumber.incrementAndGet());
|
||||
bArr[6] = convertLongToTwoByteBuffer[0];
|
||||
bArr[7] = convertLongToTwoByteBuffer[1];
|
||||
}
|
||||
|
||||
private void populateTime(byte[] bArr) {
|
||||
long time = new Date().getTime();
|
||||
byte[] convertLongToFourByteBuffer = convertLongToFourByteBuffer(time / 1000);
|
||||
bArr[0] = convertLongToFourByteBuffer[0];
|
||||
bArr[1] = convertLongToFourByteBuffer[1];
|
||||
bArr[2] = convertLongToFourByteBuffer[2];
|
||||
bArr[3] = convertLongToFourByteBuffer[3];
|
||||
byte[] convertLongToTwoByteBuffer = convertLongToTwoByteBuffer(time % 1000);
|
||||
bArr[4] = convertLongToTwoByteBuffer[0];
|
||||
bArr[5] = convertLongToTwoByteBuffer[1];
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return _clsId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,340 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.hardware.SensorManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.Build;
|
||||
import android.os.Debug;
|
||||
import android.os.StatFs;
|
||||
import android.text.TextUtils;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import java.io.Closeable;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
import kotlin.UByte;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CommonUtils {
|
||||
static final String BUILD_IDS_ARCH_RESOURCE_NAME = "com.google.firebase.crashlytics.build_ids_arch";
|
||||
static final String BUILD_IDS_BUILD_ID_RESOURCE_NAME = "com.google.firebase.crashlytics.build_ids_build_id";
|
||||
static final String BUILD_IDS_LIB_NAMES_RESOURCE_NAME = "com.google.firebase.crashlytics.build_ids_lib";
|
||||
public static final int DEVICE_STATE_BETAOS = 8;
|
||||
public static final int DEVICE_STATE_COMPROMISEDLIBRARIES = 32;
|
||||
public static final int DEVICE_STATE_DEBUGGERATTACHED = 4;
|
||||
public static final int DEVICE_STATE_ISSIMULATOR = 1;
|
||||
public static final int DEVICE_STATE_JAILBROKEN = 2;
|
||||
public static final int DEVICE_STATE_VENDORINTERNAL = 16;
|
||||
private static final String GOLDFISH = "goldfish";
|
||||
private static final char[] HEX_VALUES = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
||||
static final String LEGACY_MAPPING_FILE_ID_RESOURCE_NAME = "com.crashlytics.android.build_id";
|
||||
public static final String LEGACY_SHARED_PREFS_NAME = "com.crashlytics.prefs";
|
||||
static final String MAPPING_FILE_ID_RESOURCE_NAME = "com.google.firebase.crashlytics.mapping_file_id";
|
||||
private static final String RANCHU = "ranchu";
|
||||
private static final String SDK = "sdk";
|
||||
private static final String SHA1_INSTANCE = "SHA-1";
|
||||
public static final String SHARED_PREFS_NAME = "com.google.firebase.crashlytics";
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public enum Architecture {
|
||||
X86_32,
|
||||
X86_64,
|
||||
ARM_UNKNOWN,
|
||||
PPC,
|
||||
PPC64,
|
||||
ARMV6,
|
||||
ARMV7,
|
||||
UNKNOWN,
|
||||
ARMV7S,
|
||||
ARM64;
|
||||
|
||||
private static final Map<String, Architecture> matcher;
|
||||
|
||||
static {
|
||||
Architecture architecture = X86_32;
|
||||
Architecture architecture2 = ARMV6;
|
||||
Architecture architecture3 = ARMV7;
|
||||
Architecture architecture4 = ARM64;
|
||||
HashMap hashMap = new HashMap(4);
|
||||
matcher = hashMap;
|
||||
hashMap.put("armeabi-v7a", architecture3);
|
||||
hashMap.put("armeabi", architecture2);
|
||||
hashMap.put("arm64-v8a", architecture4);
|
||||
hashMap.put("x86", architecture);
|
||||
}
|
||||
|
||||
public static Architecture getValue() {
|
||||
String str = Build.CPU_ABI;
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
Logger.getLogger().v("Architecture#getValue()::Build.CPU_ABI returned null or empty");
|
||||
return UNKNOWN;
|
||||
}
|
||||
Architecture architecture = matcher.get(str.toLowerCase(Locale.US));
|
||||
return architecture == null ? UNKNOWN : architecture;
|
||||
}
|
||||
}
|
||||
|
||||
public static long calculateFreeRamInBytes(Context context) {
|
||||
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
|
||||
((ActivityManager) context.getSystemService("activity")).getMemoryInfo(memoryInfo);
|
||||
return memoryInfo.availMem;
|
||||
}
|
||||
|
||||
public static synchronized long calculateTotalRamInBytes(Context context) {
|
||||
long j4;
|
||||
synchronized (CommonUtils.class) {
|
||||
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
|
||||
((ActivityManager) context.getSystemService("activity")).getMemoryInfo(memoryInfo);
|
||||
j4 = memoryInfo.totalMem;
|
||||
}
|
||||
return j4;
|
||||
}
|
||||
|
||||
public static long calculateUsedDiskSpaceInBytes(String str) {
|
||||
long blockSize = new StatFs(str).getBlockSize();
|
||||
return (r0.getBlockCount() * blockSize) - (blockSize * r0.getAvailableBlocks());
|
||||
}
|
||||
|
||||
@SuppressLint({"MissingPermission"})
|
||||
public static boolean canTryConnection(Context context) {
|
||||
if (!checkPermission(context, "android.permission.ACCESS_NETWORK_STATE")) {
|
||||
return true;
|
||||
}
|
||||
NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
|
||||
return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
|
||||
}
|
||||
|
||||
public static boolean checkPermission(Context context, String str) {
|
||||
return context.checkCallingOrSelfPermission(str) == 0;
|
||||
}
|
||||
|
||||
public static void closeOrLog(Closeable closeable, String str) {
|
||||
if (closeable != null) {
|
||||
try {
|
||||
closeable.close();
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().e(str, e4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void closeQuietly(Closeable closeable) {
|
||||
if (closeable != null) {
|
||||
try {
|
||||
closeable.close();
|
||||
} catch (RuntimeException e4) {
|
||||
throw e4;
|
||||
} catch (Exception unused) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String createInstanceIdFrom(String... strArr) {
|
||||
if (strArr != null && strArr.length != 0) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (String str : strArr) {
|
||||
if (str != null) {
|
||||
arrayList.add(str.replace("-", "").toLowerCase(Locale.US));
|
||||
}
|
||||
}
|
||||
Collections.sort(arrayList);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Iterator it = arrayList.iterator();
|
||||
while (it.hasNext()) {
|
||||
sb.append((String) it.next());
|
||||
}
|
||||
String sb2 = sb.toString();
|
||||
if (sb2.length() > 0) {
|
||||
return sha1(sb2);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean getBooleanResourceValue(Context context, String str, boolean z3) {
|
||||
Resources resources;
|
||||
if (context != null && (resources = context.getResources()) != null) {
|
||||
int resourcesIdentifier = getResourcesIdentifier(context, str, "bool");
|
||||
if (resourcesIdentifier > 0) {
|
||||
return resources.getBoolean(resourcesIdentifier);
|
||||
}
|
||||
int resourcesIdentifier2 = getResourcesIdentifier(context, str, "string");
|
||||
if (resourcesIdentifier2 > 0) {
|
||||
return Boolean.parseBoolean(context.getString(resourcesIdentifier2));
|
||||
}
|
||||
}
|
||||
return z3;
|
||||
}
|
||||
|
||||
public static List<BuildIdInfo> getBuildIdInfo(Context context) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
int resourcesIdentifier = getResourcesIdentifier(context, BUILD_IDS_LIB_NAMES_RESOURCE_NAME, "array");
|
||||
int resourcesIdentifier2 = getResourcesIdentifier(context, BUILD_IDS_ARCH_RESOURCE_NAME, "array");
|
||||
int resourcesIdentifier3 = getResourcesIdentifier(context, BUILD_IDS_BUILD_ID_RESOURCE_NAME, "array");
|
||||
if (resourcesIdentifier == 0 || resourcesIdentifier2 == 0 || resourcesIdentifier3 == 0) {
|
||||
Logger.getLogger().d(String.format("Could not find resources: %d %d %d", Integer.valueOf(resourcesIdentifier), Integer.valueOf(resourcesIdentifier2), Integer.valueOf(resourcesIdentifier3)));
|
||||
return arrayList;
|
||||
}
|
||||
String[] stringArray = context.getResources().getStringArray(resourcesIdentifier);
|
||||
String[] stringArray2 = context.getResources().getStringArray(resourcesIdentifier2);
|
||||
String[] stringArray3 = context.getResources().getStringArray(resourcesIdentifier3);
|
||||
if (stringArray.length != stringArray3.length || stringArray2.length != stringArray3.length) {
|
||||
Logger.getLogger().d(String.format("Lengths did not match: %d %d %d", Integer.valueOf(stringArray.length), Integer.valueOf(stringArray2.length), Integer.valueOf(stringArray3.length)));
|
||||
return arrayList;
|
||||
}
|
||||
for (int i = 0; i < stringArray3.length; i++) {
|
||||
arrayList.add(new BuildIdInfo(stringArray[i], stringArray2[i], stringArray3[i]));
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
public static int getCpuArchitectureInt() {
|
||||
return Architecture.getValue().ordinal();
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Type inference failed for: r0v1, types: [int] */
|
||||
/* JADX WARN: Type inference failed for: r0v5 */
|
||||
/* JADX WARN: Type inference failed for: r0v6 */
|
||||
public static int getDeviceState() {
|
||||
boolean isEmulator = isEmulator();
|
||||
?? r02 = isEmulator;
|
||||
if (isRooted()) {
|
||||
r02 = (isEmulator ? 1 : 0) | 2;
|
||||
}
|
||||
return isDebuggerAttached() ? r02 | 4 : r02;
|
||||
}
|
||||
|
||||
public static SharedPreferences getLegacySharedPrefs(Context context) {
|
||||
return context.getSharedPreferences(LEGACY_SHARED_PREFS_NAME, 0);
|
||||
}
|
||||
|
||||
public static String getMappingFileId(Context context) {
|
||||
int resourcesIdentifier = getResourcesIdentifier(context, MAPPING_FILE_ID_RESOURCE_NAME, "string");
|
||||
if (resourcesIdentifier == 0) {
|
||||
resourcesIdentifier = getResourcesIdentifier(context, LEGACY_MAPPING_FILE_ID_RESOURCE_NAME, "string");
|
||||
}
|
||||
if (resourcesIdentifier != 0) {
|
||||
return context.getResources().getString(resourcesIdentifier);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean getProximitySensorEnabled(Context context) {
|
||||
return (isEmulator() || ((SensorManager) context.getSystemService("sensor")).getDefaultSensor(8) == null) ? false : true;
|
||||
}
|
||||
|
||||
public static String getResourcePackageName(Context context) {
|
||||
int i = context.getApplicationContext().getApplicationInfo().icon;
|
||||
if (i <= 0) {
|
||||
return context.getPackageName();
|
||||
}
|
||||
try {
|
||||
String resourcePackageName = context.getResources().getResourcePackageName(i);
|
||||
return "android".equals(resourcePackageName) ? context.getPackageName() : resourcePackageName;
|
||||
} catch (Resources.NotFoundException unused) {
|
||||
return context.getPackageName();
|
||||
}
|
||||
}
|
||||
|
||||
public static int getResourcesIdentifier(Context context, String str, String str2) {
|
||||
return context.getResources().getIdentifier(str, str2, getResourcePackageName(context));
|
||||
}
|
||||
|
||||
public static SharedPreferences getSharedPrefs(Context context) {
|
||||
return context.getSharedPreferences("com.google.firebase.crashlytics", 0);
|
||||
}
|
||||
|
||||
private static String hash(String str, String str2) {
|
||||
return hash(str.getBytes(), str2);
|
||||
}
|
||||
|
||||
public static String hexify(byte[] bArr) {
|
||||
char[] cArr = new char[bArr.length * 2];
|
||||
for (int i = 0; i < bArr.length; i++) {
|
||||
byte b4 = bArr[i];
|
||||
int i4 = b4 & UByte.MAX_VALUE;
|
||||
int i5 = i * 2;
|
||||
char[] cArr2 = HEX_VALUES;
|
||||
cArr[i5] = cArr2[i4 >>> 4];
|
||||
cArr[i5 + 1] = cArr2[b4 & 15];
|
||||
}
|
||||
return new String(cArr);
|
||||
}
|
||||
|
||||
public static boolean isAppDebuggable(Context context) {
|
||||
return (context.getApplicationInfo().flags & 2) != 0;
|
||||
}
|
||||
|
||||
public static boolean isDebuggerAttached() {
|
||||
return Debug.isDebuggerConnected() || Debug.waitingForDebugger();
|
||||
}
|
||||
|
||||
public static boolean isEmulator() {
|
||||
if (Build.PRODUCT.contains(SDK)) {
|
||||
return true;
|
||||
}
|
||||
String str = Build.HARDWARE;
|
||||
return str.contains(GOLDFISH) || str.contains(RANCHU);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static boolean isLoggingEnabled(Context context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isRooted() {
|
||||
boolean isEmulator = isEmulator();
|
||||
String str = Build.TAGS;
|
||||
if ((isEmulator || str == null || !str.contains("test-keys")) && !new File("/system/app/Superuser.apk").exists()) {
|
||||
return !isEmulator && new File("/system/xbin/su").exists();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean nullSafeEquals(String str, String str2) {
|
||||
return str == null ? str2 == null : str.equals(str2);
|
||||
}
|
||||
|
||||
public static String padWithZerosToMaxIntWidth(int i) {
|
||||
if (i >= 0) {
|
||||
return String.format(Locale.US, "%1$10s", Integer.valueOf(i)).replace(' ', '0');
|
||||
}
|
||||
throw new IllegalArgumentException("value must be zero or greater");
|
||||
}
|
||||
|
||||
public static String sha1(String str) {
|
||||
return hash(str, SHA1_INSTANCE);
|
||||
}
|
||||
|
||||
public static String streamToString(InputStream inputStream) {
|
||||
Scanner useDelimiter = new Scanner(inputStream).useDelimiter("\\A");
|
||||
return useDelimiter.hasNext() ? useDelimiter.next() : "";
|
||||
}
|
||||
|
||||
private static String hash(byte[] bArr, String str) {
|
||||
try {
|
||||
MessageDigest messageDigest = MessageDigest.getInstance(str);
|
||||
messageDigest.update(bArr);
|
||||
return hexify(messageDigest.digest());
|
||||
} catch (NoSuchAlgorithmException e4) {
|
||||
Logger.getLogger().e("Could not create hashing algorithm: " + str + ", returning empty string.", e4);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsAppQualitySessionsStore {
|
||||
private static final String AQS_SESSION_ID_FILENAME_PREFIX = "aqs.";
|
||||
private static final FilenameFilter AQS_SESSION_ID_FILE_FILTER = new a(0);
|
||||
private static final Comparator<File> FILE_RECENCY_COMPARATOR = new b(0);
|
||||
private final FileStore fileStore;
|
||||
private String sessionId = null;
|
||||
private String appQualitySessionId = null;
|
||||
|
||||
public CrashlyticsAppQualitySessionsStore(FileStore fileStore) {
|
||||
this.fileStore = fileStore;
|
||||
}
|
||||
|
||||
public static /* synthetic */ boolean lambda$static$0(File file, String str) {
|
||||
return str.startsWith(AQS_SESSION_ID_FILENAME_PREFIX);
|
||||
}
|
||||
|
||||
public static /* synthetic */ int lambda$static$1(File file, File file2) {
|
||||
return Long.compare(file2.lastModified(), file.lastModified());
|
||||
}
|
||||
|
||||
private static void persist(FileStore fileStore, String str, String str2) {
|
||||
if (str == null || str2 == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
fileStore.getSessionFile(str, AQS_SESSION_ID_FILENAME_PREFIX.concat(str2)).createNewFile();
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().w("Failed to persist App Quality Sessions session id.", e4);
|
||||
}
|
||||
}
|
||||
|
||||
public static String readAqsSessionIdFile(FileStore fileStore, String str) {
|
||||
List<File> sessionFiles = fileStore.getSessionFiles(str, AQS_SESSION_ID_FILE_FILTER);
|
||||
if (!sessionFiles.isEmpty()) {
|
||||
return ((File) Collections.min(sessionFiles, FILE_RECENCY_COMPARATOR)).getName().substring(4);
|
||||
}
|
||||
Logger.getLogger().w("Unable to read App Quality Sessions session id.");
|
||||
return null;
|
||||
}
|
||||
|
||||
public synchronized String getAppQualitySessionId(String str) {
|
||||
if (Objects.equals(this.sessionId, str)) {
|
||||
return this.appQualitySessionId;
|
||||
}
|
||||
return readAqsSessionIdFile(this.fileStore, str);
|
||||
}
|
||||
|
||||
public synchronized void rotateAppQualitySessionId(String str) {
|
||||
if (!Objects.equals(this.appQualitySessionId, str)) {
|
||||
persist(this.fileStore, this.sessionId, str);
|
||||
this.appQualitySessionId = str;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void rotateSessionId(String str) {
|
||||
if (!Objects.equals(this.sessionId, str)) {
|
||||
persist(this.fileStore, str, this.appQualitySessionId);
|
||||
this.sessionId = str;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import com.google.firebase.sessions.api.SessionSubscriber;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsAppQualitySessionsSubscriber implements SessionSubscriber {
|
||||
private final CrashlyticsAppQualitySessionsStore appQualitySessionsStore;
|
||||
private final DataCollectionArbiter dataCollectionArbiter;
|
||||
|
||||
public CrashlyticsAppQualitySessionsSubscriber(DataCollectionArbiter dataCollectionArbiter, FileStore fileStore) {
|
||||
this.dataCollectionArbiter = dataCollectionArbiter;
|
||||
this.appQualitySessionsStore = new CrashlyticsAppQualitySessionsStore(fileStore);
|
||||
}
|
||||
|
||||
public String getAppQualitySessionId(String str) {
|
||||
return this.appQualitySessionsStore.getAppQualitySessionId(str);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.sessions.api.SessionSubscriber
|
||||
public SessionSubscriber.Name getSessionSubscriberName() {
|
||||
return SessionSubscriber.Name.CRASHLYTICS;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.sessions.api.SessionSubscriber
|
||||
public boolean isDataCollectionEnabled() {
|
||||
return this.dataCollectionArbiter.isAutomaticDataCollectionEnabled();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.sessions.api.SessionSubscriber
|
||||
public void onSessionChanged(SessionSubscriber.SessionDetails sessionDetails) {
|
||||
Logger.getLogger().d("App Quality Sessions session changed: " + sessionDetails);
|
||||
this.appQualitySessionsStore.rotateAppQualitySessionId(sessionDetails.getSessionId());
|
||||
}
|
||||
|
||||
public void setSessionId(String str) {
|
||||
this.appQualitySessionsStore.rotateSessionId(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.android.gms.tasks.Continuation;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsBackgroundWorker {
|
||||
private final Executor executor;
|
||||
private Task<Void> tail = Tasks.forResult(null);
|
||||
private final Object tailLock = new Object();
|
||||
private final ThreadLocal<Boolean> isExecutorThread = new ThreadLocal<>();
|
||||
|
||||
public CrashlyticsBackgroundWorker(Executor executor) {
|
||||
this.executor = executor;
|
||||
executor.execute(new Runnable() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker.1
|
||||
@Override // java.lang.Runnable
|
||||
public void run() {
|
||||
CrashlyticsBackgroundWorker.this.isExecutorThread.set(Boolean.TRUE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private <T> Task<Void> ignoreResult(Task<T> task) {
|
||||
return task.continueWith(this.executor, new Continuation<T, Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker.4
|
||||
@Override // com.google.android.gms.tasks.Continuation
|
||||
public Void then(Task<T> task2) throws Exception {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isRunningOnThread() {
|
||||
return Boolean.TRUE.equals(this.isExecutorThread.get());
|
||||
}
|
||||
|
||||
private <T> Continuation<Void, T> newContinuation(final Callable<T> callable) {
|
||||
return new Continuation<Void, T>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker.3
|
||||
@Override // com.google.android.gms.tasks.Continuation
|
||||
public T then(Task<Void> task) throws Exception {
|
||||
return (T) callable.call();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void checkRunningOnThread() {
|
||||
if (!isRunningOnThread()) {
|
||||
throw new IllegalStateException("Not running on background worker thread as intended.");
|
||||
}
|
||||
}
|
||||
|
||||
public Executor getExecutor() {
|
||||
return this.executor;
|
||||
}
|
||||
|
||||
public Task<Void> submit(final Runnable runnable) {
|
||||
return submit(new Callable<Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker.2
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
runnable.run();
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public <T> Task<T> submitTask(Callable<Task<T>> callable) {
|
||||
Task<T> continueWithTask;
|
||||
synchronized (this.tailLock) {
|
||||
continueWithTask = this.tail.continueWithTask(this.executor, newContinuation(callable));
|
||||
this.tail = ignoreResult(continueWithTask);
|
||||
}
|
||||
return continueWithTask;
|
||||
}
|
||||
|
||||
public <T> Task<T> submit(Callable<T> callable) {
|
||||
Task<T> continueWith;
|
||||
synchronized (this.tailLock) {
|
||||
continueWith = this.tail.continueWith(this.executor, newContinuation(callable));
|
||||
this.tail = ignoreResult(continueWith);
|
||||
}
|
||||
return continueWith;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,996 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import C.w;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.ApplicationExitInfo;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
import android.util.Base64;
|
||||
import com.google.android.gms.tasks.SuccessContinuation;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.NativeSessionFileProvider;
|
||||
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler;
|
||||
import com.google.firebase.crashlytics.internal.metadata.LogFileManager;
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.crashlytics.internal.model.StaticSessionData;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import com.google.firebase.crashlytics.internal.settings.Settings;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsProvider;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.Thread;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.SortedSet;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsController {
|
||||
static final FilenameFilter APP_EXCEPTION_MARKER_FILTER = new a(1);
|
||||
static final String APP_EXCEPTION_MARKER_PREFIX = ".ae";
|
||||
static final String FIREBASE_APPLICATION_EXCEPTION = "_ae";
|
||||
static final String FIREBASE_CRASH_TYPE = "fatal";
|
||||
static final int FIREBASE_CRASH_TYPE_FATAL = 1;
|
||||
static final String FIREBASE_TIMESTAMP = "timestamp";
|
||||
private static final String GENERATOR_FORMAT = "Crashlytics Android SDK/%s";
|
||||
private static final String META_INF_FOLDER = "META-INF/";
|
||||
static final String NATIVE_SESSION_DIR = "native-sessions";
|
||||
private static final String VERSION_CONTROL_INFO_FILE = "version-control-info.textproto";
|
||||
private static final String VERSION_CONTROL_INFO_KEY = "com.crashlytics.version-control-info";
|
||||
private final AnalyticsEventLogger analyticsEventLogger;
|
||||
private final AppData appData;
|
||||
private final CrashlyticsBackgroundWorker backgroundWorker;
|
||||
private final Context context;
|
||||
private CrashlyticsUncaughtExceptionHandler crashHandler;
|
||||
private final CrashlyticsFileMarker crashMarker;
|
||||
private final DataCollectionArbiter dataCollectionArbiter;
|
||||
private final FileStore fileStore;
|
||||
private final IdManager idManager;
|
||||
private final LogFileManager logFileManager;
|
||||
private final CrashlyticsNativeComponent nativeComponent;
|
||||
private final SessionReportingCoordinator reportingCoordinator;
|
||||
private final CrashlyticsAppQualitySessionsSubscriber sessionsSubscriber;
|
||||
private final UserMetadata userMetadata;
|
||||
private SettingsProvider settingsProvider = null;
|
||||
final TaskCompletionSource<Boolean> unsentReportsAvailable = new TaskCompletionSource<>();
|
||||
final TaskCompletionSource<Boolean> reportActionProvided = new TaskCompletionSource<>();
|
||||
final TaskCompletionSource<Void> unsentReportsHandled = new TaskCompletionSource<>();
|
||||
final AtomicBoolean checkForUnsentReportsCalled = new AtomicBoolean(false);
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass1 implements CrashlyticsUncaughtExceptionHandler.CrashListener {
|
||||
public AnonymousClass1() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.CrashListener
|
||||
public void onUncaughtException(SettingsProvider settingsProvider, Thread thread, Throwable th) {
|
||||
CrashlyticsController.this.handleUncaughtException(settingsProvider, thread, th);
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$2 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass2 implements Callable<Task<Void>> {
|
||||
final /* synthetic */ Throwable val$ex;
|
||||
final /* synthetic */ boolean val$isOnDemand;
|
||||
final /* synthetic */ SettingsProvider val$settingsProvider;
|
||||
final /* synthetic */ Thread val$thread;
|
||||
final /* synthetic */ long val$timestampMillis;
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$2$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass1 implements SuccessContinuation<Settings, Void> {
|
||||
final /* synthetic */ String val$currentSessionId;
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public AnonymousClass1(Executor executor, String str) {
|
||||
r2 = executor;
|
||||
r3 = str;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings, cannot send reports at crash time.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
return Tasks.whenAll((Task<?>[]) new Task[]{CrashlyticsController.this.logAnalyticsAppExceptionEvents(), CrashlyticsController.this.reportingCoordinator.sendReports(r2, r7 ? r3 : null)});
|
||||
}
|
||||
}
|
||||
|
||||
public AnonymousClass2(long j4, Throwable th, Thread thread, SettingsProvider settingsProvider, boolean z3) {
|
||||
r2 = j4;
|
||||
r4 = th;
|
||||
r5 = thread;
|
||||
r6 = settingsProvider;
|
||||
r7 = z3;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Task<Void> call() throws Exception {
|
||||
long timestampSeconds = CrashlyticsController.getTimestampSeconds(r2);
|
||||
String currentSessionId = CrashlyticsController.this.getCurrentSessionId();
|
||||
if (currentSessionId == null) {
|
||||
Logger.getLogger().e("Tried to write a fatal exception while no session was open.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.crashMarker.create();
|
||||
CrashlyticsController.this.reportingCoordinator.persistFatalEvent(r4, r5, currentSessionId, timestampSeconds);
|
||||
CrashlyticsController.this.doWriteAppExceptionMarker(r2);
|
||||
CrashlyticsController.this.doCloseSessions(r6);
|
||||
CrashlyticsController.this.doOpenSession(new CLSUUID(CrashlyticsController.this.idManager).toString(), Boolean.valueOf(r7));
|
||||
if (!CrashlyticsController.this.dataCollectionArbiter.isAutomaticDataCollectionEnabled()) {
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
Executor executor = CrashlyticsController.this.backgroundWorker.getExecutor();
|
||||
return r6.getSettingsAsync().onSuccessTask(executor, new SuccessContinuation<Settings, Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.2.1
|
||||
final /* synthetic */ String val$currentSessionId;
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public AnonymousClass1(Executor executor2, String currentSessionId2) {
|
||||
r2 = executor2;
|
||||
r3 = currentSessionId2;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings, cannot send reports at crash time.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
return Tasks.whenAll((Task<?>[]) new Task[]{CrashlyticsController.this.logAnalyticsAppExceptionEvents(), CrashlyticsController.this.reportingCoordinator.sendReports(r2, r7 ? r3 : null)});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$3 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass3 implements SuccessContinuation<Void, Boolean> {
|
||||
public AnonymousClass3() {
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Boolean> then(Void r12) throws Exception {
|
||||
return Tasks.forResult(Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$4 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass4 implements SuccessContinuation<Boolean, Void> {
|
||||
final /* synthetic */ Task val$settingsDataTask;
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$4$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass1 implements Callable<Task<Void>> {
|
||||
final /* synthetic */ Boolean val$send;
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$4$1$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class C00161 implements SuccessContinuation<Settings, Void> {
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public C00161(Executor executor) {
|
||||
r2 = executor;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings at app startup. Cannot send cached reports");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.logAnalyticsAppExceptionEvents();
|
||||
CrashlyticsController.this.reportingCoordinator.sendReports(r2);
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
}
|
||||
|
||||
public AnonymousClass1(Boolean bool) {
|
||||
r2 = bool;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Task<Void> call() throws Exception {
|
||||
if (!r2.booleanValue()) {
|
||||
Logger.getLogger().v("Deleting cached crash reports...");
|
||||
CrashlyticsController.deleteFiles(CrashlyticsController.this.listAppExceptionMarkerFiles());
|
||||
CrashlyticsController.this.reportingCoordinator.removeAllReports();
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
Logger.getLogger().d("Sending cached crash reports...");
|
||||
CrashlyticsController.this.dataCollectionArbiter.grantDataCollectionPermission(r2.booleanValue());
|
||||
Executor executor = CrashlyticsController.this.backgroundWorker.getExecutor();
|
||||
return AnonymousClass4.this.val$settingsDataTask.onSuccessTask(executor, new SuccessContinuation<Settings, Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.4.1.1
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public C00161(Executor executor2) {
|
||||
r2 = executor2;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings at app startup. Cannot send cached reports");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.logAnalyticsAppExceptionEvents();
|
||||
CrashlyticsController.this.reportingCoordinator.sendReports(r2);
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public AnonymousClass4(Task task) {
|
||||
this.val$settingsDataTask = task;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Boolean bool) throws Exception {
|
||||
return CrashlyticsController.this.backgroundWorker.submitTask(new Callable<Task<Void>>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.4.1
|
||||
final /* synthetic */ Boolean val$send;
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$4$1$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class C00161 implements SuccessContinuation<Settings, Void> {
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public C00161(Executor executor2) {
|
||||
r2 = executor2;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings at app startup. Cannot send cached reports");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.logAnalyticsAppExceptionEvents();
|
||||
CrashlyticsController.this.reportingCoordinator.sendReports(r2);
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
}
|
||||
|
||||
public AnonymousClass1(Boolean bool2) {
|
||||
r2 = bool2;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Task<Void> call() throws Exception {
|
||||
if (!r2.booleanValue()) {
|
||||
Logger.getLogger().v("Deleting cached crash reports...");
|
||||
CrashlyticsController.deleteFiles(CrashlyticsController.this.listAppExceptionMarkerFiles());
|
||||
CrashlyticsController.this.reportingCoordinator.removeAllReports();
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
Logger.getLogger().d("Sending cached crash reports...");
|
||||
CrashlyticsController.this.dataCollectionArbiter.grantDataCollectionPermission(r2.booleanValue());
|
||||
Executor executor2 = CrashlyticsController.this.backgroundWorker.getExecutor();
|
||||
return AnonymousClass4.this.val$settingsDataTask.onSuccessTask(executor2, new SuccessContinuation<Settings, Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.4.1.1
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public C00161(Executor executor22) {
|
||||
r2 = executor22;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings at app startup. Cannot send cached reports");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.logAnalyticsAppExceptionEvents();
|
||||
CrashlyticsController.this.reportingCoordinator.sendReports(r2);
|
||||
CrashlyticsController.this.unsentReportsHandled.trySetResult(null);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$5 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass5 implements Callable<Void> {
|
||||
final /* synthetic */ String val$msg;
|
||||
final /* synthetic */ long val$timestamp;
|
||||
|
||||
public AnonymousClass5(long j4, String str) {
|
||||
r2 = j4;
|
||||
r4 = str;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
if (CrashlyticsController.this.isHandlingException()) {
|
||||
return null;
|
||||
}
|
||||
CrashlyticsController.this.logFileManager.writeToLog(r2, r4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$6 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass6 implements Runnable {
|
||||
final /* synthetic */ Throwable val$ex;
|
||||
final /* synthetic */ Thread val$thread;
|
||||
final /* synthetic */ long val$timestampMillis;
|
||||
|
||||
public AnonymousClass6(long j4, Throwable th, Thread thread) {
|
||||
r2 = j4;
|
||||
r4 = th;
|
||||
r5 = thread;
|
||||
}
|
||||
|
||||
@Override // java.lang.Runnable
|
||||
public void run() {
|
||||
if (CrashlyticsController.this.isHandlingException()) {
|
||||
return;
|
||||
}
|
||||
long timestampSeconds = CrashlyticsController.getTimestampSeconds(r2);
|
||||
String currentSessionId = CrashlyticsController.this.getCurrentSessionId();
|
||||
if (currentSessionId == null) {
|
||||
Logger.getLogger().w("Tried to write a non-fatal exception while no session was open.");
|
||||
} else {
|
||||
CrashlyticsController.this.reportingCoordinator.persistNonFatalEvent(r4, r5, currentSessionId, timestampSeconds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$7 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass7 implements Callable<Void> {
|
||||
final /* synthetic */ String val$sessionIdentifier;
|
||||
|
||||
public AnonymousClass7(String str) {
|
||||
r2 = str;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
CrashlyticsController.this.doOpenSession(r2, Boolean.FALSE);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$8 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass8 implements Callable<Void> {
|
||||
final /* synthetic */ long val$timestamp;
|
||||
|
||||
public AnonymousClass8(long j4) {
|
||||
r2 = j4;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(CrashlyticsController.FIREBASE_CRASH_TYPE, 1);
|
||||
bundle.putLong(CrashlyticsController.FIREBASE_TIMESTAMP, r2);
|
||||
CrashlyticsController.this.analyticsEventLogger.logEvent(CrashlyticsController.FIREBASE_APPLICATION_EXCEPTION, bundle);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public CrashlyticsController(Context context, CrashlyticsBackgroundWorker crashlyticsBackgroundWorker, IdManager idManager, DataCollectionArbiter dataCollectionArbiter, FileStore fileStore, CrashlyticsFileMarker crashlyticsFileMarker, AppData appData, UserMetadata userMetadata, LogFileManager logFileManager, SessionReportingCoordinator sessionReportingCoordinator, CrashlyticsNativeComponent crashlyticsNativeComponent, AnalyticsEventLogger analyticsEventLogger, CrashlyticsAppQualitySessionsSubscriber crashlyticsAppQualitySessionsSubscriber) {
|
||||
this.context = context;
|
||||
this.backgroundWorker = crashlyticsBackgroundWorker;
|
||||
this.idManager = idManager;
|
||||
this.dataCollectionArbiter = dataCollectionArbiter;
|
||||
this.fileStore = fileStore;
|
||||
this.crashMarker = crashlyticsFileMarker;
|
||||
this.appData = appData;
|
||||
this.userMetadata = userMetadata;
|
||||
this.logFileManager = logFileManager;
|
||||
this.nativeComponent = crashlyticsNativeComponent;
|
||||
this.analyticsEventLogger = analyticsEventLogger;
|
||||
this.sessionsSubscriber = crashlyticsAppQualitySessionsSubscriber;
|
||||
this.reportingCoordinator = sessionReportingCoordinator;
|
||||
}
|
||||
|
||||
private static StaticSessionData.AppData createAppData(IdManager idManager, AppData appData) {
|
||||
return StaticSessionData.AppData.create(idManager.getAppIdentifier(), appData.versionCode, appData.versionName, idManager.getInstallIds().getCrashlyticsInstallId(), DeliveryMechanism.determineFrom(appData.installerPackageName).getId(), appData.developmentPlatformProvider);
|
||||
}
|
||||
|
||||
private static StaticSessionData.DeviceData createDeviceData(Context context) {
|
||||
StatFs statFs = new StatFs(Environment.getDataDirectory().getPath());
|
||||
return StaticSessionData.DeviceData.create(CommonUtils.getCpuArchitectureInt(), Build.MODEL, Runtime.getRuntime().availableProcessors(), CommonUtils.calculateTotalRamInBytes(context), statFs.getBlockCount() * statFs.getBlockSize(), CommonUtils.isEmulator(), CommonUtils.getDeviceState(), Build.MANUFACTURER, Build.PRODUCT);
|
||||
}
|
||||
|
||||
private static StaticSessionData.OsData createOsData() {
|
||||
return StaticSessionData.OsData.create(Build.VERSION.RELEASE, Build.VERSION.CODENAME, CommonUtils.isRooted());
|
||||
}
|
||||
|
||||
public static void deleteFiles(List<File> list) {
|
||||
Iterator<File> it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
it.next().delete();
|
||||
}
|
||||
}
|
||||
|
||||
public void doOpenSession(String str, Boolean bool) {
|
||||
long currentTimestampSeconds = getCurrentTimestampSeconds();
|
||||
Logger.getLogger().d("Opening a new session with ID " + str);
|
||||
Locale locale = Locale.US;
|
||||
this.nativeComponent.prepareNativeSession(str, w.z("Crashlytics Android SDK/", CrashlyticsCore.getVersion()), currentTimestampSeconds, StaticSessionData.create(createAppData(this.idManager, this.appData), createOsData(), createDeviceData(this.context)));
|
||||
if (bool.booleanValue() && str != null) {
|
||||
this.userMetadata.setNewSession(str);
|
||||
}
|
||||
this.logFileManager.setCurrentSession(str);
|
||||
this.sessionsSubscriber.setSessionId(str);
|
||||
this.reportingCoordinator.onBeginSession(str, currentTimestampSeconds);
|
||||
}
|
||||
|
||||
public void doWriteAppExceptionMarker(long j4) {
|
||||
try {
|
||||
if (this.fileStore.getCommonFile(APP_EXCEPTION_MARKER_PREFIX + j4).createNewFile()) {
|
||||
} else {
|
||||
throw new IOException("Create new file failed.");
|
||||
}
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().w("Could not create app exception marker file.", e4);
|
||||
}
|
||||
}
|
||||
|
||||
private void finalizePreviousNativeSession(String str) {
|
||||
Logger.getLogger().v("Finalizing native report for session " + str);
|
||||
NativeSessionFileProvider sessionFileProvider = this.nativeComponent.getSessionFileProvider(str);
|
||||
File minidumpFile = sessionFileProvider.getMinidumpFile();
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInto = sessionFileProvider.getApplicationExitInto();
|
||||
if (nativeCoreAbsent(str, minidumpFile, applicationExitInto)) {
|
||||
Logger.getLogger().w("No native core present");
|
||||
return;
|
||||
}
|
||||
long lastModified = minidumpFile.lastModified();
|
||||
LogFileManager logFileManager = new LogFileManager(this.fileStore, str);
|
||||
File nativeSessionDir = this.fileStore.getNativeSessionDir(str);
|
||||
if (!nativeSessionDir.isDirectory()) {
|
||||
Logger.getLogger().w("Couldn't create directory to store native session files, aborting.");
|
||||
return;
|
||||
}
|
||||
doWriteAppExceptionMarker(lastModified);
|
||||
List<NativeSessionFile> nativeSessionFiles = getNativeSessionFiles(sessionFileProvider, str, this.fileStore, logFileManager.getBytesForLog());
|
||||
NativeSessionFileGzipper.processNativeSessions(nativeSessionDir, nativeSessionFiles);
|
||||
Logger.getLogger().d("CrashlyticsController#finalizePreviousNativeSession");
|
||||
this.reportingCoordinator.finalizeSessionWithNativeEvent(str, nativeSessionFiles, applicationExitInto);
|
||||
logFileManager.clearLog();
|
||||
}
|
||||
|
||||
private static boolean firebaseCrashExists() {
|
||||
try {
|
||||
Class.forName("com.google.firebase.crash.FirebaseCrash");
|
||||
return true;
|
||||
} catch (ClassNotFoundException unused) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private Context getContext() {
|
||||
return this.context;
|
||||
}
|
||||
|
||||
public String getCurrentSessionId() {
|
||||
SortedSet<String> listSortedOpenSessionIds = this.reportingCoordinator.listSortedOpenSessionIds();
|
||||
if (listSortedOpenSessionIds.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return listSortedOpenSessionIds.first();
|
||||
}
|
||||
|
||||
private static long getCurrentTimestampSeconds() {
|
||||
return getTimestampSeconds(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
public static List<NativeSessionFile> getNativeSessionFiles(NativeSessionFileProvider nativeSessionFileProvider, String str, FileStore fileStore, byte[] bArr) {
|
||||
File sessionFile = fileStore.getSessionFile(str, UserMetadata.USERDATA_FILENAME);
|
||||
File sessionFile2 = fileStore.getSessionFile(str, UserMetadata.KEYDATA_FILENAME);
|
||||
File sessionFile3 = fileStore.getSessionFile(str, UserMetadata.ROLLOUTS_STATE_FILENAME);
|
||||
ArrayList arrayList = new ArrayList();
|
||||
arrayList.add(new BytesBackedNativeSessionFile("logs_file", "logs", bArr));
|
||||
arrayList.add(new FileBackedNativeSessionFile("crash_meta_file", "metadata", nativeSessionFileProvider.getMetadataFile()));
|
||||
arrayList.add(new FileBackedNativeSessionFile("session_meta_file", "session", nativeSessionFileProvider.getSessionFile()));
|
||||
arrayList.add(new FileBackedNativeSessionFile("app_meta_file", "app", nativeSessionFileProvider.getAppFile()));
|
||||
arrayList.add(new FileBackedNativeSessionFile("device_meta_file", "device", nativeSessionFileProvider.getDeviceFile()));
|
||||
arrayList.add(new FileBackedNativeSessionFile("os_meta_file", "os", nativeSessionFileProvider.getOsFile()));
|
||||
arrayList.add(nativeCoreFile(nativeSessionFileProvider));
|
||||
arrayList.add(new FileBackedNativeSessionFile("user_meta_file", "user", sessionFile));
|
||||
arrayList.add(new FileBackedNativeSessionFile("keys_file", UserMetadata.KEYDATA_FILENAME, sessionFile2));
|
||||
arrayList.add(new FileBackedNativeSessionFile("rollouts_file", "rollouts", sessionFile3));
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private InputStream getResourceAsStream(String str) {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
if (classLoader == null) {
|
||||
Logger.getLogger().w("Couldn't get Class Loader");
|
||||
return null;
|
||||
}
|
||||
InputStream resourceAsStream = classLoader.getResourceAsStream(str);
|
||||
if (resourceAsStream != null) {
|
||||
return resourceAsStream;
|
||||
}
|
||||
Logger.getLogger().i("No version control information found");
|
||||
return null;
|
||||
}
|
||||
|
||||
public static long getTimestampSeconds(long j4) {
|
||||
return j4 / 1000;
|
||||
}
|
||||
|
||||
public static /* synthetic */ boolean lambda$static$0(File file, String str) {
|
||||
return str.startsWith(APP_EXCEPTION_MARKER_PREFIX);
|
||||
}
|
||||
|
||||
private Task<Void> logAnalyticsAppExceptionEvent(long j4) {
|
||||
if (firebaseCrashExists()) {
|
||||
Logger.getLogger().w("Skipping logging Crashlytics event to Firebase, FirebaseCrash exists");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
Logger.getLogger().d("Logging app exception event to Firebase Analytics");
|
||||
return Tasks.call(new ScheduledThreadPoolExecutor(1), new Callable<Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.8
|
||||
final /* synthetic */ long val$timestamp;
|
||||
|
||||
public AnonymousClass8(long j42) {
|
||||
r2 = j42;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(CrashlyticsController.FIREBASE_CRASH_TYPE, 1);
|
||||
bundle.putLong(CrashlyticsController.FIREBASE_TIMESTAMP, r2);
|
||||
CrashlyticsController.this.analyticsEventLogger.logEvent(CrashlyticsController.FIREBASE_APPLICATION_EXCEPTION, bundle);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Task<Void> logAnalyticsAppExceptionEvents() {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (File file : listAppExceptionMarkerFiles()) {
|
||||
try {
|
||||
arrayList.add(logAnalyticsAppExceptionEvent(Long.parseLong(file.getName().substring(3))));
|
||||
} catch (NumberFormatException unused) {
|
||||
Logger.getLogger().w("Could not parse app exception timestamp from file " + file.getName());
|
||||
}
|
||||
file.delete();
|
||||
}
|
||||
return Tasks.whenAll(arrayList);
|
||||
}
|
||||
|
||||
private static boolean nativeCoreAbsent(String str, File file, CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
if (file == null || !file.exists()) {
|
||||
Logger.getLogger().w("No minidump data found for session " + str);
|
||||
}
|
||||
if (applicationExitInfo == null) {
|
||||
Logger.getLogger().i("No Tombstones data found for session " + str);
|
||||
}
|
||||
return (file == null || !file.exists()) && applicationExitInfo == null;
|
||||
}
|
||||
|
||||
private static NativeSessionFile nativeCoreFile(NativeSessionFileProvider nativeSessionFileProvider) {
|
||||
File minidumpFile = nativeSessionFileProvider.getMinidumpFile();
|
||||
return (minidumpFile == null || !minidumpFile.exists()) ? new BytesBackedNativeSessionFile("minidump_file", "minidump", new byte[]{0}) : new FileBackedNativeSessionFile("minidump_file", "minidump", minidumpFile);
|
||||
}
|
||||
|
||||
private static byte[] readResource(InputStream inputStream) throws IOException {
|
||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
byte[] bArr = new byte[1024];
|
||||
while (true) {
|
||||
int read = inputStream.read(bArr);
|
||||
if (read == -1) {
|
||||
return byteArrayOutputStream.toByteArray();
|
||||
}
|
||||
byteArrayOutputStream.write(bArr, 0, read);
|
||||
}
|
||||
}
|
||||
|
||||
private Task<Boolean> waitForReportAction() {
|
||||
if (this.dataCollectionArbiter.isAutomaticDataCollectionEnabled()) {
|
||||
Logger.getLogger().d("Automatic data collection is enabled. Allowing upload.");
|
||||
this.unsentReportsAvailable.trySetResult(Boolean.FALSE);
|
||||
return Tasks.forResult(Boolean.TRUE);
|
||||
}
|
||||
Logger.getLogger().d("Automatic data collection is disabled.");
|
||||
Logger.getLogger().v("Notifying that unsent reports are available.");
|
||||
this.unsentReportsAvailable.trySetResult(Boolean.TRUE);
|
||||
Task<TContinuationResult> onSuccessTask = this.dataCollectionArbiter.waitForAutomaticDataCollectionEnabled().onSuccessTask(new SuccessContinuation<Void, Boolean>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.3
|
||||
public AnonymousClass3() {
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Boolean> then(Void r12) throws Exception {
|
||||
return Tasks.forResult(Boolean.TRUE);
|
||||
}
|
||||
});
|
||||
Logger.getLogger().d("Waiting for send/deleteUnsentReports to be called.");
|
||||
return Utils.race(onSuccessTask, this.reportActionProvided.getTask());
|
||||
}
|
||||
|
||||
private void writeApplicationExitInfoEventIfRelevant(String str) {
|
||||
List<ApplicationExitInfo> historicalProcessExitReasons;
|
||||
int i = Build.VERSION.SDK_INT;
|
||||
if (i < 30) {
|
||||
Logger.getLogger().v("ANR feature enabled, but device is API " + i);
|
||||
return;
|
||||
}
|
||||
historicalProcessExitReasons = ((ActivityManager) this.context.getSystemService("activity")).getHistoricalProcessExitReasons(null, 0, 0);
|
||||
if (historicalProcessExitReasons.size() != 0) {
|
||||
this.reportingCoordinator.persistRelevantAppExitInfoEvent(str, historicalProcessExitReasons, new LogFileManager(this.fileStore, str), UserMetadata.loadFromExistingSession(str, this.fileStore, this.backgroundWorker));
|
||||
} else {
|
||||
Logger.getLogger().v("No ApplicationExitInfo available. Session: " + str);
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Boolean> checkForUnsentReports() {
|
||||
if (this.checkForUnsentReportsCalled.compareAndSet(false, true)) {
|
||||
return this.unsentReportsAvailable.getTask();
|
||||
}
|
||||
Logger.getLogger().w("checkForUnsentReports should only be called once per execution.");
|
||||
return Tasks.forResult(Boolean.FALSE);
|
||||
}
|
||||
|
||||
public Task<Void> deleteUnsentReports() {
|
||||
this.reportActionProvided.trySetResult(Boolean.FALSE);
|
||||
return this.unsentReportsHandled.getTask();
|
||||
}
|
||||
|
||||
public boolean didCrashOnPreviousExecution() {
|
||||
if (!this.crashMarker.isPresent()) {
|
||||
String currentSessionId = getCurrentSessionId();
|
||||
return currentSessionId != null && this.nativeComponent.hasCrashDataForSession(currentSessionId);
|
||||
}
|
||||
Logger.getLogger().v("Found previous crash marker.");
|
||||
this.crashMarker.remove();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void doCloseSessions(SettingsProvider settingsProvider) {
|
||||
doCloseSessions(false, settingsProvider);
|
||||
}
|
||||
|
||||
public void enableExceptionHandling(String str, Thread.UncaughtExceptionHandler uncaughtExceptionHandler, SettingsProvider settingsProvider) {
|
||||
this.settingsProvider = settingsProvider;
|
||||
openSession(str);
|
||||
CrashlyticsUncaughtExceptionHandler crashlyticsUncaughtExceptionHandler = new CrashlyticsUncaughtExceptionHandler(new CrashlyticsUncaughtExceptionHandler.CrashListener() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.1
|
||||
public AnonymousClass1() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.CrashListener
|
||||
public void onUncaughtException(SettingsProvider settingsProvider2, Thread thread, Throwable th) {
|
||||
CrashlyticsController.this.handleUncaughtException(settingsProvider2, thread, th);
|
||||
}
|
||||
}, settingsProvider, uncaughtExceptionHandler, this.nativeComponent);
|
||||
this.crashHandler = crashlyticsUncaughtExceptionHandler;
|
||||
Thread.setDefaultUncaughtExceptionHandler(crashlyticsUncaughtExceptionHandler);
|
||||
}
|
||||
|
||||
public boolean finalizeSessions(SettingsProvider settingsProvider) {
|
||||
this.backgroundWorker.checkRunningOnThread();
|
||||
if (isHandlingException()) {
|
||||
Logger.getLogger().w("Skipping session finalization because a crash has already occurred.");
|
||||
return false;
|
||||
}
|
||||
Logger.getLogger().v("Finalizing previously open sessions.");
|
||||
try {
|
||||
doCloseSessions(true, settingsProvider);
|
||||
Logger.getLogger().v("Closed all previously open sessions.");
|
||||
return true;
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("Unable to finalize previously open sessions.", e4);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public UserMetadata getUserMetadata() {
|
||||
return this.userMetadata;
|
||||
}
|
||||
|
||||
public String getVersionControlInfo() throws IOException {
|
||||
InputStream resourceAsStream = getResourceAsStream("META-INF/version-control-info.textproto");
|
||||
if (resourceAsStream == null) {
|
||||
return null;
|
||||
}
|
||||
Logger.getLogger().d("Read version control info");
|
||||
return Base64.encodeToString(readResource(resourceAsStream), 0);
|
||||
}
|
||||
|
||||
public void handleUncaughtException(SettingsProvider settingsProvider, Thread thread, Throwable th) {
|
||||
handleUncaughtException(settingsProvider, thread, th, false);
|
||||
}
|
||||
|
||||
public boolean isHandlingException() {
|
||||
CrashlyticsUncaughtExceptionHandler crashlyticsUncaughtExceptionHandler = this.crashHandler;
|
||||
return crashlyticsUncaughtExceptionHandler != null && crashlyticsUncaughtExceptionHandler.isHandlingException();
|
||||
}
|
||||
|
||||
public List<File> listAppExceptionMarkerFiles() {
|
||||
return this.fileStore.getCommonFiles(APP_EXCEPTION_MARKER_FILTER);
|
||||
}
|
||||
|
||||
public void logFatalException(Thread thread, Throwable th) {
|
||||
SettingsProvider settingsProvider = this.settingsProvider;
|
||||
if (settingsProvider == null) {
|
||||
Logger.getLogger().w("settingsProvider not set");
|
||||
} else {
|
||||
handleUncaughtException(settingsProvider, thread, th, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void openSession(String str) {
|
||||
this.backgroundWorker.submit(new Callable<Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.7
|
||||
final /* synthetic */ String val$sessionIdentifier;
|
||||
|
||||
public AnonymousClass7(String str2) {
|
||||
r2 = str2;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
CrashlyticsController.this.doOpenSession(r2, Boolean.FALSE);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void saveVersionControlInfo() {
|
||||
try {
|
||||
String versionControlInfo = getVersionControlInfo();
|
||||
if (versionControlInfo != null) {
|
||||
setInternalKey(VERSION_CONTROL_INFO_KEY, versionControlInfo);
|
||||
Logger.getLogger().i("Saved version control info");
|
||||
}
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().w("Unable to save version control info", e4);
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Void> sendUnsentReports() {
|
||||
this.reportActionProvided.trySetResult(Boolean.TRUE);
|
||||
return this.unsentReportsHandled.getTask();
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, String str2) {
|
||||
try {
|
||||
this.userMetadata.setCustomKey(str, str2);
|
||||
} catch (IllegalArgumentException e4) {
|
||||
Context context = this.context;
|
||||
if (context != null && CommonUtils.isAppDebuggable(context)) {
|
||||
throw e4;
|
||||
}
|
||||
Logger.getLogger().e("Attempting to set custom attribute with null key, ignoring.");
|
||||
}
|
||||
}
|
||||
|
||||
public void setCustomKeys(Map<String, String> map) {
|
||||
this.userMetadata.setCustomKeys(map);
|
||||
}
|
||||
|
||||
public void setInternalKey(String str, String str2) {
|
||||
try {
|
||||
this.userMetadata.setInternalKey(str, str2);
|
||||
} catch (IllegalArgumentException e4) {
|
||||
Context context = this.context;
|
||||
if (context != null && CommonUtils.isAppDebuggable(context)) {
|
||||
throw e4;
|
||||
}
|
||||
Logger.getLogger().e("Attempting to set custom attribute with null key, ignoring.");
|
||||
}
|
||||
}
|
||||
|
||||
public void setUserId(String str) {
|
||||
this.userMetadata.setUserId(str);
|
||||
}
|
||||
|
||||
@SuppressLint({"TaskMainThread"})
|
||||
public Task<Void> submitAllReports(Task<Settings> task) {
|
||||
if (this.reportingCoordinator.hasReportsToSend()) {
|
||||
Logger.getLogger().v("Crash reports are available to be sent.");
|
||||
return waitForReportAction().onSuccessTask(new AnonymousClass4(task));
|
||||
}
|
||||
Logger.getLogger().v("No crash reports are available to be sent.");
|
||||
this.unsentReportsAvailable.trySetResult(Boolean.FALSE);
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
|
||||
public void writeNonFatalException(Thread thread, Throwable th) {
|
||||
this.backgroundWorker.submit(new Runnable() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.6
|
||||
final /* synthetic */ Throwable val$ex;
|
||||
final /* synthetic */ Thread val$thread;
|
||||
final /* synthetic */ long val$timestampMillis;
|
||||
|
||||
public AnonymousClass6(long j4, Throwable th2, Thread thread2) {
|
||||
r2 = j4;
|
||||
r4 = th2;
|
||||
r5 = thread2;
|
||||
}
|
||||
|
||||
@Override // java.lang.Runnable
|
||||
public void run() {
|
||||
if (CrashlyticsController.this.isHandlingException()) {
|
||||
return;
|
||||
}
|
||||
long timestampSeconds = CrashlyticsController.getTimestampSeconds(r2);
|
||||
String currentSessionId = CrashlyticsController.this.getCurrentSessionId();
|
||||
if (currentSessionId == null) {
|
||||
Logger.getLogger().w("Tried to write a non-fatal exception while no session was open.");
|
||||
} else {
|
||||
CrashlyticsController.this.reportingCoordinator.persistNonFatalEvent(r4, r5, currentSessionId, timestampSeconds);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void writeToLog(long j4, String str) {
|
||||
this.backgroundWorker.submit(new Callable<Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.5
|
||||
final /* synthetic */ String val$msg;
|
||||
final /* synthetic */ long val$timestamp;
|
||||
|
||||
public AnonymousClass5(long j42, String str2) {
|
||||
r2 = j42;
|
||||
r4 = str2;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Void call() throws Exception {
|
||||
if (CrashlyticsController.this.isHandlingException()) {
|
||||
return null;
|
||||
}
|
||||
CrashlyticsController.this.logFileManager.writeToLog(r2, r4);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
private void doCloseSessions(boolean z3, SettingsProvider settingsProvider) {
|
||||
String str;
|
||||
ArrayList arrayList = new ArrayList(this.reportingCoordinator.listSortedOpenSessionIds());
|
||||
if (arrayList.size() <= z3) {
|
||||
Logger.getLogger().v("No open sessions to be closed.");
|
||||
return;
|
||||
}
|
||||
String str2 = (String) arrayList.get(z3 ? 1 : 0);
|
||||
if (settingsProvider.getSettingsSync().featureFlagData.collectAnrs) {
|
||||
writeApplicationExitInfoEventIfRelevant(str2);
|
||||
} else {
|
||||
Logger.getLogger().v("ANR feature disabled.");
|
||||
}
|
||||
if (this.nativeComponent.hasCrashDataForSession(str2)) {
|
||||
finalizePreviousNativeSession(str2);
|
||||
}
|
||||
if (z3 != 0) {
|
||||
str = (String) arrayList.get(0);
|
||||
} else {
|
||||
this.sessionsSubscriber.setSessionId(null);
|
||||
str = null;
|
||||
}
|
||||
this.reportingCoordinator.finalizeSessions(getCurrentTimestampSeconds(), str);
|
||||
}
|
||||
|
||||
public synchronized void handleUncaughtException(SettingsProvider settingsProvider, Thread thread, Throwable th, boolean z3) {
|
||||
CrashlyticsController crashlyticsController;
|
||||
try {
|
||||
try {
|
||||
Logger.getLogger().d("Handling uncaught exception \"" + th + "\" from thread " + thread.getName());
|
||||
crashlyticsController = this;
|
||||
try {
|
||||
Utils.awaitEvenIfOnMainThread(this.backgroundWorker.submitTask(new Callable<Task<Void>>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.2
|
||||
final /* synthetic */ Throwable val$ex;
|
||||
final /* synthetic */ boolean val$isOnDemand;
|
||||
final /* synthetic */ SettingsProvider val$settingsProvider;
|
||||
final /* synthetic */ Thread val$thread;
|
||||
final /* synthetic */ long val$timestampMillis;
|
||||
|
||||
/* renamed from: com.google.firebase.crashlytics.internal.common.CrashlyticsController$2$1 */
|
||||
/* loaded from: classes3.dex */
|
||||
public class AnonymousClass1 implements SuccessContinuation<Settings, Void> {
|
||||
final /* synthetic */ String val$currentSessionId;
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public AnonymousClass1(Executor executor2, String currentSessionId2) {
|
||||
r2 = executor2;
|
||||
r3 = currentSessionId2;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings, cannot send reports at crash time.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
return Tasks.whenAll((Task<?>[]) new Task[]{CrashlyticsController.this.logAnalyticsAppExceptionEvents(), CrashlyticsController.this.reportingCoordinator.sendReports(r2, r7 ? r3 : null)});
|
||||
}
|
||||
}
|
||||
|
||||
public AnonymousClass2(long j4, Throwable th2, Thread thread2, SettingsProvider settingsProvider2, boolean z32) {
|
||||
r2 = j4;
|
||||
r4 = th2;
|
||||
r5 = thread2;
|
||||
r6 = settingsProvider2;
|
||||
r7 = z32;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Task<Void> call() throws Exception {
|
||||
long timestampSeconds = CrashlyticsController.getTimestampSeconds(r2);
|
||||
String currentSessionId2 = CrashlyticsController.this.getCurrentSessionId();
|
||||
if (currentSessionId2 == null) {
|
||||
Logger.getLogger().e("Tried to write a fatal exception while no session was open.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
CrashlyticsController.this.crashMarker.create();
|
||||
CrashlyticsController.this.reportingCoordinator.persistFatalEvent(r4, r5, currentSessionId2, timestampSeconds);
|
||||
CrashlyticsController.this.doWriteAppExceptionMarker(r2);
|
||||
CrashlyticsController.this.doCloseSessions(r6);
|
||||
CrashlyticsController.this.doOpenSession(new CLSUUID(CrashlyticsController.this.idManager).toString(), Boolean.valueOf(r7));
|
||||
if (!CrashlyticsController.this.dataCollectionArbiter.isAutomaticDataCollectionEnabled()) {
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
Executor executor2 = CrashlyticsController.this.backgroundWorker.getExecutor();
|
||||
return r6.getSettingsAsync().onSuccessTask(executor2, new SuccessContinuation<Settings, Void>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsController.2.1
|
||||
final /* synthetic */ String val$currentSessionId;
|
||||
final /* synthetic */ Executor val$executor;
|
||||
|
||||
public AnonymousClass1(Executor executor22, String currentSessionId22) {
|
||||
r2 = executor22;
|
||||
r3 = currentSessionId22;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public Task<Void> then(Settings settings) throws Exception {
|
||||
if (settings == null) {
|
||||
Logger.getLogger().w("Received null app settings, cannot send reports at crash time.");
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
return Tasks.whenAll((Task<?>[]) new Task[]{CrashlyticsController.this.logAnalyticsAppExceptionEvents(), CrashlyticsController.this.reportingCoordinator.sendReports(r2, r7 ? r3 : null)});
|
||||
}
|
||||
});
|
||||
}
|
||||
}));
|
||||
} catch (TimeoutException unused) {
|
||||
Logger.getLogger().e("Cannot send reports. Timed out while fetching settings.");
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("Error handling uncaught exception", e4);
|
||||
}
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
crashlyticsController = this;
|
||||
Throwable th3 = th;
|
||||
throw th3;
|
||||
}
|
||||
} catch (Throwable th4) {
|
||||
th = th4;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,294 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.crashlytics.BuildConfig;
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.RemoteConfigDeferredProxy;
|
||||
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbHandler;
|
||||
import com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbSource;
|
||||
import com.google.firebase.crashlytics.internal.metadata.LogFileManager;
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsProvider;
|
||||
import com.google.firebase.crashlytics.internal.stacktrace.MiddleOutFallbackStrategy;
|
||||
import com.google.firebase.crashlytics.internal.stacktrace.RemoveRepeatsStrategy;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsCore {
|
||||
static final String CRASHLYTICS_REQUIRE_BUILD_ID = "com.crashlytics.RequireBuildId";
|
||||
static final boolean CRASHLYTICS_REQUIRE_BUILD_ID_DEFAULT = true;
|
||||
static final String CRASH_MARKER_FILE_NAME = "crash_marker";
|
||||
static final int DEFAULT_MAIN_HANDLER_TIMEOUT_SEC = 3;
|
||||
private static final String INITIALIZATION_MARKER_FILE_NAME = "initialization_marker";
|
||||
static final int MAX_STACK_SIZE = 1024;
|
||||
private static final String MISSING_BUILD_ID_MSG = "The Crashlytics build ID is missing. This occurs when the Crashlytics Gradle plugin is missing from your app's build configuration. Please review the Firebase Crashlytics onboarding instructions at https://firebase.google.com/docs/crashlytics/get-started?platform=android#add-plugin";
|
||||
static final int NUM_STACK_REPETITIONS_ALLOWED = 10;
|
||||
private static final String ON_DEMAND_DROPPED_KEY = "com.crashlytics.on-demand.dropped-exceptions";
|
||||
private static final String ON_DEMAND_RECORDED_KEY = "com.crashlytics.on-demand.recorded-exceptions";
|
||||
private final AnalyticsEventLogger analyticsEventLogger;
|
||||
private final FirebaseApp app;
|
||||
private final CrashlyticsBackgroundWorker backgroundWorker;
|
||||
public final BreadcrumbSource breadcrumbSource;
|
||||
private final Context context;
|
||||
private CrashlyticsController controller;
|
||||
private final ExecutorService crashHandlerExecutor;
|
||||
private CrashlyticsFileMarker crashMarker;
|
||||
private final DataCollectionArbiter dataCollectionArbiter;
|
||||
private boolean didCrashOnPreviousExecution;
|
||||
private final FileStore fileStore;
|
||||
private final IdManager idManager;
|
||||
private CrashlyticsFileMarker initializationMarker;
|
||||
private final CrashlyticsNativeComponent nativeComponent;
|
||||
private final RemoteConfigDeferredProxy remoteConfigDeferredProxy;
|
||||
private final CrashlyticsAppQualitySessionsSubscriber sessionsSubscriber;
|
||||
private final long startTime = System.currentTimeMillis();
|
||||
private final OnDemandCounter onDemandCounter = new OnDemandCounter();
|
||||
|
||||
public CrashlyticsCore(FirebaseApp firebaseApp, IdManager idManager, CrashlyticsNativeComponent crashlyticsNativeComponent, DataCollectionArbiter dataCollectionArbiter, BreadcrumbSource breadcrumbSource, AnalyticsEventLogger analyticsEventLogger, FileStore fileStore, ExecutorService executorService, CrashlyticsAppQualitySessionsSubscriber crashlyticsAppQualitySessionsSubscriber, RemoteConfigDeferredProxy remoteConfigDeferredProxy) {
|
||||
this.app = firebaseApp;
|
||||
this.dataCollectionArbiter = dataCollectionArbiter;
|
||||
this.context = firebaseApp.getApplicationContext();
|
||||
this.idManager = idManager;
|
||||
this.nativeComponent = crashlyticsNativeComponent;
|
||||
this.breadcrumbSource = breadcrumbSource;
|
||||
this.analyticsEventLogger = analyticsEventLogger;
|
||||
this.crashHandlerExecutor = executorService;
|
||||
this.fileStore = fileStore;
|
||||
this.backgroundWorker = new CrashlyticsBackgroundWorker(executorService);
|
||||
this.sessionsSubscriber = crashlyticsAppQualitySessionsSubscriber;
|
||||
this.remoteConfigDeferredProxy = remoteConfigDeferredProxy;
|
||||
}
|
||||
|
||||
private void checkForPreviousCrash() {
|
||||
try {
|
||||
this.didCrashOnPreviousExecution = Boolean.TRUE.equals((Boolean) Utils.awaitEvenIfOnMainThread(this.backgroundWorker.submit(new Callable<Boolean>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsCore.4
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Boolean call() throws Exception {
|
||||
return Boolean.valueOf(CrashlyticsCore.this.controller.didCrashOnPreviousExecution());
|
||||
}
|
||||
})));
|
||||
} catch (Exception unused) {
|
||||
this.didCrashOnPreviousExecution = false;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public Task<Void> doBackgroundInitialization(SettingsProvider settingsProvider) {
|
||||
markInitializationStarted();
|
||||
try {
|
||||
this.breadcrumbSource.registerBreadcrumbHandler(new BreadcrumbHandler() { // from class: com.google.firebase.crashlytics.internal.common.c
|
||||
@Override // com.google.firebase.crashlytics.internal.breadcrumbs.BreadcrumbHandler
|
||||
public final void handleBreadcrumb(String str) {
|
||||
CrashlyticsCore.this.log(str);
|
||||
}
|
||||
});
|
||||
this.controller.saveVersionControlInfo();
|
||||
if (!settingsProvider.getSettingsSync().featureFlagData.collectReports) {
|
||||
Logger.getLogger().d("Collection of crash reports disabled in Crashlytics settings.");
|
||||
return Tasks.forException(new RuntimeException("Collection of crash reports disabled in Crashlytics settings."));
|
||||
}
|
||||
if (!this.controller.finalizeSessions(settingsProvider)) {
|
||||
Logger.getLogger().w("Previous sessions could not be finalized.");
|
||||
}
|
||||
return this.controller.submitAllReports(settingsProvider.getSettingsAsync());
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("Crashlytics encountered a problem during asynchronous initialization.", e4);
|
||||
return Tasks.forException(e4);
|
||||
} finally {
|
||||
markInitializationComplete();
|
||||
}
|
||||
}
|
||||
|
||||
private void finishInitSynchronously(final SettingsProvider settingsProvider) {
|
||||
Future<?> submit = this.crashHandlerExecutor.submit(new Runnable() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsCore.2
|
||||
@Override // java.lang.Runnable
|
||||
public void run() {
|
||||
CrashlyticsCore.this.doBackgroundInitialization(settingsProvider);
|
||||
}
|
||||
});
|
||||
Logger.getLogger().d("Crashlytics detected incomplete initialization on previous app launch. Will initialize synchronously.");
|
||||
try {
|
||||
submit.get(3L, TimeUnit.SECONDS);
|
||||
} catch (InterruptedException e4) {
|
||||
Logger.getLogger().e("Crashlytics was interrupted during initialization.", e4);
|
||||
} catch (ExecutionException e5) {
|
||||
Logger.getLogger().e("Crashlytics encountered a problem during initialization.", e5);
|
||||
} catch (TimeoutException e6) {
|
||||
Logger.getLogger().e("Crashlytics timed out during initialization.", e6);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getVersion() {
|
||||
return BuildConfig.VERSION_NAME;
|
||||
}
|
||||
|
||||
public static boolean isBuildIdValid(String str, boolean z3) {
|
||||
if (!z3) {
|
||||
Logger.getLogger().v("Configured not to require a build ID.");
|
||||
return CRASHLYTICS_REQUIRE_BUILD_ID_DEFAULT;
|
||||
}
|
||||
if (!TextUtils.isEmpty(str)) {
|
||||
return CRASHLYTICS_REQUIRE_BUILD_ID_DEFAULT;
|
||||
}
|
||||
Log.e(Logger.TAG, ".");
|
||||
Log.e(Logger.TAG, ". | | ");
|
||||
Log.e(Logger.TAG, ". | |");
|
||||
Log.e(Logger.TAG, ". | |");
|
||||
Log.e(Logger.TAG, ". \\ | | /");
|
||||
Log.e(Logger.TAG, ". \\ /");
|
||||
Log.e(Logger.TAG, ". \\ /");
|
||||
Log.e(Logger.TAG, ". \\/");
|
||||
Log.e(Logger.TAG, ".");
|
||||
Log.e(Logger.TAG, MISSING_BUILD_ID_MSG);
|
||||
Log.e(Logger.TAG, ".");
|
||||
Log.e(Logger.TAG, ". /\\");
|
||||
Log.e(Logger.TAG, ". / \\");
|
||||
Log.e(Logger.TAG, ". / \\");
|
||||
Log.e(Logger.TAG, ". / | | \\");
|
||||
Log.e(Logger.TAG, ". | |");
|
||||
Log.e(Logger.TAG, ". | |");
|
||||
Log.e(Logger.TAG, ". | |");
|
||||
Log.e(Logger.TAG, ".");
|
||||
return false;
|
||||
}
|
||||
|
||||
public Task<Boolean> checkForUnsentReports() {
|
||||
return this.controller.checkForUnsentReports();
|
||||
}
|
||||
|
||||
public Task<Void> deleteUnsentReports() {
|
||||
return this.controller.deleteUnsentReports();
|
||||
}
|
||||
|
||||
public boolean didCrashOnPreviousExecution() {
|
||||
return this.didCrashOnPreviousExecution;
|
||||
}
|
||||
|
||||
public boolean didPreviousInitializationFail() {
|
||||
return this.initializationMarker.isPresent();
|
||||
}
|
||||
|
||||
public Task<Void> doBackgroundInitializationAsync(final SettingsProvider settingsProvider) {
|
||||
return Utils.callTask(this.crashHandlerExecutor, new Callable<Task<Void>>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsCore.1
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Task<Void> call() throws Exception {
|
||||
return CrashlyticsCore.this.doBackgroundInitialization(settingsProvider);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public CrashlyticsController getController() {
|
||||
return this.controller;
|
||||
}
|
||||
|
||||
public void log(String str) {
|
||||
this.controller.writeToLog(System.currentTimeMillis() - this.startTime, str);
|
||||
}
|
||||
|
||||
public void logException(Throwable th) {
|
||||
this.controller.writeNonFatalException(Thread.currentThread(), th);
|
||||
}
|
||||
|
||||
public void logFatalException(Throwable th) {
|
||||
Logger.getLogger().d("Recorded on-demand fatal events: " + this.onDemandCounter.getRecordedOnDemandExceptions());
|
||||
Logger.getLogger().d("Dropped on-demand fatal events: " + this.onDemandCounter.getDroppedOnDemandExceptions());
|
||||
this.controller.setInternalKey(ON_DEMAND_RECORDED_KEY, Integer.toString(this.onDemandCounter.getRecordedOnDemandExceptions()));
|
||||
this.controller.setInternalKey(ON_DEMAND_DROPPED_KEY, Integer.toString(this.onDemandCounter.getDroppedOnDemandExceptions()));
|
||||
this.controller.logFatalException(Thread.currentThread(), th);
|
||||
}
|
||||
|
||||
public void markInitializationComplete() {
|
||||
this.backgroundWorker.submit(new Callable<Boolean>() { // from class: com.google.firebase.crashlytics.internal.common.CrashlyticsCore.3
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // java.util.concurrent.Callable
|
||||
public Boolean call() throws Exception {
|
||||
try {
|
||||
boolean remove = CrashlyticsCore.this.initializationMarker.remove();
|
||||
if (!remove) {
|
||||
Logger.getLogger().w("Initialization marker file was not properly removed.");
|
||||
}
|
||||
return Boolean.valueOf(remove);
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("Problem encountered deleting Crashlytics initialization marker.", e4);
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void markInitializationStarted() {
|
||||
this.backgroundWorker.checkRunningOnThread();
|
||||
this.initializationMarker.create();
|
||||
Logger.getLogger().v("Initialization marker file was created.");
|
||||
}
|
||||
|
||||
public boolean onPreExecute(AppData appData, SettingsProvider settingsProvider) {
|
||||
if (!isBuildIdValid(appData.buildId, CommonUtils.getBooleanResourceValue(this.context, CRASHLYTICS_REQUIRE_BUILD_ID, CRASHLYTICS_REQUIRE_BUILD_ID_DEFAULT))) {
|
||||
throw new IllegalStateException(MISSING_BUILD_ID_MSG);
|
||||
}
|
||||
String clsuuid = new CLSUUID(this.idManager).toString();
|
||||
try {
|
||||
this.crashMarker = new CrashlyticsFileMarker(CRASH_MARKER_FILE_NAME, this.fileStore);
|
||||
this.initializationMarker = new CrashlyticsFileMarker(INITIALIZATION_MARKER_FILE_NAME, this.fileStore);
|
||||
UserMetadata userMetadata = new UserMetadata(clsuuid, this.fileStore, this.backgroundWorker);
|
||||
LogFileManager logFileManager = new LogFileManager(this.fileStore);
|
||||
MiddleOutFallbackStrategy middleOutFallbackStrategy = new MiddleOutFallbackStrategy(1024, new RemoveRepeatsStrategy(10));
|
||||
this.remoteConfigDeferredProxy.setupListener(userMetadata);
|
||||
this.controller = new CrashlyticsController(this.context, this.backgroundWorker, this.idManager, this.dataCollectionArbiter, this.fileStore, this.crashMarker, appData, userMetadata, logFileManager, SessionReportingCoordinator.create(this.context, this.idManager, this.fileStore, appData, logFileManager, userMetadata, middleOutFallbackStrategy, settingsProvider, this.onDemandCounter, this.sessionsSubscriber), this.nativeComponent, this.analyticsEventLogger, this.sessionsSubscriber);
|
||||
boolean didPreviousInitializationFail = didPreviousInitializationFail();
|
||||
checkForPreviousCrash();
|
||||
this.controller.enableExceptionHandling(clsuuid, Thread.getDefaultUncaughtExceptionHandler(), settingsProvider);
|
||||
if (!didPreviousInitializationFail || !CommonUtils.canTryConnection(this.context)) {
|
||||
Logger.getLogger().d("Successfully configured exception handler.");
|
||||
return CRASHLYTICS_REQUIRE_BUILD_ID_DEFAULT;
|
||||
}
|
||||
Logger.getLogger().d("Crashlytics did not finish previous background initialization. Initializing synchronously.");
|
||||
finishInitSynchronously(settingsProvider);
|
||||
return false;
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("Crashlytics was not started due to an exception during initialization", e4);
|
||||
this.controller = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Void> sendUnsentReports() {
|
||||
return this.controller.sendUnsentReports();
|
||||
}
|
||||
|
||||
public void setCrashlyticsCollectionEnabled(Boolean bool) {
|
||||
this.dataCollectionArbiter.setCrashlyticsDataCollectionEnabled(bool);
|
||||
}
|
||||
|
||||
public void setCustomKey(String str, String str2) {
|
||||
this.controller.setCustomKey(str, str2);
|
||||
}
|
||||
|
||||
public void setCustomKeys(Map<String, String> map) {
|
||||
this.controller.setCustomKeys(map);
|
||||
}
|
||||
|
||||
public void setInternalKey(String str, String str2) {
|
||||
this.controller.setInternalKey(str, str2);
|
||||
}
|
||||
|
||||
public void setUserId(String str) {
|
||||
this.controller.setUserId(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsFileMarker {
|
||||
private final FileStore fileStore;
|
||||
private final String markerName;
|
||||
|
||||
public CrashlyticsFileMarker(String str, FileStore fileStore) {
|
||||
this.markerName = str;
|
||||
this.fileStore = fileStore;
|
||||
}
|
||||
|
||||
private File getMarkerFile() {
|
||||
return this.fileStore.getCommonFile(this.markerName);
|
||||
}
|
||||
|
||||
public boolean create() {
|
||||
try {
|
||||
return getMarkerFile().createNewFile();
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().e("Error creating marker: " + this.markerName, e4);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isPresent() {
|
||||
return getMarkerFile().exists();
|
||||
}
|
||||
|
||||
public boolean remove() {
|
||||
return getMarkerFile().delete();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
interface CrashlyticsLifecycleEvents {
|
||||
void onBeginSession(String str, long j4);
|
||||
|
||||
void onCustomKey(String str, String str2);
|
||||
|
||||
void onLog(long j4, String str);
|
||||
|
||||
void onUserId(String str);
|
||||
}
|
||||
@@ -0,0 +1,242 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
import android.text.TextUtils;
|
||||
import com.google.firebase.crashlytics.BuildConfig;
|
||||
import com.google.firebase.crashlytics.internal.ProcessDetailsProvider;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsProvider;
|
||||
import com.google.firebase.crashlytics.internal.stacktrace.StackTraceTrimmingStrategy;
|
||||
import com.google.firebase.crashlytics.internal.stacktrace.TrimmedThrowableData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsReportDataCapture {
|
||||
private static final Map<String, Integer> ARCHITECTURES_BY_NAME;
|
||||
static final String GENERATOR;
|
||||
static final int GENERATOR_TYPE = 3;
|
||||
static final int REPORT_ANDROID_PLATFORM = 4;
|
||||
static final int SESSION_ANDROID_PLATFORM = 3;
|
||||
static final String SIGNAL_DEFAULT = "0";
|
||||
private final AppData appData;
|
||||
private final Context context;
|
||||
private final IdManager idManager;
|
||||
private final ProcessDetailsProvider processDetailsProvider = ProcessDetailsProvider.INSTANCE;
|
||||
private final SettingsProvider settingsProvider;
|
||||
private final StackTraceTrimmingStrategy stackTraceTrimmingStrategy;
|
||||
|
||||
static {
|
||||
HashMap hashMap = new HashMap();
|
||||
ARCHITECTURES_BY_NAME = hashMap;
|
||||
hashMap.put("armeabi", 5);
|
||||
hashMap.put("armeabi-v7a", 6);
|
||||
hashMap.put("arm64-v8a", 9);
|
||||
hashMap.put("x86", 0);
|
||||
hashMap.put("x86_64", 1);
|
||||
Locale locale = Locale.US;
|
||||
GENERATOR = "Crashlytics Android SDK/18.6.0";
|
||||
}
|
||||
|
||||
public CrashlyticsReportDataCapture(Context context, IdManager idManager, AppData appData, StackTraceTrimmingStrategy stackTraceTrimmingStrategy, SettingsProvider settingsProvider) {
|
||||
this.context = context;
|
||||
this.idManager = idManager;
|
||||
this.appData = appData;
|
||||
this.stackTraceTrimmingStrategy = stackTraceTrimmingStrategy;
|
||||
this.settingsProvider = settingsProvider;
|
||||
}
|
||||
|
||||
private CrashlyticsReport.ApplicationExitInfo addBuildIdInfo(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> list;
|
||||
if (!this.settingsProvider.getSettingsSync().featureFlagData.collectBuildIds || this.appData.buildIdInfoList.size() <= 0) {
|
||||
list = null;
|
||||
} else {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (BuildIdInfo buildIdInfo : this.appData.buildIdInfoList) {
|
||||
arrayList.add(CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.builder().setLibraryName(buildIdInfo.getLibraryName()).setArch(buildIdInfo.getArch()).setBuildId(buildIdInfo.getBuildId()).build());
|
||||
}
|
||||
list = Collections.unmodifiableList(arrayList);
|
||||
}
|
||||
return CrashlyticsReport.ApplicationExitInfo.builder().setImportance(applicationExitInfo.getImportance()).setProcessName(applicationExitInfo.getProcessName()).setReasonCode(applicationExitInfo.getReasonCode()).setTimestamp(applicationExitInfo.getTimestamp()).setPid(applicationExitInfo.getPid()).setPss(applicationExitInfo.getPss()).setRss(applicationExitInfo.getRss()).setTraceFile(applicationExitInfo.getTraceFile()).setBuildIdMappingForArch(list).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Builder buildReportData() {
|
||||
return CrashlyticsReport.builder().setSdkVersion(BuildConfig.VERSION_NAME).setGmpAppId(this.appData.googleAppId).setInstallationUuid(this.idManager.getInstallIds().getCrashlyticsInstallId()).setFirebaseInstallationId(this.idManager.getInstallIds().getFirebaseInstallationId()).setBuildVersion(this.appData.versionCode).setDisplayVersion(this.appData.versionName).setPlatform(4);
|
||||
}
|
||||
|
||||
private static long ensureNonNegative(long j4) {
|
||||
if (j4 > 0) {
|
||||
return j4;
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
||||
private static int getDeviceArchitecture() {
|
||||
Integer num;
|
||||
String str = Build.CPU_ABI;
|
||||
if (TextUtils.isEmpty(str) || (num = ARCHITECTURES_BY_NAME.get(str.toLowerCase(Locale.US))) == null) {
|
||||
return 7;
|
||||
}
|
||||
return num.intValue();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.BinaryImage populateBinaryImageData() {
|
||||
return CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.builder().setBaseAddress(0L).setSize(0L).setName(this.appData.packageName).setUuid(this.appData.buildId).build();
|
||||
}
|
||||
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> populateBinaryImagesList() {
|
||||
return Collections.singletonList(populateBinaryImageData());
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application populateEventApplicationData(int i, TrimmedThrowableData trimmedThrowableData, Thread thread, int i4, int i5, boolean z3) {
|
||||
Boolean bool;
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails currentProcessDetails = this.processDetailsProvider.getCurrentProcessDetails(this.context);
|
||||
if (currentProcessDetails.getImportance() > 0) {
|
||||
bool = Boolean.valueOf(currentProcessDetails.getImportance() != 100);
|
||||
} else {
|
||||
bool = null;
|
||||
}
|
||||
return CrashlyticsReport.Session.Event.Application.builder().setBackground(bool).setCurrentProcessDetails(currentProcessDetails).setAppProcessDetails(this.processDetailsProvider.getAppProcessDetails(this.context)).setUiOrientation(i).setExecution(populateExecutionData(trimmedThrowableData, thread, i4, i5, z3)).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Device populateEventDeviceData(int i) {
|
||||
BatteryState batteryState = BatteryState.get(this.context);
|
||||
Float batteryLevel = batteryState.getBatteryLevel();
|
||||
Double valueOf = batteryLevel != null ? Double.valueOf(batteryLevel.doubleValue()) : null;
|
||||
int batteryVelocity = batteryState.getBatteryVelocity();
|
||||
boolean proximitySensorEnabled = CommonUtils.getProximitySensorEnabled(this.context);
|
||||
return CrashlyticsReport.Session.Event.Device.builder().setBatteryLevel(valueOf).setBatteryVelocity(batteryVelocity).setProximityOn(proximitySensorEnabled).setOrientation(i).setRamUsed(ensureNonNegative(CommonUtils.calculateTotalRamInBytes(this.context) - CommonUtils.calculateFreeRamInBytes(this.context))).setDiskUsed(CommonUtils.calculateUsedDiskSpaceInBytes(Environment.getDataDirectory().getPath())).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Exception populateExceptionData(TrimmedThrowableData trimmedThrowableData, int i, int i4) {
|
||||
return populateExceptionData(trimmedThrowableData, i, i4, 0);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution populateExecutionData(TrimmedThrowableData trimmedThrowableData, Thread thread, int i, int i4, boolean z3) {
|
||||
return CrashlyticsReport.Session.Event.Application.Execution.builder().setThreads(populateThreadsList(trimmedThrowableData, thread, i, z3)).setException(populateExceptionData(trimmedThrowableData, i, i4)).setSignal(populateSignalData()).setBinaries(populateBinaryImagesList()).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame populateFrameData(StackTraceElement stackTraceElement, CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder builder) {
|
||||
long j4 = 0;
|
||||
long max = stackTraceElement.isNativeMethod() ? Math.max(stackTraceElement.getLineNumber(), 0L) : 0L;
|
||||
String str = stackTraceElement.getClassName() + "." + stackTraceElement.getMethodName();
|
||||
String fileName = stackTraceElement.getFileName();
|
||||
if (!stackTraceElement.isNativeMethod() && stackTraceElement.getLineNumber() > 0) {
|
||||
j4 = stackTraceElement.getLineNumber();
|
||||
}
|
||||
return builder.setPc(max).setSymbol(str).setFile(fileName).setOffset(j4).build();
|
||||
}
|
||||
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> populateFramesList(StackTraceElement[] stackTraceElementArr, int i) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (StackTraceElement stackTraceElement : stackTraceElementArr) {
|
||||
arrayList.add(populateFrameData(stackTraceElement, CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.builder().setImportance(i)));
|
||||
}
|
||||
return Collections.unmodifiableList(arrayList);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Application populateSessionApplicationData() {
|
||||
return CrashlyticsReport.Session.Application.builder().setIdentifier(this.idManager.getAppIdentifier()).setVersion(this.appData.versionCode).setDisplayVersion(this.appData.versionName).setInstallationUuid(this.idManager.getInstallIds().getCrashlyticsInstallId()).setDevelopmentPlatform(this.appData.developmentPlatformProvider.getDevelopmentPlatform()).setDevelopmentPlatformVersion(this.appData.developmentPlatformProvider.getDevelopmentPlatformVersion()).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session populateSessionData(String str, long j4) {
|
||||
return CrashlyticsReport.Session.builder().setStartedAt(j4).setIdentifier(str).setGenerator(GENERATOR).setApp(populateSessionApplicationData()).setOs(populateSessionOperatingSystemData()).setDevice(populateSessionDeviceData()).setGeneratorType(3).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Device populateSessionDeviceData() {
|
||||
StatFs statFs = new StatFs(Environment.getDataDirectory().getPath());
|
||||
int deviceArchitecture = getDeviceArchitecture();
|
||||
int availableProcessors = Runtime.getRuntime().availableProcessors();
|
||||
long calculateTotalRamInBytes = CommonUtils.calculateTotalRamInBytes(this.context);
|
||||
long blockCount = statFs.getBlockCount() * statFs.getBlockSize();
|
||||
boolean isEmulator = CommonUtils.isEmulator();
|
||||
int deviceState = CommonUtils.getDeviceState();
|
||||
return CrashlyticsReport.Session.Device.builder().setArch(deviceArchitecture).setModel(Build.MODEL).setCores(availableProcessors).setRam(calculateTotalRamInBytes).setDiskSpace(blockCount).setSimulator(isEmulator).setState(deviceState).setManufacturer(Build.MANUFACTURER).setModelClass(Build.PRODUCT).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.OperatingSystem populateSessionOperatingSystemData() {
|
||||
return CrashlyticsReport.Session.OperatingSystem.builder().setPlatform(3).setVersion(Build.VERSION.RELEASE).setBuildVersion(Build.VERSION.CODENAME).setJailbroken(CommonUtils.isRooted()).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Signal populateSignalData() {
|
||||
return CrashlyticsReport.Session.Event.Application.Execution.Signal.builder().setName("0").setCode("0").setAddress(0L).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Thread populateThreadData(Thread thread, StackTraceElement[] stackTraceElementArr) {
|
||||
return populateThreadData(thread, stackTraceElementArr, 0);
|
||||
}
|
||||
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.Thread> populateThreadsList(TrimmedThrowableData trimmedThrowableData, Thread thread, int i, boolean z3) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
arrayList.add(populateThreadData(thread, trimmedThrowableData.stacktrace, i));
|
||||
if (z3) {
|
||||
for (Map.Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) {
|
||||
Thread key = entry.getKey();
|
||||
if (!key.equals(thread)) {
|
||||
arrayList.add(populateThreadData(key, this.stackTraceTrimmingStrategy.getTrimmedStackTrace(entry.getValue())));
|
||||
}
|
||||
}
|
||||
}
|
||||
return Collections.unmodifiableList(arrayList);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.ProcessDetails processDetailsFromApplicationExitInfo(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
return this.processDetailsProvider.buildProcessDetails(applicationExitInfo.getProcessName(), applicationExitInfo.getPid(), applicationExitInfo.getImportance());
|
||||
}
|
||||
|
||||
public CrashlyticsReport.Session.Event captureAnrEventData(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
int i = this.context.getResources().getConfiguration().orientation;
|
||||
return CrashlyticsReport.Session.Event.builder().setType("anr").setTimestamp(applicationExitInfo.getTimestamp()).setApp(populateEventApplicationData(i, addBuildIdInfo(applicationExitInfo))).setDevice(populateEventDeviceData(i)).build();
|
||||
}
|
||||
|
||||
public CrashlyticsReport.Session.Event captureEventData(Throwable th, Thread thread, String str, long j4, int i, int i4, boolean z3) {
|
||||
int i5 = this.context.getResources().getConfiguration().orientation;
|
||||
return CrashlyticsReport.Session.Event.builder().setType(str).setTimestamp(j4).setApp(populateEventApplicationData(i5, TrimmedThrowableData.makeTrimmedThrowableData(th, this.stackTraceTrimmingStrategy), thread, i, i4, z3)).setDevice(populateEventDeviceData(i5)).build();
|
||||
}
|
||||
|
||||
public CrashlyticsReport captureReportData(String str, long j4) {
|
||||
return buildReportData().setSession(populateSessionData(str, j4)).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Exception populateExceptionData(TrimmedThrowableData trimmedThrowableData, int i, int i4, int i5) {
|
||||
String str = trimmedThrowableData.className;
|
||||
String str2 = trimmedThrowableData.localizedMessage;
|
||||
StackTraceElement[] stackTraceElementArr = trimmedThrowableData.stacktrace;
|
||||
int i6 = 0;
|
||||
if (stackTraceElementArr == null) {
|
||||
stackTraceElementArr = new StackTraceElement[0];
|
||||
}
|
||||
TrimmedThrowableData trimmedThrowableData2 = trimmedThrowableData.cause;
|
||||
if (i5 >= i4) {
|
||||
TrimmedThrowableData trimmedThrowableData3 = trimmedThrowableData2;
|
||||
while (trimmedThrowableData3 != null) {
|
||||
trimmedThrowableData3 = trimmedThrowableData3.cause;
|
||||
i6++;
|
||||
}
|
||||
}
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder overflowCount = CrashlyticsReport.Session.Event.Application.Execution.Exception.builder().setType(str).setReason(str2).setFrames(populateFramesList(stackTraceElementArr, i)).setOverflowCount(i6);
|
||||
if (trimmedThrowableData2 != null && i6 == 0) {
|
||||
overflowCount.setCausedBy(populateExceptionData(trimmedThrowableData2, i, i4, i5 + 1));
|
||||
}
|
||||
return overflowCount.build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Thread populateThreadData(Thread thread, StackTraceElement[] stackTraceElementArr, int i) {
|
||||
return CrashlyticsReport.Session.Event.Application.Execution.Thread.builder().setName(thread.getName()).setImportance(i).setFrames(populateFramesList(stackTraceElementArr, i)).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application.Execution populateExecutionData(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
return CrashlyticsReport.Session.Event.Application.Execution.builder().setAppExitInfo(applicationExitInfo).setSignal(populateSignalData()).setBinaries(populateBinaryImagesList()).build();
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event.Application populateEventApplicationData(int i, CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
return CrashlyticsReport.Session.Event.Application.builder().setBackground(Boolean.valueOf(applicationExitInfo.getImportance() != 100)).setCurrentProcessDetails(processDetailsFromApplicationExitInfo(applicationExitInfo)).setUiOrientation(i).setExecution(populateExecutionData(applicationExitInfo)).build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.File;
|
||||
|
||||
@AutoValue
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class CrashlyticsReportWithSessionId {
|
||||
public static CrashlyticsReportWithSessionId create(CrashlyticsReport crashlyticsReport, String str, File file) {
|
||||
return new AutoValue_CrashlyticsReportWithSessionId(crashlyticsReport, str, file);
|
||||
}
|
||||
|
||||
public abstract CrashlyticsReport getReport();
|
||||
|
||||
public abstract File getReportFile();
|
||||
|
||||
public abstract String getSessionId();
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsProvider;
|
||||
import java.lang.Thread;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class CrashlyticsUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
|
||||
private final CrashListener crashListener;
|
||||
private final Thread.UncaughtExceptionHandler defaultHandler;
|
||||
private final AtomicBoolean isHandlingException = new AtomicBoolean(false);
|
||||
private final CrashlyticsNativeComponent nativeComponent;
|
||||
private final SettingsProvider settingsProvider;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface CrashListener {
|
||||
void onUncaughtException(SettingsProvider settingsProvider, Thread thread, Throwable th);
|
||||
}
|
||||
|
||||
public CrashlyticsUncaughtExceptionHandler(CrashListener crashListener, SettingsProvider settingsProvider, Thread.UncaughtExceptionHandler uncaughtExceptionHandler, CrashlyticsNativeComponent crashlyticsNativeComponent) {
|
||||
this.crashListener = crashListener;
|
||||
this.settingsProvider = settingsProvider;
|
||||
this.defaultHandler = uncaughtExceptionHandler;
|
||||
this.nativeComponent = crashlyticsNativeComponent;
|
||||
}
|
||||
|
||||
private boolean shouldRecordUncaughtException(Thread thread, Throwable th) {
|
||||
if (thread == null) {
|
||||
Logger.getLogger().e("Crashlytics will not record uncaught exception; null thread");
|
||||
return false;
|
||||
}
|
||||
if (th == null) {
|
||||
Logger.getLogger().e("Crashlytics will not record uncaught exception; null throwable");
|
||||
return false;
|
||||
}
|
||||
if (!this.nativeComponent.hasCrashDataForCurrentSession()) {
|
||||
return true;
|
||||
}
|
||||
Logger.getLogger().d("Crashlytics will not record uncaught exception; native crash exists for session.");
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isHandlingException() {
|
||||
return this.isHandlingException.get();
|
||||
}
|
||||
|
||||
@Override // java.lang.Thread.UncaughtExceptionHandler
|
||||
public void uncaughtException(Thread thread, Throwable th) {
|
||||
this.isHandlingException.set(true);
|
||||
try {
|
||||
try {
|
||||
if (shouldRecordUncaughtException(thread, th)) {
|
||||
this.crashListener.onUncaughtException(this.settingsProvider, thread, th);
|
||||
} else {
|
||||
Logger.getLogger().d("Uncaught exception will not be recorded by Crashlytics.");
|
||||
}
|
||||
Logger.getLogger().d("Completed exception processing. Invoking default exception handler.");
|
||||
this.defaultHandler.uncaughtException(thread, th);
|
||||
this.isHandlingException.set(false);
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().e("An error occurred in the uncaught exception handler", e4);
|
||||
Logger.getLogger().d("Completed exception processing. Invoking default exception handler.");
|
||||
this.defaultHandler.uncaughtException(thread, th);
|
||||
this.isHandlingException.set(false);
|
||||
}
|
||||
} catch (Throwable th2) {
|
||||
Logger.getLogger().d("Completed exception processing. Invoking default exception handler.");
|
||||
this.defaultHandler.uncaughtException(thread, th);
|
||||
this.isHandlingException.set(false);
|
||||
throw th2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface CurrentTimeProvider {
|
||||
long getCurrentTimeMillis();
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DataCollectionArbiter {
|
||||
private static final String FIREBASE_CRASHLYTICS_COLLECTION_ENABLED = "firebase_crashlytics_collection_enabled";
|
||||
private Boolean crashlyticsDataCollectionEnabled;
|
||||
TaskCompletionSource<Void> dataCollectionEnabledTask;
|
||||
private final TaskCompletionSource<Void> dataCollectionExplicitlyApproved;
|
||||
private final FirebaseApp firebaseApp;
|
||||
private boolean setInManifest;
|
||||
private final SharedPreferences sharedPreferences;
|
||||
private final Object taskLock;
|
||||
boolean taskResolved;
|
||||
|
||||
public DataCollectionArbiter(FirebaseApp firebaseApp) {
|
||||
Object obj = new Object();
|
||||
this.taskLock = obj;
|
||||
this.dataCollectionEnabledTask = new TaskCompletionSource<>();
|
||||
this.taskResolved = false;
|
||||
this.setInManifest = false;
|
||||
this.dataCollectionExplicitlyApproved = new TaskCompletionSource<>();
|
||||
Context applicationContext = firebaseApp.getApplicationContext();
|
||||
this.firebaseApp = firebaseApp;
|
||||
this.sharedPreferences = CommonUtils.getSharedPrefs(applicationContext);
|
||||
Boolean dataCollectionValueFromSharedPreferences = getDataCollectionValueFromSharedPreferences();
|
||||
this.crashlyticsDataCollectionEnabled = dataCollectionValueFromSharedPreferences == null ? getDataCollectionValueFromManifest(applicationContext) : dataCollectionValueFromSharedPreferences;
|
||||
synchronized (obj) {
|
||||
try {
|
||||
if (isAutomaticDataCollectionEnabled()) {
|
||||
this.dataCollectionEnabledTask.trySetResult(null);
|
||||
this.taskResolved = true;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Boolean getDataCollectionValueFromManifest(Context context) {
|
||||
Boolean readCrashlyticsDataCollectionEnabledFromManifest = readCrashlyticsDataCollectionEnabledFromManifest(context);
|
||||
if (readCrashlyticsDataCollectionEnabledFromManifest == null) {
|
||||
this.setInManifest = false;
|
||||
return null;
|
||||
}
|
||||
this.setInManifest = true;
|
||||
return Boolean.valueOf(Boolean.TRUE.equals(readCrashlyticsDataCollectionEnabledFromManifest));
|
||||
}
|
||||
|
||||
private Boolean getDataCollectionValueFromSharedPreferences() {
|
||||
if (!this.sharedPreferences.contains(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED)) {
|
||||
return null;
|
||||
}
|
||||
this.setInManifest = false;
|
||||
return Boolean.valueOf(this.sharedPreferences.getBoolean(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED, true));
|
||||
}
|
||||
|
||||
private boolean isFirebaseDataCollectionDefaultEnabled() {
|
||||
try {
|
||||
return this.firebaseApp.isDataCollectionDefaultEnabled();
|
||||
} catch (IllegalStateException unused) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void logDataCollectionState(boolean z3) {
|
||||
String str = z3 ? "ENABLED" : "DISABLED";
|
||||
String str2 = this.crashlyticsDataCollectionEnabled == null ? "global Firebase setting" : this.setInManifest ? "firebase_crashlytics_collection_enabled manifest flag" : "API";
|
||||
Logger.getLogger().d("Crashlytics automatic data collection " + str + " by " + str2 + ".");
|
||||
}
|
||||
|
||||
private static Boolean readCrashlyticsDataCollectionEnabledFromManifest(Context context) {
|
||||
ApplicationInfo applicationInfo;
|
||||
Bundle bundle;
|
||||
try {
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
if (packageManager == null || (applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 128)) == null || (bundle = applicationInfo.metaData) == null || !bundle.containsKey(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED)) {
|
||||
return null;
|
||||
}
|
||||
return Boolean.valueOf(applicationInfo.metaData.getBoolean(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED));
|
||||
} catch (PackageManager.NameNotFoundException e4) {
|
||||
Logger.getLogger().e("Could not read data collection permission from manifest", e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint({"ApplySharedPref"})
|
||||
private static void storeDataCollectionValueInSharedPreferences(SharedPreferences sharedPreferences, Boolean bool) {
|
||||
SharedPreferences.Editor edit = sharedPreferences.edit();
|
||||
if (bool != null) {
|
||||
edit.putBoolean(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED, bool.booleanValue());
|
||||
} else {
|
||||
edit.remove(FIREBASE_CRASHLYTICS_COLLECTION_ENABLED);
|
||||
}
|
||||
edit.apply();
|
||||
}
|
||||
|
||||
public void grantDataCollectionPermission(boolean z3) {
|
||||
if (!z3) {
|
||||
throw new IllegalStateException("An invalid data collection token was used.");
|
||||
}
|
||||
this.dataCollectionExplicitlyApproved.trySetResult(null);
|
||||
}
|
||||
|
||||
public synchronized boolean isAutomaticDataCollectionEnabled() {
|
||||
boolean booleanValue;
|
||||
try {
|
||||
Boolean bool = this.crashlyticsDataCollectionEnabled;
|
||||
booleanValue = bool != null ? bool.booleanValue() : isFirebaseDataCollectionDefaultEnabled();
|
||||
logDataCollectionState(booleanValue);
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
return booleanValue;
|
||||
}
|
||||
|
||||
public synchronized void setCrashlyticsDataCollectionEnabled(Boolean bool) {
|
||||
if (bool != null) {
|
||||
try {
|
||||
this.setInManifest = false;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
this.crashlyticsDataCollectionEnabled = bool != null ? bool : getDataCollectionValueFromManifest(this.firebaseApp.getApplicationContext());
|
||||
storeDataCollectionValueInSharedPreferences(this.sharedPreferences, bool);
|
||||
synchronized (this.taskLock) {
|
||||
try {
|
||||
if (isAutomaticDataCollectionEnabled()) {
|
||||
if (!this.taskResolved) {
|
||||
this.dataCollectionEnabledTask.trySetResult(null);
|
||||
this.taskResolved = true;
|
||||
}
|
||||
} else if (this.taskResolved) {
|
||||
this.dataCollectionEnabledTask = new TaskCompletionSource<>();
|
||||
this.taskResolved = false;
|
||||
}
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Void> waitForAutomaticDataCollectionEnabled() {
|
||||
Task<Void> task;
|
||||
synchronized (this.taskLock) {
|
||||
task = this.dataCollectionEnabledTask.getTask();
|
||||
}
|
||||
return task;
|
||||
}
|
||||
|
||||
public Task<Void> waitForDataCollectionPermission(Executor executor) {
|
||||
return Utils.race(executor, this.dataCollectionExplicitlyApproved.getTask(), waitForAutomaticDataCollectionEnabled());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public enum DeliveryMechanism {
|
||||
DEVELOPER(1),
|
||||
USER_SIDELOAD(2),
|
||||
TEST_DISTRIBUTION(3),
|
||||
APP_STORE(4);
|
||||
|
||||
private final int id;
|
||||
|
||||
DeliveryMechanism(int i) {
|
||||
this.id = i;
|
||||
}
|
||||
|
||||
public static DeliveryMechanism determineFrom(String str) {
|
||||
return str != null ? APP_STORE : DEVELOPER;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
@Override // java.lang.Enum
|
||||
public String toString() {
|
||||
return Integer.toString(this.id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import C.w;
|
||||
import android.annotation.SuppressLint;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.RejectedExecutionHandler;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ExecutorUtils {
|
||||
private static final long DEFAULT_TERMINATION_TIMEOUT = 2;
|
||||
|
||||
private ExecutorUtils() {
|
||||
}
|
||||
|
||||
private static void addDelayedShutdownHook(String str, ExecutorService executorService) {
|
||||
addDelayedShutdownHook(str, executorService, DEFAULT_TERMINATION_TIMEOUT, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public static ExecutorService buildSingleThreadExecutorService(String str) {
|
||||
ExecutorService newSingleThreadExecutor = newSingleThreadExecutor(getNamedThreadFactory(str), new ThreadPoolExecutor.DiscardPolicy());
|
||||
addDelayedShutdownHook(str, newSingleThreadExecutor);
|
||||
return newSingleThreadExecutor;
|
||||
}
|
||||
|
||||
public static ScheduledExecutorService buildSingleThreadScheduledExecutorService(String str) {
|
||||
ScheduledExecutorService newSingleThreadScheduledExecutor = Executors.newSingleThreadScheduledExecutor(getNamedThreadFactory(str));
|
||||
addDelayedShutdownHook(str, newSingleThreadScheduledExecutor);
|
||||
return newSingleThreadScheduledExecutor;
|
||||
}
|
||||
|
||||
public static ThreadFactory getNamedThreadFactory(final String str) {
|
||||
final AtomicLong atomicLong = new AtomicLong(1L);
|
||||
return new ThreadFactory() { // from class: com.google.firebase.crashlytics.internal.common.ExecutorUtils.1
|
||||
@Override // java.util.concurrent.ThreadFactory
|
||||
public Thread newThread(final Runnable runnable) {
|
||||
Thread newThread = Executors.defaultThreadFactory().newThread(new BackgroundPriorityRunnable() { // from class: com.google.firebase.crashlytics.internal.common.ExecutorUtils.1.1
|
||||
@Override // com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable
|
||||
public void onRun() {
|
||||
runnable.run();
|
||||
}
|
||||
});
|
||||
newThread.setName(str + atomicLong.getAndIncrement());
|
||||
return newThread;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@SuppressLint({"ThreadPoolCreation"})
|
||||
private static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) {
|
||||
return Executors.unconfigurableExecutorService(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), threadFactory, rejectedExecutionHandler));
|
||||
}
|
||||
|
||||
@SuppressLint({"ThreadPoolCreation"})
|
||||
private static void addDelayedShutdownHook(final String str, final ExecutorService executorService, final long j4, final TimeUnit timeUnit) {
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(new BackgroundPriorityRunnable() { // from class: com.google.firebase.crashlytics.internal.common.ExecutorUtils.2
|
||||
@Override // com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable
|
||||
public void onRun() {
|
||||
try {
|
||||
Logger.getLogger().d("Executing shutdown hook for " + str);
|
||||
executorService.shutdown();
|
||||
if (executorService.awaitTermination(j4, timeUnit)) {
|
||||
return;
|
||||
}
|
||||
Logger.getLogger().d(str + " did not shut down in the allocated time. Requesting immediate shutdown.");
|
||||
executorService.shutdownNow();
|
||||
} catch (InterruptedException unused) {
|
||||
Logger logger = Logger.getLogger();
|
||||
Locale locale = Locale.US;
|
||||
logger.d("Interrupted while waiting for " + str + " to shut down. Requesting immediate shutdown.");
|
||||
executorService.shutdownNow();
|
||||
}
|
||||
}
|
||||
}, w.z("Crashlytics Shutdown Hook for ", str)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class FileBackedNativeSessionFile implements NativeSessionFile {
|
||||
private final String dataTransportFilename;
|
||||
private final File file;
|
||||
private final String reportsEndpointFilename;
|
||||
|
||||
public FileBackedNativeSessionFile(String str, String str2, File file) {
|
||||
this.dataTransportFilename = str;
|
||||
this.reportsEndpointFilename = str2;
|
||||
this.file = file;
|
||||
}
|
||||
|
||||
private byte[] asGzippedBytes() {
|
||||
byte[] bArr = new byte[8192];
|
||||
try {
|
||||
InputStream stream = getStream();
|
||||
try {
|
||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
try {
|
||||
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(byteArrayOutputStream);
|
||||
if (stream == null) {
|
||||
gZIPOutputStream.close();
|
||||
byteArrayOutputStream.close();
|
||||
if (stream != null) {
|
||||
stream.close();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
while (true) {
|
||||
try {
|
||||
int read = stream.read(bArr);
|
||||
if (read <= 0) {
|
||||
gZIPOutputStream.finish();
|
||||
byte[] byteArray = byteArrayOutputStream.toByteArray();
|
||||
gZIPOutputStream.close();
|
||||
byteArrayOutputStream.close();
|
||||
stream.close();
|
||||
return byteArray;
|
||||
}
|
||||
gZIPOutputStream.write(bArr, 0, read);
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
try {
|
||||
byteArrayOutputStream.close();
|
||||
} catch (Throwable th2) {
|
||||
th.addSuppressed(th2);
|
||||
}
|
||||
throw th;
|
||||
}
|
||||
} finally {
|
||||
}
|
||||
} catch (IOException unused) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public CrashlyticsReport.FilesPayload.File asFilePayload() {
|
||||
byte[] asGzippedBytes = asGzippedBytes();
|
||||
if (asGzippedBytes != null) {
|
||||
return CrashlyticsReport.FilesPayload.File.builder().setContents(asGzippedBytes).setFilename(this.dataTransportFilename).build();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public String getReportsEndpointFilename() {
|
||||
return this.reportsEndpointFilename;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.NativeSessionFile
|
||||
public InputStream getStream() {
|
||||
if (this.file.exists() && this.file.isFile()) {
|
||||
try {
|
||||
return new FileInputStream(this.file);
|
||||
} catch (FileNotFoundException unused) {
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
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 com.google.firebase.sessions.settings.RemoteSettings;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class IdManager implements InstallIdProvider {
|
||||
public static final String DEFAULT_VERSION_NAME = "0.0";
|
||||
static final String PREFKEY_ADVERTISING_ID = "crashlytics.advertising.id";
|
||||
static final String PREFKEY_FIREBASE_IID = "firebase.installation.id";
|
||||
static final String PREFKEY_INSTALLATION_UUID = "crashlytics.installation.id";
|
||||
static final String PREFKEY_LEGACY_INSTALLATION_UUID = "crashlytics.installation.id";
|
||||
private static final String SYNTHETIC_FID_PREFIX = "SYN_";
|
||||
private final Context appContext;
|
||||
private final String appIdentifier;
|
||||
private final DataCollectionArbiter dataCollectionArbiter;
|
||||
private final FirebaseInstallationsApi firebaseInstallationsApi;
|
||||
private InstallIdProvider.InstallIds installIds;
|
||||
private final InstallerPackageNameProvider installerPackageNameProvider;
|
||||
private static final Pattern ID_PATTERN = Pattern.compile("[^\\p{Alnum}]");
|
||||
private static final String FORWARD_SLASH_REGEX = Pattern.quote(RemoteSettings.FORWARD_SLASH_STRING);
|
||||
|
||||
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.firebaseInstallationsApi = firebaseInstallationsApi;
|
||||
this.dataCollectionArbiter = dataCollectionArbiter;
|
||||
this.installerPackageNameProvider = new InstallerPackageNameProvider();
|
||||
}
|
||||
|
||||
private 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(PREFKEY_FIREBASE_IID, str).apply();
|
||||
return formatId;
|
||||
}
|
||||
|
||||
public static String createSyntheticFid() {
|
||||
return SYNTHETIC_FID_PREFIX + UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
private static String formatId(String str) {
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
return ID_PATTERN.matcher(str).replaceAll("").toLowerCase(Locale.US);
|
||||
}
|
||||
|
||||
public static boolean isSyntheticFid(String str) {
|
||||
return str != null && str.startsWith(SYNTHETIC_FID_PREFIX);
|
||||
}
|
||||
|
||||
private String readCachedCrashlyticsInstallId(SharedPreferences sharedPreferences) {
|
||||
return sharedPreferences.getString("crashlytics.installation.id", null);
|
||||
}
|
||||
|
||||
private String removeForwardSlashesIn(String str) {
|
||||
return str.replaceAll(FORWARD_SLASH_REGEX, "");
|
||||
}
|
||||
|
||||
private boolean shouldRefresh() {
|
||||
InstallIdProvider.InstallIds installIds = this.installIds;
|
||||
if (installIds != null) {
|
||||
return installIds.getFirebaseInstallationId() == null && this.dataCollectionArbiter.isAutomaticDataCollectionEnabled();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String fetchTrueFid() {
|
||||
try {
|
||||
return (String) Utils.awaitEvenIfOnMainThread(this.firebaseInstallationsApi.getId());
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().w("Failed to retrieve Firebase Installation ID.", e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public String getAppIdentifier() {
|
||||
return this.appIdentifier;
|
||||
}
|
||||
|
||||
@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(PREFKEY_FIREBASE_IID, null);
|
||||
Logger.getLogger().v("Cached Firebase Installation ID: " + string);
|
||||
if (this.dataCollectionArbiter.isAutomaticDataCollectionEnabled()) {
|
||||
String fetchTrueFid = fetchTrueFid();
|
||||
Logger.getLogger().v("Fetched Firebase Installation ID: " + fetchTrueFid);
|
||||
if (fetchTrueFid == null) {
|
||||
fetchTrueFid = string == null ? createSyntheticFid() : string;
|
||||
}
|
||||
if (fetchTrueFid.equals(string)) {
|
||||
this.installIds = InstallIdProvider.InstallIds.create(readCachedCrashlyticsInstallId(sharedPrefs), fetchTrueFid);
|
||||
} else {
|
||||
this.installIds = InstallIdProvider.InstallIds.create(createAndCacheCrashlyticsInstallId(fetchTrueFid, 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 String getInstallerPackageName() {
|
||||
return this.installerPackageNameProvider.getInstallerPackageName(this.appContext);
|
||||
}
|
||||
|
||||
public String getModelName() {
|
||||
Locale locale = Locale.US;
|
||||
return removeForwardSlashesIn(Build.MANUFACTURER) + RemoteSettings.FORWARD_SLASH_STRING + removeForwardSlashesIn(Build.MODEL);
|
||||
}
|
||||
|
||||
public String getOsBuildVersionString() {
|
||||
return removeForwardSlashesIn(Build.VERSION.INCREMENTAL);
|
||||
}
|
||||
|
||||
public String getOsDisplayVersionString() {
|
||||
return removeForwardSlashesIn(Build.VERSION.RELEASE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface InstallIdProvider {
|
||||
|
||||
@AutoValue
|
||||
/* loaded from: classes3.dex */
|
||||
public static abstract class InstallIds {
|
||||
public static InstallIds create(String str, String str2) {
|
||||
return new AutoValue_InstallIdProvider_InstallIds(str, str2);
|
||||
}
|
||||
|
||||
public static InstallIds createWithoutFid(String str) {
|
||||
return create(str, null);
|
||||
}
|
||||
|
||||
public abstract String getCrashlyticsInstallId();
|
||||
|
||||
public abstract String getFirebaseInstallationId();
|
||||
}
|
||||
|
||||
InstallIds getInstallIds();
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
class InstallerPackageNameProvider {
|
||||
private static final String NO_INSTALLER_PACKAGE_NAME = "";
|
||||
private String installerPackageName;
|
||||
|
||||
private static String loadInstallerPackageName(Context context) {
|
||||
String installerPackageName = context.getPackageManager().getInstallerPackageName(context.getPackageName());
|
||||
return installerPackageName == null ? "" : installerPackageName;
|
||||
}
|
||||
|
||||
public synchronized String getInstallerPackageName(Context context) {
|
||||
try {
|
||||
if (this.installerPackageName == null) {
|
||||
this.installerPackageName = loadInstallerPackageName(context);
|
||||
}
|
||||
} finally {
|
||||
}
|
||||
return "".equals(this.installerPackageName) ? null : this.installerPackageName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.InputStream;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public interface NativeSessionFile {
|
||||
CrashlyticsReport.FilesPayload.File asFilePayload();
|
||||
|
||||
String getReportsEndpointFilename();
|
||||
|
||||
InputStream getStream();
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class NativeSessionFileGzipper {
|
||||
private static void gzipInputStream(InputStream inputStream, File file) throws IOException {
|
||||
if (inputStream == null) {
|
||||
return;
|
||||
}
|
||||
byte[] bArr = new byte[8192];
|
||||
GZIPOutputStream gZIPOutputStream = null;
|
||||
try {
|
||||
GZIPOutputStream gZIPOutputStream2 = new GZIPOutputStream(new FileOutputStream(file));
|
||||
while (true) {
|
||||
try {
|
||||
int read = inputStream.read(bArr);
|
||||
if (read <= 0) {
|
||||
gZIPOutputStream2.finish();
|
||||
CommonUtils.closeQuietly(gZIPOutputStream2);
|
||||
return;
|
||||
}
|
||||
gZIPOutputStream2.write(bArr, 0, read);
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
gZIPOutputStream = gZIPOutputStream2;
|
||||
CommonUtils.closeQuietly(gZIPOutputStream);
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
}
|
||||
}
|
||||
|
||||
public static void processNativeSessions(File file, List<NativeSessionFile> list) {
|
||||
for (NativeSessionFile nativeSessionFile : list) {
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
inputStream = nativeSessionFile.getStream();
|
||||
if (inputStream != null) {
|
||||
gzipInputStream(inputStream, new File(file, nativeSessionFile.getReportsEndpointFilename()));
|
||||
}
|
||||
} catch (IOException unused) {
|
||||
} catch (Throwable th) {
|
||||
CommonUtils.closeQuietly(null);
|
||||
throw th;
|
||||
}
|
||||
CommonUtils.closeQuietly(inputStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class OnDemandCounter {
|
||||
private final AtomicInteger recordedOnDemandExceptions = new AtomicInteger();
|
||||
private final AtomicInteger droppedOnDemandExceptions = new AtomicInteger();
|
||||
|
||||
public int getDroppedOnDemandExceptions() {
|
||||
return this.droppedOnDemandExceptions.get();
|
||||
}
|
||||
|
||||
public int getRecordedOnDemandExceptions() {
|
||||
return this.recordedOnDemandExceptions.get();
|
||||
}
|
||||
|
||||
public void incrementDroppedOnDemandExceptions() {
|
||||
this.droppedOnDemandExceptions.getAndIncrement();
|
||||
}
|
||||
|
||||
public void incrementRecordedOnDemandExceptions() {
|
||||
this.recordedOnDemandExceptions.getAndIncrement();
|
||||
}
|
||||
|
||||
public void resetDroppedOnDemandExceptions() {
|
||||
this.droppedOnDemandExceptions.set(0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class ResponseParser {
|
||||
public static final int ResponseActionDiscard = 0;
|
||||
public static final int ResponseActionRetry = 1;
|
||||
|
||||
public static int parse(int i) {
|
||||
if (i < 200 || i > 299) {
|
||||
return ((i < 300 || i > 399) && i >= 400 && i <= 499) ? 0 : 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import I2.k;
|
||||
import android.app.ApplicationExitInfo;
|
||||
import android.content.Context;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.metadata.LogFileManager;
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.crashlytics.internal.persistence.CrashlyticsReportPersistence;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import com.google.firebase.crashlytics.internal.send.DataTransportCrashlyticsReportSender;
|
||||
import com.google.firebase.crashlytics.internal.settings.SettingsProvider;
|
||||
import com.google.firebase.crashlytics.internal.stacktrace.StackTraceTrimmingStrategy;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.SortedSet;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class SessionReportingCoordinator implements CrashlyticsLifecycleEvents {
|
||||
private static final int DEFAULT_BUFFER_SIZE = 8192;
|
||||
private static final int EVENT_THREAD_IMPORTANCE = 4;
|
||||
private static final String EVENT_TYPE_CRASH = "crash";
|
||||
private static final String EVENT_TYPE_LOGGED = "error";
|
||||
private static final int MAX_CHAINED_EXCEPTION_DEPTH = 8;
|
||||
private final CrashlyticsReportDataCapture dataCapture;
|
||||
private final IdManager idManager;
|
||||
private final LogFileManager logFileManager;
|
||||
private final UserMetadata reportMetadata;
|
||||
private final CrashlyticsReportPersistence reportPersistence;
|
||||
private final DataTransportCrashlyticsReportSender reportsSender;
|
||||
|
||||
public SessionReportingCoordinator(CrashlyticsReportDataCapture crashlyticsReportDataCapture, CrashlyticsReportPersistence crashlyticsReportPersistence, DataTransportCrashlyticsReportSender dataTransportCrashlyticsReportSender, LogFileManager logFileManager, UserMetadata userMetadata, IdManager idManager) {
|
||||
this.dataCapture = crashlyticsReportDataCapture;
|
||||
this.reportPersistence = crashlyticsReportPersistence;
|
||||
this.reportsSender = dataTransportCrashlyticsReportSender;
|
||||
this.logFileManager = logFileManager;
|
||||
this.reportMetadata = userMetadata;
|
||||
this.idManager = idManager;
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event addLogsAndCustomKeysToEvent(CrashlyticsReport.Session.Event event) {
|
||||
return addLogsAndCustomKeysToEvent(event, this.logFileManager, this.reportMetadata);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event addMetaDataToEvent(CrashlyticsReport.Session.Event event) {
|
||||
return addRolloutsStateToEvent(addLogsAndCustomKeysToEvent(event, this.logFileManager, this.reportMetadata), this.reportMetadata);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event addRolloutsStateToEvent(CrashlyticsReport.Session.Event event, UserMetadata userMetadata) {
|
||||
List<CrashlyticsReport.Session.Event.RolloutAssignment> rolloutsState = userMetadata.getRolloutsState();
|
||||
if (rolloutsState.isEmpty()) {
|
||||
return event;
|
||||
}
|
||||
CrashlyticsReport.Session.Event.Builder builder = event.toBuilder();
|
||||
builder.setRollouts(CrashlyticsReport.Session.Event.RolloutsState.builder().setRolloutAssignments(rolloutsState).build());
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
private static CrashlyticsReport.ApplicationExitInfo convertApplicationExitInfo(ApplicationExitInfo applicationExitInfo) {
|
||||
String applicationExitInfo2;
|
||||
int importance;
|
||||
String processName;
|
||||
int reason;
|
||||
long timestamp;
|
||||
int pid;
|
||||
long pss;
|
||||
long rss;
|
||||
InputStream traceInputStream;
|
||||
String str = null;
|
||||
try {
|
||||
traceInputStream = applicationExitInfo.getTraceInputStream();
|
||||
if (traceInputStream != null) {
|
||||
str = convertInputStreamToString(traceInputStream);
|
||||
}
|
||||
} catch (IOException e4) {
|
||||
Logger logger = Logger.getLogger();
|
||||
StringBuilder sb = new StringBuilder("Could not get input trace in application exit info: ");
|
||||
applicationExitInfo2 = applicationExitInfo.toString();
|
||||
sb.append(applicationExitInfo2);
|
||||
sb.append(" Error: ");
|
||||
sb.append(e4);
|
||||
logger.w(sb.toString());
|
||||
}
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder builder = CrashlyticsReport.ApplicationExitInfo.builder();
|
||||
importance = applicationExitInfo.getImportance();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder importance2 = builder.setImportance(importance);
|
||||
processName = applicationExitInfo.getProcessName();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder processName2 = importance2.setProcessName(processName);
|
||||
reason = applicationExitInfo.getReason();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder reasonCode = processName2.setReasonCode(reason);
|
||||
timestamp = applicationExitInfo.getTimestamp();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder timestamp2 = reasonCode.setTimestamp(timestamp);
|
||||
pid = applicationExitInfo.getPid();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder pid2 = timestamp2.setPid(pid);
|
||||
pss = applicationExitInfo.getPss();
|
||||
CrashlyticsReport.ApplicationExitInfo.Builder pss2 = pid2.setPss(pss);
|
||||
rss = applicationExitInfo.getRss();
|
||||
return pss2.setRss(rss).setTraceFile(str).build();
|
||||
}
|
||||
|
||||
public static String convertInputStreamToString(InputStream inputStream) throws IOException {
|
||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
byte[] bArr = new byte[8192];
|
||||
while (true) {
|
||||
int read = inputStream.read(bArr);
|
||||
if (read == -1) {
|
||||
return byteArrayOutputStream.toString(StandardCharsets.UTF_8.name());
|
||||
}
|
||||
byteArrayOutputStream.write(bArr, 0, read);
|
||||
}
|
||||
}
|
||||
|
||||
public static SessionReportingCoordinator create(Context context, IdManager idManager, FileStore fileStore, AppData appData, LogFileManager logFileManager, UserMetadata userMetadata, StackTraceTrimmingStrategy stackTraceTrimmingStrategy, SettingsProvider settingsProvider, OnDemandCounter onDemandCounter, CrashlyticsAppQualitySessionsSubscriber crashlyticsAppQualitySessionsSubscriber) {
|
||||
return new SessionReportingCoordinator(new CrashlyticsReportDataCapture(context, idManager, appData, stackTraceTrimmingStrategy, settingsProvider), new CrashlyticsReportPersistence(fileStore, settingsProvider, crashlyticsAppQualitySessionsSubscriber), DataTransportCrashlyticsReportSender.create(context, settingsProvider, onDemandCounter), logFileManager, userMetadata, idManager);
|
||||
}
|
||||
|
||||
private CrashlyticsReportWithSessionId ensureHasFid(CrashlyticsReportWithSessionId crashlyticsReportWithSessionId) {
|
||||
if (crashlyticsReportWithSessionId.getReport().getFirebaseInstallationId() != null) {
|
||||
return crashlyticsReportWithSessionId;
|
||||
}
|
||||
return CrashlyticsReportWithSessionId.create(crashlyticsReportWithSessionId.getReport().withFirebaseInstallationId(this.idManager.fetchTrueFid()), crashlyticsReportWithSessionId.getSessionId(), crashlyticsReportWithSessionId.getReportFile());
|
||||
}
|
||||
|
||||
private ApplicationExitInfo findRelevantApplicationExitInfo(String str, List<ApplicationExitInfo> list) {
|
||||
long timestamp;
|
||||
int reason;
|
||||
long startTimestampMillis = this.reportPersistence.getStartTimestampMillis(str);
|
||||
Iterator<ApplicationExitInfo> it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
ApplicationExitInfo c4 = P.c.c(it.next());
|
||||
timestamp = c4.getTimestamp();
|
||||
if (timestamp < startTimestampMillis) {
|
||||
return null;
|
||||
}
|
||||
reason = c4.getReason();
|
||||
if (reason == 6) {
|
||||
return c4;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static List<CrashlyticsReport.CustomAttribute> getSortedCustomAttributes(Map<String, String> map) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
arrayList.ensureCapacity(map.size());
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
arrayList.add(CrashlyticsReport.CustomAttribute.builder().setKey(entry.getKey()).setValue(entry.getValue()).build());
|
||||
}
|
||||
Collections.sort(arrayList, new b(1));
|
||||
return Collections.unmodifiableList(arrayList);
|
||||
}
|
||||
|
||||
public static /* synthetic */ int lambda$getSortedCustomAttributes$0(CrashlyticsReport.CustomAttribute customAttribute, CrashlyticsReport.CustomAttribute customAttribute2) {
|
||||
return customAttribute.getKey().compareTo(customAttribute2.getKey());
|
||||
}
|
||||
|
||||
public boolean onReportSendComplete(Task<CrashlyticsReportWithSessionId> task) {
|
||||
if (!task.isSuccessful()) {
|
||||
Logger.getLogger().w("Crashlytics report could not be enqueued to DataTransport", task.getException());
|
||||
return false;
|
||||
}
|
||||
CrashlyticsReportWithSessionId result = task.getResult();
|
||||
Logger.getLogger().d("Crashlytics report successfully enqueued to DataTransport: " + result.getSessionId());
|
||||
File reportFile = result.getReportFile();
|
||||
if (reportFile.delete()) {
|
||||
Logger.getLogger().d("Deleted report file: " + reportFile.getPath());
|
||||
return true;
|
||||
}
|
||||
Logger.getLogger().w("Crashlytics could not delete report file: " + reportFile.getPath());
|
||||
return true;
|
||||
}
|
||||
|
||||
private void persistEvent(Throwable th, Thread thread, String str, String str2, long j4, boolean z3) {
|
||||
this.reportPersistence.persistEvent(addMetaDataToEvent(this.dataCapture.captureEventData(th, thread, str2, j4, 4, 8, z3)), str, str2.equals("crash"));
|
||||
}
|
||||
|
||||
public void finalizeSessionWithNativeEvent(String str, List<NativeSessionFile> list, CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
Logger.getLogger().d("SessionReportingCoordinator#finalizeSessionWithNativeEvent");
|
||||
ArrayList arrayList = new ArrayList();
|
||||
Iterator<NativeSessionFile> it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
CrashlyticsReport.FilesPayload.File asFilePayload = it.next().asFilePayload();
|
||||
if (asFilePayload != null) {
|
||||
arrayList.add(asFilePayload);
|
||||
}
|
||||
}
|
||||
this.reportPersistence.finalizeSessionWithNativeEvent(str, CrashlyticsReport.FilesPayload.builder().setFiles(Collections.unmodifiableList(arrayList)).build(), applicationExitInfo);
|
||||
}
|
||||
|
||||
public void finalizeSessions(long j4, String str) {
|
||||
this.reportPersistence.finalizeReports(str, j4);
|
||||
}
|
||||
|
||||
public boolean hasReportsToSend() {
|
||||
return this.reportPersistence.hasFinalizedReports();
|
||||
}
|
||||
|
||||
public SortedSet<String> listSortedOpenSessionIds() {
|
||||
return this.reportPersistence.getOpenSessionIds();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsLifecycleEvents
|
||||
public void onBeginSession(String str, long j4) {
|
||||
this.reportPersistence.persistReport(this.dataCapture.captureReportData(str, j4));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsLifecycleEvents
|
||||
public void onCustomKey(String str, String str2) {
|
||||
this.reportMetadata.setCustomKey(str, str2);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsLifecycleEvents
|
||||
public void onLog(long j4, String str) {
|
||||
this.logFileManager.writeToLog(j4, str);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CrashlyticsLifecycleEvents
|
||||
public void onUserId(String str) {
|
||||
this.reportMetadata.setUserId(str);
|
||||
}
|
||||
|
||||
public void persistFatalEvent(Throwable th, Thread thread, String str, long j4) {
|
||||
Logger.getLogger().v("Persisting fatal event for session " + str);
|
||||
persistEvent(th, thread, str, "crash", j4, true);
|
||||
}
|
||||
|
||||
public void persistNonFatalEvent(Throwable th, Thread thread, String str, long j4) {
|
||||
Logger.getLogger().v("Persisting non-fatal event for session " + str);
|
||||
persistEvent(th, thread, str, "error", j4, false);
|
||||
}
|
||||
|
||||
public void persistRelevantAppExitInfoEvent(String str, List<ApplicationExitInfo> list, LogFileManager logFileManager, UserMetadata userMetadata) {
|
||||
ApplicationExitInfo findRelevantApplicationExitInfo = findRelevantApplicationExitInfo(str, list);
|
||||
if (findRelevantApplicationExitInfo == null) {
|
||||
Logger.getLogger().v("No relevant ApplicationExitInfo occurred during session: " + str);
|
||||
return;
|
||||
}
|
||||
CrashlyticsReport.Session.Event captureAnrEventData = this.dataCapture.captureAnrEventData(convertApplicationExitInfo(findRelevantApplicationExitInfo));
|
||||
Logger.getLogger().d("Persisting anr for session " + str);
|
||||
this.reportPersistence.persistEvent(addRolloutsStateToEvent(addLogsAndCustomKeysToEvent(captureAnrEventData, logFileManager, userMetadata), userMetadata), str, true);
|
||||
}
|
||||
|
||||
public void removeAllReports() {
|
||||
this.reportPersistence.deleteAllReports();
|
||||
}
|
||||
|
||||
public Task<Void> sendReports(Executor executor) {
|
||||
return sendReports(executor, null);
|
||||
}
|
||||
|
||||
private CrashlyticsReport.Session.Event addLogsAndCustomKeysToEvent(CrashlyticsReport.Session.Event event, LogFileManager logFileManager, UserMetadata userMetadata) {
|
||||
CrashlyticsReport.Session.Event.Builder builder = event.toBuilder();
|
||||
String logString = logFileManager.getLogString();
|
||||
if (logString != null) {
|
||||
builder.setLog(CrashlyticsReport.Session.Event.Log.builder().setContent(logString).build());
|
||||
} else {
|
||||
Logger.getLogger().v("No log data to include with this event.");
|
||||
}
|
||||
List<CrashlyticsReport.CustomAttribute> sortedCustomAttributes = getSortedCustomAttributes(userMetadata.getCustomKeys());
|
||||
List<CrashlyticsReport.CustomAttribute> sortedCustomAttributes2 = getSortedCustomAttributes(userMetadata.getInternalKeys());
|
||||
if (!sortedCustomAttributes.isEmpty() || !sortedCustomAttributes2.isEmpty()) {
|
||||
builder.setApp(event.getApp().toBuilder().setCustomAttributes(sortedCustomAttributes).setInternalKeys(sortedCustomAttributes2).build());
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public Task<Void> sendReports(Executor executor, String str) {
|
||||
List<CrashlyticsReportWithSessionId> loadFinalizedReports = this.reportPersistence.loadFinalizedReports();
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (CrashlyticsReportWithSessionId crashlyticsReportWithSessionId : loadFinalizedReports) {
|
||||
if (str == null || str.equals(crashlyticsReportWithSessionId.getSessionId())) {
|
||||
arrayList.add(this.reportsSender.enqueueReport(ensureHasFid(crashlyticsReportWithSessionId), str != null).continueWith(executor, new k(this, 17)));
|
||||
}
|
||||
}
|
||||
return Tasks.whenAll(arrayList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class SystemCurrentTimeProvider implements CurrentTimeProvider {
|
||||
@Override // com.google.firebase.crashlytics.internal.common.CurrentTimeProvider
|
||||
public long getCurrentTimeMillis() {
|
||||
return System.currentTimeMillis();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import I2.k;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Looper;
|
||||
import androidx.fragment.app.RunnableC0143e;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class Utils {
|
||||
private static final ExecutorService TASK_CONTINUATION_EXECUTOR_SERVICE = ExecutorUtils.buildSingleThreadExecutorService("awaitEvenIfOnMainThread task continuation executor");
|
||||
private static final int TIMEOUT_SEC = 4;
|
||||
|
||||
private Utils() {
|
||||
}
|
||||
|
||||
public static <T> T awaitEvenIfOnMainThread(Task<T> task) throws InterruptedException, TimeoutException {
|
||||
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||
task.continueWith(TASK_CONTINUATION_EXECUTOR_SERVICE, new k(countDownLatch, 18));
|
||||
if (Looper.getMainLooper() == Looper.myLooper()) {
|
||||
countDownLatch.await(3L, TimeUnit.SECONDS);
|
||||
} else {
|
||||
countDownLatch.await(4L, TimeUnit.SECONDS);
|
||||
}
|
||||
if (task.isSuccessful()) {
|
||||
return task.getResult();
|
||||
}
|
||||
if (task.isCanceled()) {
|
||||
throw new CancellationException("Task is already canceled");
|
||||
}
|
||||
if (task.isComplete()) {
|
||||
throw new IllegalStateException(task.getException());
|
||||
}
|
||||
throw new TimeoutException();
|
||||
}
|
||||
|
||||
public static boolean awaitUninterruptibly(CountDownLatch countDownLatch, long j4, TimeUnit timeUnit) {
|
||||
boolean z3 = false;
|
||||
try {
|
||||
long nanos = timeUnit.toNanos(j4);
|
||||
while (true) {
|
||||
try {
|
||||
break;
|
||||
} catch (InterruptedException unused) {
|
||||
z3 = true;
|
||||
nanos = (System.nanoTime() + nanos) - System.nanoTime();
|
||||
}
|
||||
}
|
||||
return countDownLatch.await(nanos, TimeUnit.NANOSECONDS);
|
||||
} finally {
|
||||
if (z3) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static /* synthetic */ Object b(CountDownLatch countDownLatch, Task task) {
|
||||
return lambda$awaitEvenIfOnMainThread$4(countDownLatch, task);
|
||||
}
|
||||
|
||||
public static <T> Task<T> callTask(Executor executor, Callable<Task<T>> callable) {
|
||||
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
||||
executor.execute(new RunnableC0143e(callable, executor, taskCompletionSource, 3));
|
||||
return taskCompletionSource.getTask();
|
||||
}
|
||||
|
||||
public static /* synthetic */ Object lambda$awaitEvenIfOnMainThread$4(CountDownLatch countDownLatch, Task task) throws Exception {
|
||||
countDownLatch.countDown();
|
||||
return null;
|
||||
}
|
||||
|
||||
public static /* synthetic */ Object lambda$callTask$2(TaskCompletionSource taskCompletionSource, Task task) throws Exception {
|
||||
if (task.isSuccessful()) {
|
||||
taskCompletionSource.setResult(task.getResult());
|
||||
return null;
|
||||
}
|
||||
if (task.getException() == null) {
|
||||
return null;
|
||||
}
|
||||
taskCompletionSource.setException(task.getException());
|
||||
return null;
|
||||
}
|
||||
|
||||
public static /* synthetic */ void lambda$callTask$3(Callable callable, Executor executor, TaskCompletionSource taskCompletionSource) {
|
||||
try {
|
||||
((Task) callable.call()).continueWith(executor, new d(1, taskCompletionSource));
|
||||
} catch (Exception e4) {
|
||||
taskCompletionSource.setException(e4);
|
||||
}
|
||||
}
|
||||
|
||||
public static /* synthetic */ Void lambda$race$0(TaskCompletionSource taskCompletionSource, Task task) throws Exception {
|
||||
if (task.isSuccessful()) {
|
||||
taskCompletionSource.trySetResult(task.getResult());
|
||||
return null;
|
||||
}
|
||||
if (task.getException() == null) {
|
||||
return null;
|
||||
}
|
||||
taskCompletionSource.trySetException(task.getException());
|
||||
return null;
|
||||
}
|
||||
|
||||
public static /* synthetic */ Void lambda$race$1(TaskCompletionSource taskCompletionSource, Task task) throws Exception {
|
||||
if (task.isSuccessful()) {
|
||||
taskCompletionSource.trySetResult(task.getResult());
|
||||
return null;
|
||||
}
|
||||
if (task.getException() == null) {
|
||||
return null;
|
||||
}
|
||||
taskCompletionSource.trySetException(task.getException());
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressLint({"TaskMainThread"})
|
||||
public static <T> Task<T> race(Task<T> task, Task<T> task2) {
|
||||
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
||||
d dVar = new d(0, taskCompletionSource);
|
||||
task.continueWith(dVar);
|
||||
task2.continueWith(dVar);
|
||||
return taskCompletionSource.getTask();
|
||||
}
|
||||
|
||||
public static <T> Task<T> race(Executor executor, Task<T> task, Task<T> task2) {
|
||||
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
||||
d dVar = new d(2, taskCompletionSource);
|
||||
task.continueWith(executor, dVar);
|
||||
task2.continueWith(executor, dVar);
|
||||
return taskCompletionSource.getTask();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class a implements FilenameFilter {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f5967a;
|
||||
|
||||
public /* synthetic */ a(int i) {
|
||||
this.f5967a = i;
|
||||
}
|
||||
|
||||
@Override // java.io.FilenameFilter
|
||||
public final boolean accept(File file, String str) {
|
||||
switch (this.f5967a) {
|
||||
case 0:
|
||||
return CrashlyticsAppQualitySessionsStore.a(file, str);
|
||||
default:
|
||||
return CrashlyticsController.a(file, str);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.io.File;
|
||||
import java.util.Comparator;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class b implements Comparator {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f5968a;
|
||||
|
||||
public /* synthetic */ b(int i) {
|
||||
this.f5968a = i;
|
||||
}
|
||||
|
||||
@Override // java.util.Comparator
|
||||
public final int compare(Object obj, Object obj2) {
|
||||
int lambda$static$1;
|
||||
switch (this.f5968a) {
|
||||
case 0:
|
||||
lambda$static$1 = CrashlyticsAppQualitySessionsStore.lambda$static$1((File) obj, (File) obj2);
|
||||
return lambda$static$1;
|
||||
default:
|
||||
return SessionReportingCoordinator.a((CrashlyticsReport.CustomAttribute) obj, (CrashlyticsReport.CustomAttribute) obj2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.google.firebase.crashlytics.internal.common;
|
||||
|
||||
import com.google.android.gms.tasks.Continuation;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class d implements Continuation {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f5970a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final /* synthetic */ TaskCompletionSource f5971b;
|
||||
|
||||
public /* synthetic */ d(int i, TaskCompletionSource taskCompletionSource) {
|
||||
this.f5970a = i;
|
||||
this.f5971b = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Continuation
|
||||
public final Object then(Task task) {
|
||||
Void lambda$race$0;
|
||||
Object lambda$callTask$2;
|
||||
Void lambda$race$1;
|
||||
int i = this.f5970a;
|
||||
TaskCompletionSource taskCompletionSource = this.f5971b;
|
||||
switch (i) {
|
||||
case 0:
|
||||
lambda$race$0 = Utils.lambda$race$0(taskCompletionSource, task);
|
||||
return lambda$race$0;
|
||||
case 1:
|
||||
lambda$callTask$2 = Utils.lambda$callTask$2(taskCompletionSource, task);
|
||||
return lambda$callTask$2;
|
||||
default:
|
||||
lambda$race$1 = Utils.lambda$race$1(taskCompletionSource, task);
|
||||
return lambda$race$1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.encoders.FieldDescriptor;
|
||||
import com.google.firebase.encoders.ObjectEncoder;
|
||||
import com.google.firebase.encoders.ObjectEncoderContext;
|
||||
import com.google.firebase.encoders.config.Configurator;
|
||||
import com.google.firebase.encoders.config.EncoderConfig;
|
||||
import com.google.firebase.remoteconfig.RemoteConfigConstants;
|
||||
import com.google.firebase.remoteconfig.internal.ConfigContainer;
|
||||
import java.io.IOException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class AutoRolloutAssignmentEncoder implements Configurator {
|
||||
public static final int CODEGEN_VERSION = 2;
|
||||
public static final Configurator CONFIG = new AutoRolloutAssignmentEncoder();
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class RolloutAssignmentEncoder implements ObjectEncoder<RolloutAssignment> {
|
||||
static final RolloutAssignmentEncoder INSTANCE = new RolloutAssignmentEncoder();
|
||||
private static final FieldDescriptor ROLLOUTID_DESCRIPTOR = FieldDescriptor.of(ConfigContainer.ROLLOUT_METADATA_ID);
|
||||
private static final FieldDescriptor PARAMETERKEY_DESCRIPTOR = FieldDescriptor.of("parameterKey");
|
||||
private static final FieldDescriptor PARAMETERVALUE_DESCRIPTOR = FieldDescriptor.of("parameterValue");
|
||||
private static final FieldDescriptor VARIANTID_DESCRIPTOR = FieldDescriptor.of("variantId");
|
||||
private static final FieldDescriptor TEMPLATEVERSION_DESCRIPTOR = FieldDescriptor.of(RemoteConfigConstants.ResponseFieldKey.TEMPLATE_VERSION_NUMBER);
|
||||
|
||||
private RolloutAssignmentEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(RolloutAssignment rolloutAssignment, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ROLLOUTID_DESCRIPTOR, rolloutAssignment.getRolloutId());
|
||||
objectEncoderContext.add(PARAMETERKEY_DESCRIPTOR, rolloutAssignment.getParameterKey());
|
||||
objectEncoderContext.add(PARAMETERVALUE_DESCRIPTOR, rolloutAssignment.getParameterValue());
|
||||
objectEncoderContext.add(VARIANTID_DESCRIPTOR, rolloutAssignment.getVariantId());
|
||||
objectEncoderContext.add(TEMPLATEVERSION_DESCRIPTOR, rolloutAssignment.getTemplateVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private AutoRolloutAssignmentEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.config.Configurator
|
||||
public void configure(EncoderConfig<?> encoderConfig) {
|
||||
RolloutAssignmentEncoder rolloutAssignmentEncoder = RolloutAssignmentEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(RolloutAssignment.class, rolloutAssignmentEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_RolloutAssignment.class, rolloutAssignmentEncoder);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import C.w;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_RolloutAssignment extends RolloutAssignment {
|
||||
private final String parameterKey;
|
||||
private final String parameterValue;
|
||||
private final String rolloutId;
|
||||
private final long templateVersion;
|
||||
private final String variantId;
|
||||
|
||||
public AutoValue_RolloutAssignment(String str, String str2, String str3, String str4, long j4) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null rolloutId");
|
||||
}
|
||||
this.rolloutId = str;
|
||||
if (str2 == null) {
|
||||
throw new NullPointerException("Null parameterKey");
|
||||
}
|
||||
this.parameterKey = str2;
|
||||
if (str3 == null) {
|
||||
throw new NullPointerException("Null parameterValue");
|
||||
}
|
||||
this.parameterValue = str3;
|
||||
if (str4 == null) {
|
||||
throw new NullPointerException("Null variantId");
|
||||
}
|
||||
this.variantId = str4;
|
||||
this.templateVersion = j4;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof RolloutAssignment) {
|
||||
RolloutAssignment rolloutAssignment = (RolloutAssignment) obj;
|
||||
if (this.rolloutId.equals(rolloutAssignment.getRolloutId()) && this.parameterKey.equals(rolloutAssignment.getParameterKey()) && this.parameterValue.equals(rolloutAssignment.getParameterValue()) && this.variantId.equals(rolloutAssignment.getVariantId()) && this.templateVersion == rolloutAssignment.getTemplateVersion()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.RolloutAssignment
|
||||
public String getParameterKey() {
|
||||
return this.parameterKey;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.RolloutAssignment
|
||||
public String getParameterValue() {
|
||||
return this.parameterValue;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.RolloutAssignment
|
||||
public String getRolloutId() {
|
||||
return this.rolloutId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.RolloutAssignment
|
||||
public long getTemplateVersion() {
|
||||
return this.templateVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.RolloutAssignment
|
||||
public String getVariantId() {
|
||||
return this.variantId;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((((((this.rolloutId.hashCode() ^ 1000003) * 1000003) ^ this.parameterKey.hashCode()) * 1000003) ^ this.parameterValue.hashCode()) * 1000003) ^ this.variantId.hashCode()) * 1000003;
|
||||
long j4 = this.templateVersion;
|
||||
return ((int) (j4 ^ (j4 >>> 32))) ^ hashCode;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("RolloutAssignment{rolloutId=");
|
||||
sb.append(this.rolloutId);
|
||||
sb.append(", parameterKey=");
|
||||
sb.append(this.parameterKey);
|
||||
sb.append(", parameterValue=");
|
||||
sb.append(this.parameterValue);
|
||||
sb.append(", variantId=");
|
||||
sb.append(this.variantId);
|
||||
sb.append(", templateVersion=");
|
||||
return w.q(sb, this.templateVersion, "}");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public interface FileLogStore {
|
||||
void closeLogFile();
|
||||
|
||||
void deleteLogFile();
|
||||
|
||||
byte[] getLogAsBytes();
|
||||
|
||||
String getLogAsString();
|
||||
|
||||
void writeToLog(long j4, String str);
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class KeysMap {
|
||||
private final Map<String, String> keys = new HashMap();
|
||||
private final int maxEntries;
|
||||
private final int maxEntryLength;
|
||||
|
||||
public KeysMap(int i, int i4) {
|
||||
this.maxEntries = i;
|
||||
this.maxEntryLength = i4;
|
||||
}
|
||||
|
||||
private String sanitizeKey(String str) {
|
||||
if (str != null) {
|
||||
return sanitizeString(str, this.maxEntryLength);
|
||||
}
|
||||
throw new IllegalArgumentException("Custom attribute key must not be null.");
|
||||
}
|
||||
|
||||
public static String sanitizeString(String str, int i) {
|
||||
if (str == null) {
|
||||
return str;
|
||||
}
|
||||
String trim = str.trim();
|
||||
return trim.length() > i ? trim.substring(0, i) : trim;
|
||||
}
|
||||
|
||||
public synchronized Map<String, String> getKeys() {
|
||||
return Collections.unmodifiableMap(new HashMap(this.keys));
|
||||
}
|
||||
|
||||
public synchronized boolean setKey(String str, String str2) {
|
||||
String sanitizeKey = sanitizeKey(str);
|
||||
if (this.keys.size() >= this.maxEntries && !this.keys.containsKey(sanitizeKey)) {
|
||||
Logger.getLogger().w("Ignored entry \"" + str + "\" when adding custom keys. Maximum allowable: " + this.maxEntries);
|
||||
return false;
|
||||
}
|
||||
String sanitizeString = sanitizeString(str2, this.maxEntryLength);
|
||||
if (CommonUtils.nullSafeEquals(this.keys.get(sanitizeKey), sanitizeString)) {
|
||||
return false;
|
||||
}
|
||||
Map<String, String> map = this.keys;
|
||||
if (str2 == null) {
|
||||
sanitizeString = "";
|
||||
}
|
||||
map.put(sanitizeKey, sanitizeString);
|
||||
return true;
|
||||
}
|
||||
|
||||
public synchronized void setKeys(Map<String, String> map) {
|
||||
try {
|
||||
int i = 0;
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String sanitizeKey = sanitizeKey(entry.getKey());
|
||||
if (this.keys.size() >= this.maxEntries && !this.keys.containsKey(sanitizeKey)) {
|
||||
i++;
|
||||
}
|
||||
String value = entry.getValue();
|
||||
this.keys.put(sanitizeKey, value == null ? "" : sanitizeString(value, this.maxEntryLength));
|
||||
}
|
||||
if (i > 0) {
|
||||
Logger.getLogger().w("Ignored " + i + " entries when adding custom keys. Maximum allowable: " + this.maxEntries);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import java.io.File;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class LogFileManager {
|
||||
private static final String LOGFILE_NAME = "userlog";
|
||||
static final int MAX_LOG_SIZE = 65536;
|
||||
private static final NoopLogStore NOOP_LOG_STORE = new NoopLogStore();
|
||||
private FileLogStore currentLog;
|
||||
private final FileStore fileStore;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class NoopLogStore implements FileLogStore {
|
||||
private NoopLogStore() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void closeLogFile() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void deleteLogFile() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public byte[] getLogAsBytes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public String getLogAsString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void writeToLog(long j4, String str) {
|
||||
}
|
||||
}
|
||||
|
||||
public LogFileManager(FileStore fileStore) {
|
||||
this.fileStore = fileStore;
|
||||
this.currentLog = NOOP_LOG_STORE;
|
||||
}
|
||||
|
||||
private File getWorkingFileForSession(String str) {
|
||||
return this.fileStore.getSessionFile(str, LOGFILE_NAME);
|
||||
}
|
||||
|
||||
public void clearLog() {
|
||||
this.currentLog.deleteLogFile();
|
||||
}
|
||||
|
||||
public byte[] getBytesForLog() {
|
||||
return this.currentLog.getLogAsBytes();
|
||||
}
|
||||
|
||||
public String getLogString() {
|
||||
return this.currentLog.getLogAsString();
|
||||
}
|
||||
|
||||
public final void setCurrentSession(String str) {
|
||||
this.currentLog.closeLogFile();
|
||||
this.currentLog = NOOP_LOG_STORE;
|
||||
if (str == null) {
|
||||
return;
|
||||
}
|
||||
setLogFile(getWorkingFileForSession(str), MAX_LOG_SIZE);
|
||||
}
|
||||
|
||||
public void setLogFile(File file, int i) {
|
||||
this.currentLog = new QueueFileLogStore(file, i);
|
||||
}
|
||||
|
||||
public void writeToLog(long j4, String str) {
|
||||
this.currentLog.writeToLog(j4, str);
|
||||
}
|
||||
|
||||
public LogFileManager(FileStore fileStore, String str) {
|
||||
this(fileStore);
|
||||
setCurrentSession(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,356 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.Closeable;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class MetaDataStore {
|
||||
private static final String KEY_USER_ID = "userId";
|
||||
private static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||
private final FileStore fileStore;
|
||||
|
||||
public MetaDataStore(FileStore fileStore) {
|
||||
this.fileStore = fileStore;
|
||||
}
|
||||
|
||||
private static Map<String, String> jsonToKeysData(String str) throws JSONException {
|
||||
JSONObject jSONObject = new JSONObject(str);
|
||||
HashMap hashMap = new HashMap();
|
||||
Iterator<String> keys = jSONObject.keys();
|
||||
while (keys.hasNext()) {
|
||||
String next = keys.next();
|
||||
hashMap.put(next, valueOrNull(jSONObject, next));
|
||||
}
|
||||
return hashMap;
|
||||
}
|
||||
|
||||
private static List<RolloutAssignment> jsonToRolloutsState(String str) throws JSONException {
|
||||
JSONArray jSONArray = new JSONObject(str).getJSONArray("rolloutsState");
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (int i = 0; i < jSONArray.length(); i++) {
|
||||
String string = jSONArray.getString(i);
|
||||
try {
|
||||
arrayList.add(RolloutAssignment.create(string));
|
||||
} catch (Exception e4) {
|
||||
Logger.getLogger().w("Failed de-serializing rollouts state. " + string, e4);
|
||||
}
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private String jsonToUserId(String str) throws JSONException {
|
||||
return valueOrNull(new JSONObject(str), KEY_USER_ID);
|
||||
}
|
||||
|
||||
private static String keysDataToJson(Map<String, String> map) {
|
||||
return new JSONObject(map).toString();
|
||||
}
|
||||
|
||||
private static String rolloutsStateToJson(List<RolloutAssignment> list) {
|
||||
HashMap hashMap = new HashMap();
|
||||
JSONArray jSONArray = new JSONArray();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
try {
|
||||
jSONArray.put(new JSONObject(RolloutAssignment.ROLLOUT_ASSIGNMENT_JSON_ENCODER.encode(list.get(i))));
|
||||
} catch (JSONException e4) {
|
||||
Logger.getLogger().w("Exception parsing rollout assignment!", e4);
|
||||
}
|
||||
}
|
||||
hashMap.put("rolloutsState", jSONArray);
|
||||
return new JSONObject(hashMap).toString();
|
||||
}
|
||||
|
||||
private static void safeDeleteCorruptFile(File file) {
|
||||
if (file.exists() && file.delete()) {
|
||||
Logger.getLogger().i("Deleted corrupt file: " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
private static String userIdToJson(String str) throws JSONException {
|
||||
return new JSONObject(str) { // from class: com.google.firebase.crashlytics.internal.metadata.MetaDataStore.1
|
||||
final /* synthetic */ String val$userId;
|
||||
|
||||
{
|
||||
this.val$userId = str;
|
||||
put(MetaDataStore.KEY_USER_ID, str);
|
||||
}
|
||||
}.toString();
|
||||
}
|
||||
|
||||
private static String valueOrNull(JSONObject jSONObject, String str) {
|
||||
if (jSONObject.isNull(str)) {
|
||||
return null;
|
||||
}
|
||||
return jSONObject.optString(str, null);
|
||||
}
|
||||
|
||||
public File getInternalKeysFileForSession(String str) {
|
||||
return this.fileStore.getSessionFile(str, UserMetadata.INTERNAL_KEYDATA_FILENAME);
|
||||
}
|
||||
|
||||
public File getKeysFileForSession(String str) {
|
||||
return this.fileStore.getSessionFile(str, UserMetadata.KEYDATA_FILENAME);
|
||||
}
|
||||
|
||||
public File getRolloutsStateForSession(String str) {
|
||||
return this.fileStore.getSessionFile(str, UserMetadata.ROLLOUTS_STATE_FILENAME);
|
||||
}
|
||||
|
||||
public File getUserDataFileForSession(String str) {
|
||||
return this.fileStore.getSessionFile(str, UserMetadata.USERDATA_FILENAME);
|
||||
}
|
||||
|
||||
public Map<String, String> readKeyData(String str) {
|
||||
return readKeyData(str, false);
|
||||
}
|
||||
|
||||
public List<RolloutAssignment> readRolloutsState(String str) {
|
||||
FileInputStream fileInputStream;
|
||||
File rolloutsStateForSession = getRolloutsStateForSession(str);
|
||||
if (!rolloutsStateForSession.exists() || rolloutsStateForSession.length() == 0) {
|
||||
safeDeleteCorruptFile(rolloutsStateForSession);
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
FileInputStream fileInputStream2 = null;
|
||||
try {
|
||||
try {
|
||||
fileInputStream = new FileInputStream(rolloutsStateForSession);
|
||||
} catch (Exception e4) {
|
||||
e = e4;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
}
|
||||
try {
|
||||
List<RolloutAssignment> jsonToRolloutsState = jsonToRolloutsState(CommonUtils.streamToString(fileInputStream));
|
||||
Logger.getLogger().d("Loaded rollouts state:\n" + jsonToRolloutsState + "\nfor session " + str);
|
||||
CommonUtils.closeOrLog(fileInputStream, "Failed to close rollouts state file.");
|
||||
return jsonToRolloutsState;
|
||||
} catch (Exception e5) {
|
||||
e = e5;
|
||||
fileInputStream2 = fileInputStream;
|
||||
Logger.getLogger().w("Error deserializing rollouts state.", e);
|
||||
safeDeleteCorruptFile(rolloutsStateForSession);
|
||||
CommonUtils.closeOrLog(fileInputStream2, "Failed to close rollouts state file.");
|
||||
return Collections.EMPTY_LIST;
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
fileInputStream2 = fileInputStream;
|
||||
CommonUtils.closeOrLog(fileInputStream2, "Failed to close rollouts state file.");
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX WARN: Type inference failed for: r3v1, types: [int] */
|
||||
public String readUserId(String str) {
|
||||
FileInputStream fileInputStream;
|
||||
File userDataFileForSession = getUserDataFileForSession(str);
|
||||
Closeable closeable = null;
|
||||
if (userDataFileForSession.exists()) {
|
||||
?? r32 = (userDataFileForSession.length() > 0L ? 1 : (userDataFileForSession.length() == 0L ? 0 : -1));
|
||||
try {
|
||||
if (r32 != 0) {
|
||||
try {
|
||||
fileInputStream = new FileInputStream(userDataFileForSession);
|
||||
try {
|
||||
String jsonToUserId = jsonToUserId(CommonUtils.streamToString(fileInputStream));
|
||||
Logger.getLogger().d("Loaded userId " + jsonToUserId + " for session " + str);
|
||||
CommonUtils.closeOrLog(fileInputStream, "Failed to close user metadata file.");
|
||||
return jsonToUserId;
|
||||
} catch (Exception e4) {
|
||||
e = e4;
|
||||
Logger.getLogger().w("Error deserializing user metadata.", e);
|
||||
safeDeleteCorruptFile(userDataFileForSession);
|
||||
CommonUtils.closeOrLog(fileInputStream, "Failed to close user metadata file.");
|
||||
return null;
|
||||
}
|
||||
} catch (Exception e5) {
|
||||
e = e5;
|
||||
fileInputStream = null;
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
CommonUtils.closeOrLog(closeable, "Failed to close user metadata file.");
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
closeable = r32;
|
||||
}
|
||||
}
|
||||
Logger.getLogger().d("No userId set for session " + str);
|
||||
safeDeleteCorruptFile(userDataFileForSession);
|
||||
return null;
|
||||
}
|
||||
|
||||
public void writeKeyData(String str, Map<String, String> map) {
|
||||
writeKeyData(str, map, false);
|
||||
}
|
||||
|
||||
/* JADX WARN: Not initialized variable reg: 1, insn: 0x0031: MOVE (r6 I:??[OBJECT, ARRAY]) = (r1 I:??[OBJECT, ARRAY]), block:B:20:0x0031 */
|
||||
public void writeRolloutState(String str, List<RolloutAssignment> list) {
|
||||
BufferedWriter bufferedWriter;
|
||||
Exception e4;
|
||||
Closeable closeable;
|
||||
File rolloutsStateForSession = getRolloutsStateForSession(str);
|
||||
if (list.isEmpty()) {
|
||||
safeDeleteCorruptFile(rolloutsStateForSession);
|
||||
return;
|
||||
}
|
||||
Closeable closeable2 = null;
|
||||
try {
|
||||
try {
|
||||
String rolloutsStateToJson = rolloutsStateToJson(list);
|
||||
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(rolloutsStateForSession), UTF_8));
|
||||
try {
|
||||
bufferedWriter.write(rolloutsStateToJson);
|
||||
bufferedWriter.flush();
|
||||
CommonUtils.closeOrLog(bufferedWriter, "Failed to close rollouts state file.");
|
||||
} catch (Exception e5) {
|
||||
e4 = e5;
|
||||
Logger.getLogger().w("Error serializing rollouts state.", e4);
|
||||
safeDeleteCorruptFile(rolloutsStateForSession);
|
||||
CommonUtils.closeOrLog(bufferedWriter, "Failed to close rollouts state file.");
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
closeable2 = closeable;
|
||||
CommonUtils.closeOrLog(closeable2, "Failed to close rollouts state file.");
|
||||
throw th;
|
||||
}
|
||||
} catch (Exception e6) {
|
||||
bufferedWriter = null;
|
||||
e4 = e6;
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
CommonUtils.closeOrLog(closeable2, "Failed to close rollouts state file.");
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
public void writeUserData(String str, String str2) {
|
||||
String userIdToJson;
|
||||
BufferedWriter bufferedWriter;
|
||||
File userDataFileForSession = getUserDataFileForSession(str);
|
||||
BufferedWriter bufferedWriter2 = null;
|
||||
try {
|
||||
try {
|
||||
userIdToJson = userIdToJson(str2);
|
||||
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(userDataFileForSession), UTF_8));
|
||||
} catch (Exception e4) {
|
||||
e = e4;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
}
|
||||
try {
|
||||
bufferedWriter.write(userIdToJson);
|
||||
bufferedWriter.flush();
|
||||
CommonUtils.closeOrLog(bufferedWriter, "Failed to close user metadata file.");
|
||||
} catch (Exception e5) {
|
||||
e = e5;
|
||||
bufferedWriter2 = bufferedWriter;
|
||||
Logger.getLogger().w("Error serializing user metadata.", e);
|
||||
CommonUtils.closeOrLog(bufferedWriter2, "Failed to close user metadata file.");
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
bufferedWriter2 = bufferedWriter;
|
||||
CommonUtils.closeOrLog(bufferedWriter2, "Failed to close user metadata file.");
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
public Map<String, String> readKeyData(String str, boolean z3) {
|
||||
FileInputStream fileInputStream;
|
||||
Exception e4;
|
||||
File internalKeysFileForSession = z3 != 0 ? getInternalKeysFileForSession(str) : getKeysFileForSession(str);
|
||||
if (internalKeysFileForSession.exists() && internalKeysFileForSession.length() != 0) {
|
||||
Closeable closeable = null;
|
||||
try {
|
||||
try {
|
||||
fileInputStream = new FileInputStream(internalKeysFileForSession);
|
||||
try {
|
||||
Map<String, String> jsonToKeysData = jsonToKeysData(CommonUtils.streamToString(fileInputStream));
|
||||
CommonUtils.closeOrLog(fileInputStream, "Failed to close user metadata file.");
|
||||
return jsonToKeysData;
|
||||
} catch (Exception e5) {
|
||||
e4 = e5;
|
||||
Logger.getLogger().w("Error deserializing user metadata.", e4);
|
||||
safeDeleteCorruptFile(internalKeysFileForSession);
|
||||
CommonUtils.closeOrLog(fileInputStream, "Failed to close user metadata file.");
|
||||
return Collections.EMPTY_MAP;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
closeable = z3;
|
||||
CommonUtils.closeOrLog(closeable, "Failed to close user metadata file.");
|
||||
throw th;
|
||||
}
|
||||
} catch (Exception e6) {
|
||||
fileInputStream = null;
|
||||
e4 = e6;
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
CommonUtils.closeOrLog(closeable, "Failed to close user metadata file.");
|
||||
throw th;
|
||||
}
|
||||
} else {
|
||||
safeDeleteCorruptFile(internalKeysFileForSession);
|
||||
return Collections.EMPTY_MAP;
|
||||
}
|
||||
}
|
||||
|
||||
public void writeKeyData(String str, Map<String, String> map, boolean z3) {
|
||||
BufferedWriter bufferedWriter;
|
||||
Exception e4;
|
||||
File internalKeysFileForSession = z3 ? getInternalKeysFileForSession(str) : getKeysFileForSession(str);
|
||||
BufferedWriter bufferedWriter2 = null;
|
||||
try {
|
||||
String keysDataToJson = keysDataToJson(map);
|
||||
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(internalKeysFileForSession), UTF_8));
|
||||
try {
|
||||
try {
|
||||
bufferedWriter.write(keysDataToJson);
|
||||
bufferedWriter.flush();
|
||||
CommonUtils.closeOrLog(bufferedWriter, "Failed to close key/value metadata file.");
|
||||
} catch (Exception e5) {
|
||||
e4 = e5;
|
||||
Logger.getLogger().w("Error serializing key/value metadata.", e4);
|
||||
safeDeleteCorruptFile(internalKeysFileForSession);
|
||||
CommonUtils.closeOrLog(bufferedWriter, "Failed to close key/value metadata file.");
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
th = th;
|
||||
bufferedWriter2 = bufferedWriter;
|
||||
CommonUtils.closeOrLog(bufferedWriter2, "Failed to close key/value metadata file.");
|
||||
throw th;
|
||||
}
|
||||
} catch (Exception e6) {
|
||||
bufferedWriter = null;
|
||||
e4 = e6;
|
||||
} catch (Throwable th2) {
|
||||
th = th2;
|
||||
CommonUtils.closeOrLog(bufferedWriter2, "Failed to close key/value metadata file.");
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,430 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import kotlin.UByte;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class QueueFile implements Closeable {
|
||||
static final int HEADER_LENGTH = 16;
|
||||
private static final int INITIAL_LENGTH = 4096;
|
||||
private static final Logger LOGGER = Logger.getLogger(QueueFile.class.getName());
|
||||
private final byte[] buffer;
|
||||
private int elementCount;
|
||||
int fileLength;
|
||||
private Element first;
|
||||
private Element last;
|
||||
private final RandomAccessFile raf;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Element {
|
||||
static final int HEADER_LENGTH = 4;
|
||||
static final Element NULL = new Element(0, 0);
|
||||
final int length;
|
||||
final int position;
|
||||
|
||||
public Element(int i, int i4) {
|
||||
this.position = i;
|
||||
this.length = i4;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(getClass().getSimpleName());
|
||||
sb.append("[position = ");
|
||||
sb.append(this.position);
|
||||
sb.append(", length = ");
|
||||
return com.google.android.gms.measurement.internal.a.m(sb, this.length, "]");
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ElementInputStream extends InputStream {
|
||||
private int position;
|
||||
private int remaining;
|
||||
|
||||
@Override // java.io.InputStream
|
||||
public int read(byte[] bArr, int i, int i4) throws IOException {
|
||||
QueueFile.nonNull(bArr, "buffer");
|
||||
if ((i | i4) >= 0 && i4 <= bArr.length - i) {
|
||||
int i5 = this.remaining;
|
||||
if (i5 <= 0) {
|
||||
return -1;
|
||||
}
|
||||
if (i4 > i5) {
|
||||
i4 = i5;
|
||||
}
|
||||
QueueFile.this.ringRead(this.position, bArr, i, i4);
|
||||
this.position = QueueFile.this.wrapPosition(this.position + i4);
|
||||
this.remaining -= i4;
|
||||
return i4;
|
||||
}
|
||||
throw new ArrayIndexOutOfBoundsException();
|
||||
}
|
||||
|
||||
private ElementInputStream(Element element) {
|
||||
this.position = QueueFile.this.wrapPosition(element.position + 4);
|
||||
this.remaining = element.length;
|
||||
}
|
||||
|
||||
@Override // java.io.InputStream
|
||||
public int read() throws IOException {
|
||||
if (this.remaining == 0) {
|
||||
return -1;
|
||||
}
|
||||
QueueFile.this.raf.seek(this.position);
|
||||
int read = QueueFile.this.raf.read();
|
||||
this.position = QueueFile.this.wrapPosition(this.position + 1);
|
||||
this.remaining--;
|
||||
return read;
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface ElementReader {
|
||||
void read(InputStream inputStream, int i) throws IOException;
|
||||
}
|
||||
|
||||
public QueueFile(File file) throws IOException {
|
||||
this.buffer = new byte[16];
|
||||
if (!file.exists()) {
|
||||
initialize(file);
|
||||
}
|
||||
this.raf = open(file);
|
||||
readHeader();
|
||||
}
|
||||
|
||||
private void expandIfNecessary(int i) throws IOException {
|
||||
int i4 = i + 4;
|
||||
int remainingBytes = remainingBytes();
|
||||
if (remainingBytes >= i4) {
|
||||
return;
|
||||
}
|
||||
int i5 = this.fileLength;
|
||||
do {
|
||||
remainingBytes += i5;
|
||||
i5 <<= 1;
|
||||
} while (remainingBytes < i4);
|
||||
setLength(i5);
|
||||
Element element = this.last;
|
||||
int wrapPosition = wrapPosition(element.position + 4 + element.length);
|
||||
if (wrapPosition < this.first.position) {
|
||||
FileChannel channel = this.raf.getChannel();
|
||||
channel.position(this.fileLength);
|
||||
long j4 = wrapPosition - 4;
|
||||
if (channel.transferTo(16L, j4, channel) != j4) {
|
||||
throw new AssertionError("Copied insufficient number of bytes!");
|
||||
}
|
||||
}
|
||||
int i6 = this.last.position;
|
||||
int i7 = this.first.position;
|
||||
if (i6 < i7) {
|
||||
int i8 = (this.fileLength + i6) - 16;
|
||||
writeHeader(i5, this.elementCount, i7, i8);
|
||||
this.last = new Element(i8, this.last.length);
|
||||
} else {
|
||||
writeHeader(i5, this.elementCount, i7, i6);
|
||||
}
|
||||
this.fileLength = i5;
|
||||
}
|
||||
|
||||
private static void initialize(File file) throws IOException {
|
||||
File file2 = new File(file.getPath() + ".tmp");
|
||||
RandomAccessFile open = open(file2);
|
||||
try {
|
||||
open.setLength(4096L);
|
||||
open.seek(0L);
|
||||
byte[] bArr = new byte[16];
|
||||
writeInts(bArr, 4096, 0, 0, 0);
|
||||
open.write(bArr);
|
||||
open.close();
|
||||
if (!file2.renameTo(file)) {
|
||||
throw new IOException("Rename failed!");
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
open.close();
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static <T> T nonNull(T t2, String str) {
|
||||
if (t2 != null) {
|
||||
return t2;
|
||||
}
|
||||
throw new NullPointerException(str);
|
||||
}
|
||||
|
||||
private static RandomAccessFile open(File file) throws FileNotFoundException {
|
||||
return new RandomAccessFile(file, "rwd");
|
||||
}
|
||||
|
||||
private Element readElement(int i) throws IOException {
|
||||
if (i == 0) {
|
||||
return Element.NULL;
|
||||
}
|
||||
this.raf.seek(i);
|
||||
return new Element(i, this.raf.readInt());
|
||||
}
|
||||
|
||||
private void readHeader() throws IOException {
|
||||
this.raf.seek(0L);
|
||||
this.raf.readFully(this.buffer);
|
||||
int readInt = readInt(this.buffer, 0);
|
||||
this.fileLength = readInt;
|
||||
if (readInt > this.raf.length()) {
|
||||
throw new IOException("File is truncated. Expected length: " + this.fileLength + ", Actual length: " + this.raf.length());
|
||||
}
|
||||
this.elementCount = readInt(this.buffer, 4);
|
||||
int readInt2 = readInt(this.buffer, 8);
|
||||
int readInt3 = readInt(this.buffer, 12);
|
||||
this.first = readElement(readInt2);
|
||||
this.last = readElement(readInt3);
|
||||
}
|
||||
|
||||
private static int readInt(byte[] bArr, int i) {
|
||||
return ((bArr[i] & UByte.MAX_VALUE) << 24) + ((bArr[i + 1] & UByte.MAX_VALUE) << 16) + ((bArr[i + 2] & UByte.MAX_VALUE) << 8) + (bArr[i + 3] & UByte.MAX_VALUE);
|
||||
}
|
||||
|
||||
private int remainingBytes() {
|
||||
return this.fileLength - usedBytes();
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public void ringRead(int i, byte[] bArr, int i4, int i5) throws IOException {
|
||||
int wrapPosition = wrapPosition(i);
|
||||
int i6 = wrapPosition + i5;
|
||||
int i7 = this.fileLength;
|
||||
if (i6 <= i7) {
|
||||
this.raf.seek(wrapPosition);
|
||||
this.raf.readFully(bArr, i4, i5);
|
||||
return;
|
||||
}
|
||||
int i8 = i7 - wrapPosition;
|
||||
this.raf.seek(wrapPosition);
|
||||
this.raf.readFully(bArr, i4, i8);
|
||||
this.raf.seek(16L);
|
||||
this.raf.readFully(bArr, i4 + i8, i5 - i8);
|
||||
}
|
||||
|
||||
private void ringWrite(int i, byte[] bArr, int i4, int i5) throws IOException {
|
||||
int wrapPosition = wrapPosition(i);
|
||||
int i6 = wrapPosition + i5;
|
||||
int i7 = this.fileLength;
|
||||
if (i6 <= i7) {
|
||||
this.raf.seek(wrapPosition);
|
||||
this.raf.write(bArr, i4, i5);
|
||||
return;
|
||||
}
|
||||
int i8 = i7 - wrapPosition;
|
||||
this.raf.seek(wrapPosition);
|
||||
this.raf.write(bArr, i4, i8);
|
||||
this.raf.seek(16L);
|
||||
this.raf.write(bArr, i4 + i8, i5 - i8);
|
||||
}
|
||||
|
||||
private void setLength(int i) throws IOException {
|
||||
this.raf.setLength(i);
|
||||
this.raf.getChannel().force(true);
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public int wrapPosition(int i) {
|
||||
int i4 = this.fileLength;
|
||||
return i < i4 ? i : (i + 16) - i4;
|
||||
}
|
||||
|
||||
private void writeHeader(int i, int i4, int i5, int i6) throws IOException {
|
||||
writeInts(this.buffer, i, i4, i5, i6);
|
||||
this.raf.seek(0L);
|
||||
this.raf.write(this.buffer);
|
||||
}
|
||||
|
||||
private static void writeInt(byte[] bArr, int i, int i4) {
|
||||
bArr[i] = (byte) (i4 >> 24);
|
||||
bArr[i + 1] = (byte) (i4 >> 16);
|
||||
bArr[i + 2] = (byte) (i4 >> 8);
|
||||
bArr[i + 3] = (byte) i4;
|
||||
}
|
||||
|
||||
private static void writeInts(byte[] bArr, int... iArr) {
|
||||
int i = 0;
|
||||
for (int i4 : iArr) {
|
||||
writeInt(bArr, i, i4);
|
||||
i += 4;
|
||||
}
|
||||
}
|
||||
|
||||
public void add(byte[] bArr) throws IOException {
|
||||
add(bArr, 0, bArr.length);
|
||||
}
|
||||
|
||||
public synchronized void clear() throws IOException {
|
||||
try {
|
||||
writeHeader(4096, 0, 0, 0);
|
||||
this.elementCount = 0;
|
||||
Element element = Element.NULL;
|
||||
this.first = element;
|
||||
this.last = element;
|
||||
if (this.fileLength > 4096) {
|
||||
setLength(4096);
|
||||
}
|
||||
this.fileLength = 4096;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // java.io.Closeable, java.lang.AutoCloseable
|
||||
public synchronized void close() throws IOException {
|
||||
this.raf.close();
|
||||
}
|
||||
|
||||
public synchronized void forEach(ElementReader elementReader) throws IOException {
|
||||
int i = this.first.position;
|
||||
for (int i4 = 0; i4 < this.elementCount; i4++) {
|
||||
Element readElement = readElement(i);
|
||||
elementReader.read(new ElementInputStream(readElement), readElement.length);
|
||||
i = wrapPosition(readElement.position + 4 + readElement.length);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasSpaceFor(int i, int i4) {
|
||||
return (usedBytes() + 4) + i <= i4;
|
||||
}
|
||||
|
||||
public synchronized boolean isEmpty() {
|
||||
return this.elementCount == 0;
|
||||
}
|
||||
|
||||
public synchronized byte[] peek() throws IOException {
|
||||
if (isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
Element element = this.first;
|
||||
int i = element.length;
|
||||
byte[] bArr = new byte[i];
|
||||
ringRead(element.position + 4, bArr, 0, i);
|
||||
return bArr;
|
||||
}
|
||||
|
||||
public synchronized void remove() throws IOException {
|
||||
try {
|
||||
if (isEmpty()) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
if (this.elementCount == 1) {
|
||||
clear();
|
||||
} else {
|
||||
Element element = this.first;
|
||||
int wrapPosition = wrapPosition(element.position + 4 + element.length);
|
||||
ringRead(wrapPosition, this.buffer, 0, 4);
|
||||
int readInt = readInt(this.buffer, 0);
|
||||
writeHeader(this.fileLength, this.elementCount - 1, wrapPosition, this.last.position);
|
||||
this.elementCount--;
|
||||
this.first = new Element(wrapPosition, readInt);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized int size() {
|
||||
return this.elementCount;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append(getClass().getSimpleName());
|
||||
sb.append("[fileLength=");
|
||||
sb.append(this.fileLength);
|
||||
sb.append(", size=");
|
||||
sb.append(this.elementCount);
|
||||
sb.append(", first=");
|
||||
sb.append(this.first);
|
||||
sb.append(", last=");
|
||||
sb.append(this.last);
|
||||
sb.append(", element lengths=[");
|
||||
try {
|
||||
forEach(new ElementReader() { // from class: com.google.firebase.crashlytics.internal.metadata.QueueFile.1
|
||||
boolean first = true;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.QueueFile.ElementReader
|
||||
public void read(InputStream inputStream, int i) throws IOException {
|
||||
if (this.first) {
|
||||
this.first = false;
|
||||
} else {
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(i);
|
||||
}
|
||||
});
|
||||
} catch (IOException e4) {
|
||||
LOGGER.log(Level.WARNING, "read error", (Throwable) e4);
|
||||
}
|
||||
sb.append("]]");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public int usedBytes() {
|
||||
if (this.elementCount == 0) {
|
||||
return 16;
|
||||
}
|
||||
Element element = this.last;
|
||||
int i = element.position;
|
||||
int i4 = this.first.position;
|
||||
return i >= i4 ? (i - i4) + 4 + element.length + 16 : (((i + 4) + element.length) + this.fileLength) - i4;
|
||||
}
|
||||
|
||||
public synchronized void add(byte[] bArr, int i, int i4) throws IOException {
|
||||
int wrapPosition;
|
||||
try {
|
||||
nonNull(bArr, "buffer");
|
||||
if ((i | i4) >= 0 && i4 <= bArr.length - i) {
|
||||
expandIfNecessary(i4);
|
||||
boolean isEmpty = isEmpty();
|
||||
if (isEmpty) {
|
||||
wrapPosition = 16;
|
||||
} else {
|
||||
Element element = this.last;
|
||||
wrapPosition = wrapPosition(element.position + 4 + element.length);
|
||||
}
|
||||
Element element2 = new Element(wrapPosition, i4);
|
||||
writeInt(this.buffer, 0, i4);
|
||||
ringWrite(element2.position, this.buffer, 0, 4);
|
||||
ringWrite(element2.position + 4, bArr, i, i4);
|
||||
writeHeader(this.fileLength, this.elementCount + 1, isEmpty ? element2.position : this.first.position, element2.position);
|
||||
this.last = element2;
|
||||
this.elementCount++;
|
||||
if (isEmpty) {
|
||||
this.first = element2;
|
||||
}
|
||||
} else {
|
||||
throw new IndexOutOfBoundsException();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
public QueueFile(RandomAccessFile randomAccessFile) throws IOException {
|
||||
this.buffer = new byte[16];
|
||||
this.raf = randomAccessFile;
|
||||
readHeader();
|
||||
}
|
||||
|
||||
public synchronized void peek(ElementReader elementReader) throws IOException {
|
||||
if (this.elementCount > 0) {
|
||||
elementReader.read(new ElementInputStream(this.first), this.first.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import com.google.firebase.crashlytics.internal.metadata.QueueFile;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Locale;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
class QueueFileLogStore implements FileLogStore {
|
||||
private static final Charset UTF_8 = Charset.forName("UTF-8");
|
||||
private QueueFile logFile;
|
||||
private final int maxLogSize;
|
||||
private final File workingFile;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class LogBytes {
|
||||
public final byte[] bytes;
|
||||
public final int offset;
|
||||
|
||||
public LogBytes(byte[] bArr, int i) {
|
||||
this.bytes = bArr;
|
||||
this.offset = i;
|
||||
}
|
||||
}
|
||||
|
||||
public QueueFileLogStore(File file, int i) {
|
||||
this.workingFile = file;
|
||||
this.maxLogSize = i;
|
||||
}
|
||||
|
||||
private void doWriteToLog(long j4, String str) {
|
||||
if (this.logFile == null) {
|
||||
return;
|
||||
}
|
||||
if (str == null) {
|
||||
str = "null";
|
||||
}
|
||||
try {
|
||||
int i = this.maxLogSize / 4;
|
||||
if (str.length() > i) {
|
||||
str = "..." + str.substring(str.length() - i);
|
||||
}
|
||||
this.logFile.add(String.format(Locale.US, "%d %s%n", Long.valueOf(j4), str.replaceAll("\r", " ").replaceAll("\n", " ")).getBytes(UTF_8));
|
||||
while (!this.logFile.isEmpty() && this.logFile.usedBytes() > this.maxLogSize) {
|
||||
this.logFile.remove();
|
||||
}
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().e("There was a problem writing to the Crashlytics log.", e4);
|
||||
}
|
||||
}
|
||||
|
||||
private LogBytes getLogBytes() {
|
||||
if (!this.workingFile.exists()) {
|
||||
return null;
|
||||
}
|
||||
openLogFile();
|
||||
QueueFile queueFile = this.logFile;
|
||||
if (queueFile == null) {
|
||||
return null;
|
||||
}
|
||||
final int[] iArr = {0};
|
||||
final byte[] bArr = new byte[queueFile.usedBytes()];
|
||||
try {
|
||||
this.logFile.forEach(new QueueFile.ElementReader() { // from class: com.google.firebase.crashlytics.internal.metadata.QueueFileLogStore.1
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.QueueFile.ElementReader
|
||||
public void read(InputStream inputStream, int i) throws IOException {
|
||||
try {
|
||||
inputStream.read(bArr, iArr[0], i);
|
||||
int[] iArr2 = iArr;
|
||||
iArr2[0] = iArr2[0] + i;
|
||||
} finally {
|
||||
inputStream.close();
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().e("A problem occurred while reading the Crashlytics log file.", e4);
|
||||
}
|
||||
return new LogBytes(bArr, iArr[0]);
|
||||
}
|
||||
|
||||
private void openLogFile() {
|
||||
if (this.logFile == null) {
|
||||
try {
|
||||
this.logFile = new QueueFile(this.workingFile);
|
||||
} catch (IOException e4) {
|
||||
Logger.getLogger().e("Could not open log file: " + this.workingFile, e4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void closeLogFile() {
|
||||
CommonUtils.closeOrLog(this.logFile, "There was a problem closing the Crashlytics log file.");
|
||||
this.logFile = null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void deleteLogFile() {
|
||||
closeLogFile();
|
||||
this.workingFile.delete();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public byte[] getLogAsBytes() {
|
||||
LogBytes logBytes = getLogBytes();
|
||||
if (logBytes == null) {
|
||||
return null;
|
||||
}
|
||||
int i = logBytes.offset;
|
||||
byte[] bArr = new byte[i];
|
||||
System.arraycopy(logBytes.bytes, 0, bArr, 0, i);
|
||||
return bArr;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public String getLogAsString() {
|
||||
byte[] logAsBytes = getLogAsBytes();
|
||||
if (logAsBytes != null) {
|
||||
return new String(logAsBytes, UTF_8);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.metadata.FileLogStore
|
||||
public void writeToLog(long j4, String str) {
|
||||
openLogFile();
|
||||
doWriteToLog(j4, str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.encoders.DataEncoder;
|
||||
import com.google.firebase.encoders.annotations.Encodable;
|
||||
import com.google.firebase.encoders.json.JsonDataEncoderBuilder;
|
||||
import com.google.firebase.remoteconfig.RemoteConfigConstants;
|
||||
import com.google.firebase.remoteconfig.internal.ConfigContainer;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
@AutoValue
|
||||
@Encodable
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class RolloutAssignment {
|
||||
private static final int MAX_PARAMETER_VALUE_LENGTH = 256;
|
||||
public static final DataEncoder ROLLOUT_ASSIGNMENT_JSON_ENCODER = new JsonDataEncoderBuilder().configureWith(AutoRolloutAssignmentEncoder.CONFIG).build();
|
||||
|
||||
public static RolloutAssignment create(String str, String str2, String str3, String str4, long j4) {
|
||||
return new AutoValue_RolloutAssignment(str, str2, validate(str3), str4, j4);
|
||||
}
|
||||
|
||||
private static String validate(String str) {
|
||||
return str.length() > MAX_PARAMETER_VALUE_LENGTH ? str.substring(0, MAX_PARAMETER_VALUE_LENGTH) : str;
|
||||
}
|
||||
|
||||
public abstract String getParameterKey();
|
||||
|
||||
public abstract String getParameterValue();
|
||||
|
||||
public abstract String getRolloutId();
|
||||
|
||||
public abstract long getTemplateVersion();
|
||||
|
||||
public abstract String getVariantId();
|
||||
|
||||
public CrashlyticsReport.Session.Event.RolloutAssignment toReportProto() {
|
||||
return CrashlyticsReport.Session.Event.RolloutAssignment.builder().setRolloutVariant(CrashlyticsReport.Session.Event.RolloutAssignment.RolloutVariant.builder().setVariantId(getVariantId()).setRolloutId(getRolloutId()).build()).setParameterKey(getParameterKey()).setParameterValue(getParameterValue()).setTemplateVersion(getTemplateVersion()).build();
|
||||
}
|
||||
|
||||
public static RolloutAssignment create(String str) throws JSONException {
|
||||
JSONObject jSONObject = new JSONObject(str);
|
||||
return create(jSONObject.getString(ConfigContainer.ROLLOUT_METADATA_ID), jSONObject.getString("parameterKey"), jSONObject.getString("parameterValue"), jSONObject.getString("variantId"), jSONObject.getLong(RemoteConfigConstants.ResponseFieldKey.TEMPLATE_VERSION_NUMBER));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.Logger;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class RolloutAssignmentList {
|
||||
static final String ROLLOUTS_STATE = "rolloutsState";
|
||||
private final int maxEntries;
|
||||
private final List<RolloutAssignment> rolloutsState = new ArrayList();
|
||||
|
||||
public RolloutAssignmentList(int i) {
|
||||
this.maxEntries = i;
|
||||
}
|
||||
|
||||
public List<CrashlyticsReport.Session.Event.RolloutAssignment> getReportRolloutsState() {
|
||||
List<RolloutAssignment> rolloutAssignmentList = getRolloutAssignmentList();
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (int i = 0; i < rolloutAssignmentList.size(); i++) {
|
||||
arrayList.add(rolloutAssignmentList.get(i).toReportProto());
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
public synchronized List<RolloutAssignment> getRolloutAssignmentList() {
|
||||
return Collections.unmodifiableList(new ArrayList(this.rolloutsState));
|
||||
}
|
||||
|
||||
public synchronized boolean updateRolloutAssignmentList(List<RolloutAssignment> list) {
|
||||
this.rolloutsState.clear();
|
||||
if (list.size() <= this.maxEntries) {
|
||||
return this.rolloutsState.addAll(list);
|
||||
}
|
||||
Logger.getLogger().w("Ignored 0 entries when adding rollout assignments. Maximum allowable: " + this.maxEntries);
|
||||
return this.rolloutsState.addAll(list.subList(0, this.maxEntries));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.common.CommonUtils;
|
||||
import com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.crashlytics.internal.persistence.FileStore;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.atomic.AtomicMarkableReference;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class UserMetadata {
|
||||
public static final String INTERNAL_KEYDATA_FILENAME = "internal-keys";
|
||||
public static final String KEYDATA_FILENAME = "keys";
|
||||
public static final int MAX_ATTRIBUTES = 64;
|
||||
public static final int MAX_ATTRIBUTE_SIZE = 1024;
|
||||
public static final int MAX_INTERNAL_KEY_SIZE = 8192;
|
||||
public static final int MAX_ROLLOUT_ASSIGNMENTS = 128;
|
||||
public static final String ROLLOUTS_STATE_FILENAME = "rollouts-state";
|
||||
public static final String USERDATA_FILENAME = "user-data";
|
||||
private final CrashlyticsBackgroundWorker backgroundWorker;
|
||||
private final MetaDataStore metaDataStore;
|
||||
private String sessionIdentifier;
|
||||
private final SerializeableKeysMap customKeys = new SerializeableKeysMap(false);
|
||||
private final SerializeableKeysMap internalKeys = new SerializeableKeysMap(true);
|
||||
private final RolloutAssignmentList rolloutsState = new RolloutAssignmentList(128);
|
||||
private final AtomicMarkableReference<String> userId = new AtomicMarkableReference<>(null, false);
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class SerializeableKeysMap {
|
||||
private final boolean isInternal;
|
||||
final AtomicMarkableReference<KeysMap> map;
|
||||
private final AtomicReference<Callable<Void>> queuedSerializer = new AtomicReference<>(null);
|
||||
|
||||
public SerializeableKeysMap(boolean z3) {
|
||||
this.isInternal = z3;
|
||||
this.map = new AtomicMarkableReference<>(new KeysMap(64, z3 ? 8192 : 1024), false);
|
||||
}
|
||||
|
||||
public /* synthetic */ Void lambda$scheduleSerializationTaskIfNeeded$0() throws Exception {
|
||||
this.queuedSerializer.set(null);
|
||||
serializeIfMarked();
|
||||
return null;
|
||||
}
|
||||
|
||||
private void scheduleSerializationTaskIfNeeded() {
|
||||
b bVar = new b(this, 0);
|
||||
AtomicReference<Callable<Void>> atomicReference = this.queuedSerializer;
|
||||
while (!atomicReference.compareAndSet(null, bVar)) {
|
||||
if (atomicReference.get() != null) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
UserMetadata.this.backgroundWorker.submit(bVar);
|
||||
}
|
||||
|
||||
private void serializeIfMarked() {
|
||||
Map<String, String> map;
|
||||
synchronized (this) {
|
||||
try {
|
||||
if (this.map.isMarked()) {
|
||||
map = this.map.getReference().getKeys();
|
||||
AtomicMarkableReference<KeysMap> atomicMarkableReference = this.map;
|
||||
atomicMarkableReference.set(atomicMarkableReference.getReference(), false);
|
||||
} else {
|
||||
map = null;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
if (map != null) {
|
||||
UserMetadata.this.metaDataStore.writeKeyData(UserMetadata.this.sessionIdentifier, map, this.isInternal);
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String, String> getKeys() {
|
||||
return this.map.getReference().getKeys();
|
||||
}
|
||||
|
||||
public boolean setKey(String str, String str2) {
|
||||
synchronized (this) {
|
||||
try {
|
||||
if (!this.map.getReference().setKey(str, str2)) {
|
||||
return false;
|
||||
}
|
||||
AtomicMarkableReference<KeysMap> atomicMarkableReference = this.map;
|
||||
atomicMarkableReference.set(atomicMarkableReference.getReference(), true);
|
||||
scheduleSerializationTaskIfNeeded();
|
||||
return true;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setKeys(Map<String, String> map) {
|
||||
synchronized (this) {
|
||||
this.map.getReference().setKeys(map);
|
||||
AtomicMarkableReference<KeysMap> atomicMarkableReference = this.map;
|
||||
atomicMarkableReference.set(atomicMarkableReference.getReference(), true);
|
||||
}
|
||||
scheduleSerializationTaskIfNeeded();
|
||||
}
|
||||
}
|
||||
|
||||
public UserMetadata(String str, FileStore fileStore, CrashlyticsBackgroundWorker crashlyticsBackgroundWorker) {
|
||||
this.sessionIdentifier = str;
|
||||
this.metaDataStore = new MetaDataStore(fileStore);
|
||||
this.backgroundWorker = crashlyticsBackgroundWorker;
|
||||
}
|
||||
|
||||
public /* synthetic */ Object lambda$setUserId$0() throws Exception {
|
||||
serializeUserDataIfNeeded();
|
||||
return null;
|
||||
}
|
||||
|
||||
public /* synthetic */ Object lambda$updateRolloutsState$1(List list) throws Exception {
|
||||
this.metaDataStore.writeRolloutState(this.sessionIdentifier, list);
|
||||
return null;
|
||||
}
|
||||
|
||||
public static UserMetadata loadFromExistingSession(String str, FileStore fileStore, CrashlyticsBackgroundWorker crashlyticsBackgroundWorker) {
|
||||
MetaDataStore metaDataStore = new MetaDataStore(fileStore);
|
||||
UserMetadata userMetadata = new UserMetadata(str, fileStore, crashlyticsBackgroundWorker);
|
||||
userMetadata.customKeys.map.getReference().setKeys(metaDataStore.readKeyData(str, false));
|
||||
userMetadata.internalKeys.map.getReference().setKeys(metaDataStore.readKeyData(str, true));
|
||||
userMetadata.userId.set(metaDataStore.readUserId(str), false);
|
||||
userMetadata.rolloutsState.updateRolloutAssignmentList(metaDataStore.readRolloutsState(str));
|
||||
return userMetadata;
|
||||
}
|
||||
|
||||
public static String readUserId(String str, FileStore fileStore) {
|
||||
return new MetaDataStore(fileStore).readUserId(str);
|
||||
}
|
||||
|
||||
private void serializeUserDataIfNeeded() {
|
||||
boolean z3;
|
||||
String str;
|
||||
synchronized (this.userId) {
|
||||
try {
|
||||
z3 = false;
|
||||
if (this.userId.isMarked()) {
|
||||
str = getUserId();
|
||||
this.userId.set(str, false);
|
||||
z3 = true;
|
||||
} else {
|
||||
str = null;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
if (z3) {
|
||||
this.metaDataStore.writeUserData(this.sessionIdentifier, str);
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String, String> getCustomKeys() {
|
||||
return this.customKeys.getKeys();
|
||||
}
|
||||
|
||||
public Map<String, String> getInternalKeys() {
|
||||
return this.internalKeys.getKeys();
|
||||
}
|
||||
|
||||
public List<CrashlyticsReport.Session.Event.RolloutAssignment> getRolloutsState() {
|
||||
return this.rolloutsState.getReportRolloutsState();
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return this.userId.getReference();
|
||||
}
|
||||
|
||||
public boolean setCustomKey(String str, String str2) {
|
||||
return this.customKeys.setKey(str, str2);
|
||||
}
|
||||
|
||||
public void setCustomKeys(Map<String, String> map) {
|
||||
this.customKeys.setKeys(map);
|
||||
}
|
||||
|
||||
public boolean setInternalKey(String str, String str2) {
|
||||
return this.internalKeys.setKey(str, str2);
|
||||
}
|
||||
|
||||
public void setNewSession(String str) {
|
||||
synchronized (this.sessionIdentifier) {
|
||||
try {
|
||||
this.sessionIdentifier = str;
|
||||
Map<String, String> keys = this.customKeys.getKeys();
|
||||
List<RolloutAssignment> rolloutAssignmentList = this.rolloutsState.getRolloutAssignmentList();
|
||||
if (getUserId() != null) {
|
||||
this.metaDataStore.writeUserData(str, getUserId());
|
||||
}
|
||||
if (!keys.isEmpty()) {
|
||||
this.metaDataStore.writeKeyData(str, keys);
|
||||
}
|
||||
if (!rolloutAssignmentList.isEmpty()) {
|
||||
this.metaDataStore.writeRolloutState(str, rolloutAssignmentList);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setUserId(String str) {
|
||||
String sanitizeString = KeysMap.sanitizeString(str, 1024);
|
||||
synchronized (this.userId) {
|
||||
try {
|
||||
if (CommonUtils.nullSafeEquals(sanitizeString, this.userId.getReference())) {
|
||||
return;
|
||||
}
|
||||
this.userId.set(sanitizeString, true);
|
||||
this.backgroundWorker.submit(new b(this, 1));
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean updateRolloutsState(List<RolloutAssignment> list) {
|
||||
synchronized (this.rolloutsState) {
|
||||
try {
|
||||
if (!this.rolloutsState.updateRolloutAssignmentList(list)) {
|
||||
return false;
|
||||
}
|
||||
this.backgroundWorker.submit(new a(0, this, this.rolloutsState.getRolloutAssignmentList()));
|
||||
return true;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
|
||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
|
||||
import com.google.firebase.remoteconfig.internal.ConfigCacheClient;
|
||||
import com.google.firebase.remoteconfig.internal.ConfigContainer;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class a implements Callable {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f5972a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final /* synthetic */ Object f5973b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final /* synthetic */ Object f5974c;
|
||||
|
||||
public /* synthetic */ a(int i, Object obj, Object obj2) {
|
||||
this.f5972a = i;
|
||||
this.f5973b = obj;
|
||||
this.f5974c = obj2;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public final Object call() {
|
||||
Object lambda$updateRolloutsState$1;
|
||||
Void lambda$setConfigSettingsAsync$5;
|
||||
switch (this.f5972a) {
|
||||
case 0:
|
||||
lambda$updateRolloutsState$1 = ((UserMetadata) this.f5973b).lambda$updateRolloutsState$1((List) this.f5974c);
|
||||
return lambda$updateRolloutsState$1;
|
||||
case 1:
|
||||
lambda$setConfigSettingsAsync$5 = ((FirebaseRemoteConfig) this.f5973b).lambda$setConfigSettingsAsync$5((FirebaseRemoteConfigSettings) this.f5974c);
|
||||
return lambda$setConfigSettingsAsync$5;
|
||||
default:
|
||||
return ConfigCacheClient.b((ConfigCacheClient) this.f5973b, (ConfigContainer) this.f5974c);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.google.firebase.crashlytics.internal.metadata;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final /* synthetic */ class b implements Callable {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f5975a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final /* synthetic */ Object f5976b;
|
||||
|
||||
public /* synthetic */ b(Object obj, int i) {
|
||||
this.f5975a = i;
|
||||
this.f5976b = obj;
|
||||
}
|
||||
|
||||
@Override // java.util.concurrent.Callable
|
||||
public final Object call() {
|
||||
int i = this.f5975a;
|
||||
Object obj = this.f5976b;
|
||||
switch (i) {
|
||||
case 0:
|
||||
return UserMetadata.SerializeableKeysMap.a((UserMetadata.SerializeableKeysMap) obj);
|
||||
default:
|
||||
return UserMetadata.b((UserMetadata) obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,654 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import com.google.android.gms.measurement.api.AppMeasurementSdk;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.encoders.FieldDescriptor;
|
||||
import com.google.firebase.encoders.ObjectEncoder;
|
||||
import com.google.firebase.encoders.ObjectEncoderContext;
|
||||
import com.google.firebase.encoders.config.Configurator;
|
||||
import com.google.firebase.encoders.config.EncoderConfig;
|
||||
import com.google.firebase.remoteconfig.RemoteConfigConstants;
|
||||
import com.google.firebase.remoteconfig.internal.ConfigContainer;
|
||||
import java.io.IOException;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class AutoCrashlyticsReportEncoder implements Configurator {
|
||||
public static final int CODEGEN_VERSION = 2;
|
||||
public static final Configurator CONFIG = new AutoCrashlyticsReportEncoder();
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder implements ObjectEncoder<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> {
|
||||
static final CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder INSTANCE = new CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder();
|
||||
private static final FieldDescriptor ARCH_DESCRIPTOR = FieldDescriptor.of("arch");
|
||||
private static final FieldDescriptor LIBRARYNAME_DESCRIPTOR = FieldDescriptor.of("libraryName");
|
||||
private static final FieldDescriptor BUILDID_DESCRIPTOR = FieldDescriptor.of("buildId");
|
||||
|
||||
private CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch buildIdMappingForArch, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ARCH_DESCRIPTOR, buildIdMappingForArch.getArch());
|
||||
objectEncoderContext.add(LIBRARYNAME_DESCRIPTOR, buildIdMappingForArch.getLibraryName());
|
||||
objectEncoderContext.add(BUILDID_DESCRIPTOR, buildIdMappingForArch.getBuildId());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportApplicationExitInfoEncoder implements ObjectEncoder<CrashlyticsReport.ApplicationExitInfo> {
|
||||
static final CrashlyticsReportApplicationExitInfoEncoder INSTANCE = new CrashlyticsReportApplicationExitInfoEncoder();
|
||||
private static final FieldDescriptor PID_DESCRIPTOR = FieldDescriptor.of("pid");
|
||||
private static final FieldDescriptor PROCESSNAME_DESCRIPTOR = FieldDescriptor.of("processName");
|
||||
private static final FieldDescriptor REASONCODE_DESCRIPTOR = FieldDescriptor.of("reasonCode");
|
||||
private static final FieldDescriptor IMPORTANCE_DESCRIPTOR = FieldDescriptor.of("importance");
|
||||
private static final FieldDescriptor PSS_DESCRIPTOR = FieldDescriptor.of("pss");
|
||||
private static final FieldDescriptor RSS_DESCRIPTOR = FieldDescriptor.of("rss");
|
||||
private static final FieldDescriptor TIMESTAMP_DESCRIPTOR = FieldDescriptor.of("timestamp");
|
||||
private static final FieldDescriptor TRACEFILE_DESCRIPTOR = FieldDescriptor.of("traceFile");
|
||||
private static final FieldDescriptor BUILDIDMAPPINGFORARCH_DESCRIPTOR = FieldDescriptor.of("buildIdMappingForArch");
|
||||
|
||||
private CrashlyticsReportApplicationExitInfoEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.ApplicationExitInfo applicationExitInfo, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(PID_DESCRIPTOR, applicationExitInfo.getPid());
|
||||
objectEncoderContext.add(PROCESSNAME_DESCRIPTOR, applicationExitInfo.getProcessName());
|
||||
objectEncoderContext.add(REASONCODE_DESCRIPTOR, applicationExitInfo.getReasonCode());
|
||||
objectEncoderContext.add(IMPORTANCE_DESCRIPTOR, applicationExitInfo.getImportance());
|
||||
objectEncoderContext.add(PSS_DESCRIPTOR, applicationExitInfo.getPss());
|
||||
objectEncoderContext.add(RSS_DESCRIPTOR, applicationExitInfo.getRss());
|
||||
objectEncoderContext.add(TIMESTAMP_DESCRIPTOR, applicationExitInfo.getTimestamp());
|
||||
objectEncoderContext.add(TRACEFILE_DESCRIPTOR, applicationExitInfo.getTraceFile());
|
||||
objectEncoderContext.add(BUILDIDMAPPINGFORARCH_DESCRIPTOR, applicationExitInfo.getBuildIdMappingForArch());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportCustomAttributeEncoder implements ObjectEncoder<CrashlyticsReport.CustomAttribute> {
|
||||
static final CrashlyticsReportCustomAttributeEncoder INSTANCE = new CrashlyticsReportCustomAttributeEncoder();
|
||||
private static final FieldDescriptor KEY_DESCRIPTOR = FieldDescriptor.of("key");
|
||||
private static final FieldDescriptor VALUE_DESCRIPTOR = FieldDescriptor.of("value");
|
||||
|
||||
private CrashlyticsReportCustomAttributeEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.CustomAttribute customAttribute, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(KEY_DESCRIPTOR, customAttribute.getKey());
|
||||
objectEncoderContext.add(VALUE_DESCRIPTOR, customAttribute.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportEncoder implements ObjectEncoder<CrashlyticsReport> {
|
||||
static final CrashlyticsReportEncoder INSTANCE = new CrashlyticsReportEncoder();
|
||||
private static final FieldDescriptor SDKVERSION_DESCRIPTOR = FieldDescriptor.of(RemoteConfigConstants.RequestFieldKey.SDK_VERSION);
|
||||
private static final FieldDescriptor GMPAPPID_DESCRIPTOR = FieldDescriptor.of("gmpAppId");
|
||||
private static final FieldDescriptor PLATFORM_DESCRIPTOR = FieldDescriptor.of("platform");
|
||||
private static final FieldDescriptor INSTALLATIONUUID_DESCRIPTOR = FieldDescriptor.of("installationUuid");
|
||||
private static final FieldDescriptor FIREBASEINSTALLATIONID_DESCRIPTOR = FieldDescriptor.of("firebaseInstallationId");
|
||||
private static final FieldDescriptor APPQUALITYSESSIONID_DESCRIPTOR = FieldDescriptor.of("appQualitySessionId");
|
||||
private static final FieldDescriptor BUILDVERSION_DESCRIPTOR = FieldDescriptor.of("buildVersion");
|
||||
private static final FieldDescriptor DISPLAYVERSION_DESCRIPTOR = FieldDescriptor.of("displayVersion");
|
||||
private static final FieldDescriptor SESSION_DESCRIPTOR = FieldDescriptor.of("session");
|
||||
private static final FieldDescriptor NDKPAYLOAD_DESCRIPTOR = FieldDescriptor.of("ndkPayload");
|
||||
private static final FieldDescriptor APPEXITINFO_DESCRIPTOR = FieldDescriptor.of("appExitInfo");
|
||||
|
||||
private CrashlyticsReportEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport crashlyticsReport, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(SDKVERSION_DESCRIPTOR, crashlyticsReport.getSdkVersion());
|
||||
objectEncoderContext.add(GMPAPPID_DESCRIPTOR, crashlyticsReport.getGmpAppId());
|
||||
objectEncoderContext.add(PLATFORM_DESCRIPTOR, crashlyticsReport.getPlatform());
|
||||
objectEncoderContext.add(INSTALLATIONUUID_DESCRIPTOR, crashlyticsReport.getInstallationUuid());
|
||||
objectEncoderContext.add(FIREBASEINSTALLATIONID_DESCRIPTOR, crashlyticsReport.getFirebaseInstallationId());
|
||||
objectEncoderContext.add(APPQUALITYSESSIONID_DESCRIPTOR, crashlyticsReport.getAppQualitySessionId());
|
||||
objectEncoderContext.add(BUILDVERSION_DESCRIPTOR, crashlyticsReport.getBuildVersion());
|
||||
objectEncoderContext.add(DISPLAYVERSION_DESCRIPTOR, crashlyticsReport.getDisplayVersion());
|
||||
objectEncoderContext.add(SESSION_DESCRIPTOR, crashlyticsReport.getSession());
|
||||
objectEncoderContext.add(NDKPAYLOAD_DESCRIPTOR, crashlyticsReport.getNdkPayload());
|
||||
objectEncoderContext.add(APPEXITINFO_DESCRIPTOR, crashlyticsReport.getAppExitInfo());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportFilesPayloadEncoder implements ObjectEncoder<CrashlyticsReport.FilesPayload> {
|
||||
static final CrashlyticsReportFilesPayloadEncoder INSTANCE = new CrashlyticsReportFilesPayloadEncoder();
|
||||
private static final FieldDescriptor FILES_DESCRIPTOR = FieldDescriptor.of("files");
|
||||
private static final FieldDescriptor ORGID_DESCRIPTOR = FieldDescriptor.of("orgId");
|
||||
|
||||
private CrashlyticsReportFilesPayloadEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.FilesPayload filesPayload, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(FILES_DESCRIPTOR, filesPayload.getFiles());
|
||||
objectEncoderContext.add(ORGID_DESCRIPTOR, filesPayload.getOrgId());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportFilesPayloadFileEncoder implements ObjectEncoder<CrashlyticsReport.FilesPayload.File> {
|
||||
static final CrashlyticsReportFilesPayloadFileEncoder INSTANCE = new CrashlyticsReportFilesPayloadFileEncoder();
|
||||
private static final FieldDescriptor FILENAME_DESCRIPTOR = FieldDescriptor.of("filename");
|
||||
private static final FieldDescriptor CONTENTS_DESCRIPTOR = FieldDescriptor.of("contents");
|
||||
|
||||
private CrashlyticsReportFilesPayloadFileEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.FilesPayload.File file, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(FILENAME_DESCRIPTOR, file.getFilename());
|
||||
objectEncoderContext.add(CONTENTS_DESCRIPTOR, file.getContents());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionApplicationEncoder implements ObjectEncoder<CrashlyticsReport.Session.Application> {
|
||||
static final CrashlyticsReportSessionApplicationEncoder INSTANCE = new CrashlyticsReportSessionApplicationEncoder();
|
||||
private static final FieldDescriptor IDENTIFIER_DESCRIPTOR = FieldDescriptor.of("identifier");
|
||||
private static final FieldDescriptor VERSION_DESCRIPTOR = FieldDescriptor.of("version");
|
||||
private static final FieldDescriptor DISPLAYVERSION_DESCRIPTOR = FieldDescriptor.of("displayVersion");
|
||||
private static final FieldDescriptor ORGANIZATION_DESCRIPTOR = FieldDescriptor.of("organization");
|
||||
private static final FieldDescriptor INSTALLATIONUUID_DESCRIPTOR = FieldDescriptor.of("installationUuid");
|
||||
private static final FieldDescriptor DEVELOPMENTPLATFORM_DESCRIPTOR = FieldDescriptor.of("developmentPlatform");
|
||||
private static final FieldDescriptor DEVELOPMENTPLATFORMVERSION_DESCRIPTOR = FieldDescriptor.of("developmentPlatformVersion");
|
||||
|
||||
private CrashlyticsReportSessionApplicationEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Application application, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(IDENTIFIER_DESCRIPTOR, application.getIdentifier());
|
||||
objectEncoderContext.add(VERSION_DESCRIPTOR, application.getVersion());
|
||||
objectEncoderContext.add(DISPLAYVERSION_DESCRIPTOR, application.getDisplayVersion());
|
||||
objectEncoderContext.add(ORGANIZATION_DESCRIPTOR, application.getOrganization());
|
||||
objectEncoderContext.add(INSTALLATIONUUID_DESCRIPTOR, application.getInstallationUuid());
|
||||
objectEncoderContext.add(DEVELOPMENTPLATFORM_DESCRIPTOR, application.getDevelopmentPlatform());
|
||||
objectEncoderContext.add(DEVELOPMENTPLATFORMVERSION_DESCRIPTOR, application.getDevelopmentPlatformVersion());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionApplicationOrganizationEncoder implements ObjectEncoder<CrashlyticsReport.Session.Application.Organization> {
|
||||
static final CrashlyticsReportSessionApplicationOrganizationEncoder INSTANCE = new CrashlyticsReportSessionApplicationOrganizationEncoder();
|
||||
private static final FieldDescriptor CLSID_DESCRIPTOR = FieldDescriptor.of("clsId");
|
||||
|
||||
private CrashlyticsReportSessionApplicationOrganizationEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Application.Organization organization, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(CLSID_DESCRIPTOR, organization.getClsId());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionDeviceEncoder implements ObjectEncoder<CrashlyticsReport.Session.Device> {
|
||||
static final CrashlyticsReportSessionDeviceEncoder INSTANCE = new CrashlyticsReportSessionDeviceEncoder();
|
||||
private static final FieldDescriptor ARCH_DESCRIPTOR = FieldDescriptor.of("arch");
|
||||
private static final FieldDescriptor MODEL_DESCRIPTOR = FieldDescriptor.of("model");
|
||||
private static final FieldDescriptor CORES_DESCRIPTOR = FieldDescriptor.of("cores");
|
||||
private static final FieldDescriptor RAM_DESCRIPTOR = FieldDescriptor.of("ram");
|
||||
private static final FieldDescriptor DISKSPACE_DESCRIPTOR = FieldDescriptor.of("diskSpace");
|
||||
private static final FieldDescriptor SIMULATOR_DESCRIPTOR = FieldDescriptor.of("simulator");
|
||||
private static final FieldDescriptor STATE_DESCRIPTOR = FieldDescriptor.of(RemoteConfigConstants.ResponseFieldKey.STATE);
|
||||
private static final FieldDescriptor MANUFACTURER_DESCRIPTOR = FieldDescriptor.of("manufacturer");
|
||||
private static final FieldDescriptor MODELCLASS_DESCRIPTOR = FieldDescriptor.of("modelClass");
|
||||
|
||||
private CrashlyticsReportSessionDeviceEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Device device, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ARCH_DESCRIPTOR, device.getArch());
|
||||
objectEncoderContext.add(MODEL_DESCRIPTOR, device.getModel());
|
||||
objectEncoderContext.add(CORES_DESCRIPTOR, device.getCores());
|
||||
objectEncoderContext.add(RAM_DESCRIPTOR, device.getRam());
|
||||
objectEncoderContext.add(DISKSPACE_DESCRIPTOR, device.getDiskSpace());
|
||||
objectEncoderContext.add(SIMULATOR_DESCRIPTOR, device.isSimulator());
|
||||
objectEncoderContext.add(STATE_DESCRIPTOR, device.getState());
|
||||
objectEncoderContext.add(MANUFACTURER_DESCRIPTOR, device.getManufacturer());
|
||||
objectEncoderContext.add(MODELCLASS_DESCRIPTOR, device.getModelClass());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEncoder implements ObjectEncoder<CrashlyticsReport.Session> {
|
||||
static final CrashlyticsReportSessionEncoder INSTANCE = new CrashlyticsReportSessionEncoder();
|
||||
private static final FieldDescriptor GENERATOR_DESCRIPTOR = FieldDescriptor.of("generator");
|
||||
private static final FieldDescriptor IDENTIFIER_DESCRIPTOR = FieldDescriptor.of("identifier");
|
||||
private static final FieldDescriptor APPQUALITYSESSIONID_DESCRIPTOR = FieldDescriptor.of("appQualitySessionId");
|
||||
private static final FieldDescriptor STARTEDAT_DESCRIPTOR = FieldDescriptor.of("startedAt");
|
||||
private static final FieldDescriptor ENDEDAT_DESCRIPTOR = FieldDescriptor.of("endedAt");
|
||||
private static final FieldDescriptor CRASHED_DESCRIPTOR = FieldDescriptor.of("crashed");
|
||||
private static final FieldDescriptor APP_DESCRIPTOR = FieldDescriptor.of("app");
|
||||
private static final FieldDescriptor USER_DESCRIPTOR = FieldDescriptor.of("user");
|
||||
private static final FieldDescriptor OS_DESCRIPTOR = FieldDescriptor.of("os");
|
||||
private static final FieldDescriptor DEVICE_DESCRIPTOR = FieldDescriptor.of("device");
|
||||
private static final FieldDescriptor EVENTS_DESCRIPTOR = FieldDescriptor.of("events");
|
||||
private static final FieldDescriptor GENERATORTYPE_DESCRIPTOR = FieldDescriptor.of("generatorType");
|
||||
|
||||
private CrashlyticsReportSessionEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session session, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(GENERATOR_DESCRIPTOR, session.getGenerator());
|
||||
objectEncoderContext.add(IDENTIFIER_DESCRIPTOR, session.getIdentifierUtf8Bytes());
|
||||
objectEncoderContext.add(APPQUALITYSESSIONID_DESCRIPTOR, session.getAppQualitySessionId());
|
||||
objectEncoderContext.add(STARTEDAT_DESCRIPTOR, session.getStartedAt());
|
||||
objectEncoderContext.add(ENDEDAT_DESCRIPTOR, session.getEndedAt());
|
||||
objectEncoderContext.add(CRASHED_DESCRIPTOR, session.isCrashed());
|
||||
objectEncoderContext.add(APP_DESCRIPTOR, session.getApp());
|
||||
objectEncoderContext.add(USER_DESCRIPTOR, session.getUser());
|
||||
objectEncoderContext.add(OS_DESCRIPTOR, session.getOs());
|
||||
objectEncoderContext.add(DEVICE_DESCRIPTOR, session.getDevice());
|
||||
objectEncoderContext.add(EVENTS_DESCRIPTOR, session.getEvents());
|
||||
objectEncoderContext.add(GENERATORTYPE_DESCRIPTOR, session.getGeneratorType());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application> {
|
||||
static final CrashlyticsReportSessionEventApplicationEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationEncoder();
|
||||
private static final FieldDescriptor EXECUTION_DESCRIPTOR = FieldDescriptor.of("execution");
|
||||
private static final FieldDescriptor CUSTOMATTRIBUTES_DESCRIPTOR = FieldDescriptor.of("customAttributes");
|
||||
private static final FieldDescriptor INTERNALKEYS_DESCRIPTOR = FieldDescriptor.of("internalKeys");
|
||||
private static final FieldDescriptor BACKGROUND_DESCRIPTOR = FieldDescriptor.of("background");
|
||||
private static final FieldDescriptor CURRENTPROCESSDETAILS_DESCRIPTOR = FieldDescriptor.of("currentProcessDetails");
|
||||
private static final FieldDescriptor APPPROCESSDETAILS_DESCRIPTOR = FieldDescriptor.of("appProcessDetails");
|
||||
private static final FieldDescriptor UIORIENTATION_DESCRIPTOR = FieldDescriptor.of("uiOrientation");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application application, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(EXECUTION_DESCRIPTOR, application.getExecution());
|
||||
objectEncoderContext.add(CUSTOMATTRIBUTES_DESCRIPTOR, application.getCustomAttributes());
|
||||
objectEncoderContext.add(INTERNALKEYS_DESCRIPTOR, application.getInternalKeys());
|
||||
objectEncoderContext.add(BACKGROUND_DESCRIPTOR, application.getBackground());
|
||||
objectEncoderContext.add(CURRENTPROCESSDETAILS_DESCRIPTOR, application.getCurrentProcessDetails());
|
||||
objectEncoderContext.add(APPPROCESSDETAILS_DESCRIPTOR, application.getAppProcessDetails());
|
||||
objectEncoderContext.add(UIORIENTATION_DESCRIPTOR, application.getUiOrientation());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder();
|
||||
private static final FieldDescriptor BASEADDRESS_DESCRIPTOR = FieldDescriptor.of("baseAddress");
|
||||
private static final FieldDescriptor SIZE_DESCRIPTOR = FieldDescriptor.of("size");
|
||||
private static final FieldDescriptor NAME_DESCRIPTOR = FieldDescriptor.of(AppMeasurementSdk.ConditionalUserProperty.NAME);
|
||||
private static final FieldDescriptor UUID_DESCRIPTOR = FieldDescriptor.of("uuid");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution.BinaryImage binaryImage, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(BASEADDRESS_DESCRIPTOR, binaryImage.getBaseAddress());
|
||||
objectEncoderContext.add(SIZE_DESCRIPTOR, binaryImage.getSize());
|
||||
objectEncoderContext.add(NAME_DESCRIPTOR, binaryImage.getName());
|
||||
objectEncoderContext.add(UUID_DESCRIPTOR, binaryImage.getUuidUtf8Bytes());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionEncoder();
|
||||
private static final FieldDescriptor THREADS_DESCRIPTOR = FieldDescriptor.of("threads");
|
||||
private static final FieldDescriptor EXCEPTION_DESCRIPTOR = FieldDescriptor.of("exception");
|
||||
private static final FieldDescriptor APPEXITINFO_DESCRIPTOR = FieldDescriptor.of("appExitInfo");
|
||||
private static final FieldDescriptor SIGNAL_DESCRIPTOR = FieldDescriptor.of("signal");
|
||||
private static final FieldDescriptor BINARIES_DESCRIPTOR = FieldDescriptor.of("binaries");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution execution, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(THREADS_DESCRIPTOR, execution.getThreads());
|
||||
objectEncoderContext.add(EXCEPTION_DESCRIPTOR, execution.getException());
|
||||
objectEncoderContext.add(APPEXITINFO_DESCRIPTOR, execution.getAppExitInfo());
|
||||
objectEncoderContext.add(SIGNAL_DESCRIPTOR, execution.getSignal());
|
||||
objectEncoderContext.add(BINARIES_DESCRIPTOR, execution.getBinaries());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution.Exception> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder();
|
||||
private static final FieldDescriptor TYPE_DESCRIPTOR = FieldDescriptor.of("type");
|
||||
private static final FieldDescriptor REASON_DESCRIPTOR = FieldDescriptor.of("reason");
|
||||
private static final FieldDescriptor FRAMES_DESCRIPTOR = FieldDescriptor.of("frames");
|
||||
private static final FieldDescriptor CAUSEDBY_DESCRIPTOR = FieldDescriptor.of("causedBy");
|
||||
private static final FieldDescriptor OVERFLOWCOUNT_DESCRIPTOR = FieldDescriptor.of("overflowCount");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution.Exception exception, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(TYPE_DESCRIPTOR, exception.getType());
|
||||
objectEncoderContext.add(REASON_DESCRIPTOR, exception.getReason());
|
||||
objectEncoderContext.add(FRAMES_DESCRIPTOR, exception.getFrames());
|
||||
objectEncoderContext.add(CAUSEDBY_DESCRIPTOR, exception.getCausedBy());
|
||||
objectEncoderContext.add(OVERFLOWCOUNT_DESCRIPTOR, exception.getOverflowCount());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionSignalEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution.Signal> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionSignalEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionSignalEncoder();
|
||||
private static final FieldDescriptor NAME_DESCRIPTOR = FieldDescriptor.of(AppMeasurementSdk.ConditionalUserProperty.NAME);
|
||||
private static final FieldDescriptor CODE_DESCRIPTOR = FieldDescriptor.of("code");
|
||||
private static final FieldDescriptor ADDRESS_DESCRIPTOR = FieldDescriptor.of("address");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionSignalEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution.Signal signal, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(NAME_DESCRIPTOR, signal.getName());
|
||||
objectEncoderContext.add(CODE_DESCRIPTOR, signal.getCode());
|
||||
objectEncoderContext.add(ADDRESS_DESCRIPTOR, signal.getAddress());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionThreadEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution.Thread> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionThreadEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionThreadEncoder();
|
||||
private static final FieldDescriptor NAME_DESCRIPTOR = FieldDescriptor.of(AppMeasurementSdk.ConditionalUserProperty.NAME);
|
||||
private static final FieldDescriptor IMPORTANCE_DESCRIPTOR = FieldDescriptor.of("importance");
|
||||
private static final FieldDescriptor FRAMES_DESCRIPTOR = FieldDescriptor.of("frames");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionThreadEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution.Thread thread, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(NAME_DESCRIPTOR, thread.getName());
|
||||
objectEncoderContext.add(IMPORTANCE_DESCRIPTOR, thread.getImportance());
|
||||
objectEncoderContext.add(FRAMES_DESCRIPTOR, thread.getFrames());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> {
|
||||
static final CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder();
|
||||
private static final FieldDescriptor PC_DESCRIPTOR = FieldDescriptor.of("pc");
|
||||
private static final FieldDescriptor SYMBOL_DESCRIPTOR = FieldDescriptor.of("symbol");
|
||||
private static final FieldDescriptor FILE_DESCRIPTOR = FieldDescriptor.of("file");
|
||||
private static final FieldDescriptor OFFSET_DESCRIPTOR = FieldDescriptor.of("offset");
|
||||
private static final FieldDescriptor IMPORTANCE_DESCRIPTOR = FieldDescriptor.of("importance");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame frame, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(PC_DESCRIPTOR, frame.getPc());
|
||||
objectEncoderContext.add(SYMBOL_DESCRIPTOR, frame.getSymbol());
|
||||
objectEncoderContext.add(FILE_DESCRIPTOR, frame.getFile());
|
||||
objectEncoderContext.add(OFFSET_DESCRIPTOR, frame.getOffset());
|
||||
objectEncoderContext.add(IMPORTANCE_DESCRIPTOR, frame.getImportance());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventApplicationProcessDetailsEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Application.ProcessDetails> {
|
||||
static final CrashlyticsReportSessionEventApplicationProcessDetailsEncoder INSTANCE = new CrashlyticsReportSessionEventApplicationProcessDetailsEncoder();
|
||||
private static final FieldDescriptor PROCESSNAME_DESCRIPTOR = FieldDescriptor.of("processName");
|
||||
private static final FieldDescriptor PID_DESCRIPTOR = FieldDescriptor.of("pid");
|
||||
private static final FieldDescriptor IMPORTANCE_DESCRIPTOR = FieldDescriptor.of("importance");
|
||||
private static final FieldDescriptor DEFAULTPROCESS_DESCRIPTOR = FieldDescriptor.of("defaultProcess");
|
||||
|
||||
private CrashlyticsReportSessionEventApplicationProcessDetailsEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(PROCESSNAME_DESCRIPTOR, processDetails.getProcessName());
|
||||
objectEncoderContext.add(PID_DESCRIPTOR, processDetails.getPid());
|
||||
objectEncoderContext.add(IMPORTANCE_DESCRIPTOR, processDetails.getImportance());
|
||||
objectEncoderContext.add(DEFAULTPROCESS_DESCRIPTOR, processDetails.isDefaultProcess());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventDeviceEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Device> {
|
||||
static final CrashlyticsReportSessionEventDeviceEncoder INSTANCE = new CrashlyticsReportSessionEventDeviceEncoder();
|
||||
private static final FieldDescriptor BATTERYLEVEL_DESCRIPTOR = FieldDescriptor.of("batteryLevel");
|
||||
private static final FieldDescriptor BATTERYVELOCITY_DESCRIPTOR = FieldDescriptor.of("batteryVelocity");
|
||||
private static final FieldDescriptor PROXIMITYON_DESCRIPTOR = FieldDescriptor.of("proximityOn");
|
||||
private static final FieldDescriptor ORIENTATION_DESCRIPTOR = FieldDescriptor.of("orientation");
|
||||
private static final FieldDescriptor RAMUSED_DESCRIPTOR = FieldDescriptor.of("ramUsed");
|
||||
private static final FieldDescriptor DISKUSED_DESCRIPTOR = FieldDescriptor.of("diskUsed");
|
||||
|
||||
private CrashlyticsReportSessionEventDeviceEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Device device, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(BATTERYLEVEL_DESCRIPTOR, device.getBatteryLevel());
|
||||
objectEncoderContext.add(BATTERYVELOCITY_DESCRIPTOR, device.getBatteryVelocity());
|
||||
objectEncoderContext.add(PROXIMITYON_DESCRIPTOR, device.isProximityOn());
|
||||
objectEncoderContext.add(ORIENTATION_DESCRIPTOR, device.getOrientation());
|
||||
objectEncoderContext.add(RAMUSED_DESCRIPTOR, device.getRamUsed());
|
||||
objectEncoderContext.add(DISKUSED_DESCRIPTOR, device.getDiskUsed());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event> {
|
||||
static final CrashlyticsReportSessionEventEncoder INSTANCE = new CrashlyticsReportSessionEventEncoder();
|
||||
private static final FieldDescriptor TIMESTAMP_DESCRIPTOR = FieldDescriptor.of("timestamp");
|
||||
private static final FieldDescriptor TYPE_DESCRIPTOR = FieldDescriptor.of("type");
|
||||
private static final FieldDescriptor APP_DESCRIPTOR = FieldDescriptor.of("app");
|
||||
private static final FieldDescriptor DEVICE_DESCRIPTOR = FieldDescriptor.of("device");
|
||||
private static final FieldDescriptor LOG_DESCRIPTOR = FieldDescriptor.of("log");
|
||||
private static final FieldDescriptor ROLLOUTS_DESCRIPTOR = FieldDescriptor.of("rollouts");
|
||||
|
||||
private CrashlyticsReportSessionEventEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event event, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(TIMESTAMP_DESCRIPTOR, event.getTimestamp());
|
||||
objectEncoderContext.add(TYPE_DESCRIPTOR, event.getType());
|
||||
objectEncoderContext.add(APP_DESCRIPTOR, event.getApp());
|
||||
objectEncoderContext.add(DEVICE_DESCRIPTOR, event.getDevice());
|
||||
objectEncoderContext.add(LOG_DESCRIPTOR, event.getLog());
|
||||
objectEncoderContext.add(ROLLOUTS_DESCRIPTOR, event.getRollouts());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventLogEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.Log> {
|
||||
static final CrashlyticsReportSessionEventLogEncoder INSTANCE = new CrashlyticsReportSessionEventLogEncoder();
|
||||
private static final FieldDescriptor CONTENT_DESCRIPTOR = FieldDescriptor.of(FirebaseAnalytics.Param.CONTENT);
|
||||
|
||||
private CrashlyticsReportSessionEventLogEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.Log log, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(CONTENT_DESCRIPTOR, log.getContent());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventRolloutAssignmentEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.RolloutAssignment> {
|
||||
static final CrashlyticsReportSessionEventRolloutAssignmentEncoder INSTANCE = new CrashlyticsReportSessionEventRolloutAssignmentEncoder();
|
||||
private static final FieldDescriptor ROLLOUTVARIANT_DESCRIPTOR = FieldDescriptor.of("rolloutVariant");
|
||||
private static final FieldDescriptor PARAMETERKEY_DESCRIPTOR = FieldDescriptor.of("parameterKey");
|
||||
private static final FieldDescriptor PARAMETERVALUE_DESCRIPTOR = FieldDescriptor.of("parameterValue");
|
||||
private static final FieldDescriptor TEMPLATEVERSION_DESCRIPTOR = FieldDescriptor.of(RemoteConfigConstants.ResponseFieldKey.TEMPLATE_VERSION_NUMBER);
|
||||
|
||||
private CrashlyticsReportSessionEventRolloutAssignmentEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.RolloutAssignment rolloutAssignment, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ROLLOUTVARIANT_DESCRIPTOR, rolloutAssignment.getRolloutVariant());
|
||||
objectEncoderContext.add(PARAMETERKEY_DESCRIPTOR, rolloutAssignment.getParameterKey());
|
||||
objectEncoderContext.add(PARAMETERVALUE_DESCRIPTOR, rolloutAssignment.getParameterValue());
|
||||
objectEncoderContext.add(TEMPLATEVERSION_DESCRIPTOR, rolloutAssignment.getTemplateVersion());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.RolloutAssignment.RolloutVariant> {
|
||||
static final CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder INSTANCE = new CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder();
|
||||
private static final FieldDescriptor ROLLOUTID_DESCRIPTOR = FieldDescriptor.of(ConfigContainer.ROLLOUT_METADATA_ID);
|
||||
private static final FieldDescriptor VARIANTID_DESCRIPTOR = FieldDescriptor.of("variantId");
|
||||
|
||||
private CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.RolloutAssignment.RolloutVariant rolloutVariant, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ROLLOUTID_DESCRIPTOR, rolloutVariant.getRolloutId());
|
||||
objectEncoderContext.add(VARIANTID_DESCRIPTOR, rolloutVariant.getVariantId());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionEventRolloutsStateEncoder implements ObjectEncoder<CrashlyticsReport.Session.Event.RolloutsState> {
|
||||
static final CrashlyticsReportSessionEventRolloutsStateEncoder INSTANCE = new CrashlyticsReportSessionEventRolloutsStateEncoder();
|
||||
private static final FieldDescriptor ASSIGNMENTS_DESCRIPTOR = FieldDescriptor.of("assignments");
|
||||
|
||||
private CrashlyticsReportSessionEventRolloutsStateEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.Event.RolloutsState rolloutsState, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(ASSIGNMENTS_DESCRIPTOR, rolloutsState.getRolloutAssignments());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionOperatingSystemEncoder implements ObjectEncoder<CrashlyticsReport.Session.OperatingSystem> {
|
||||
static final CrashlyticsReportSessionOperatingSystemEncoder INSTANCE = new CrashlyticsReportSessionOperatingSystemEncoder();
|
||||
private static final FieldDescriptor PLATFORM_DESCRIPTOR = FieldDescriptor.of("platform");
|
||||
private static final FieldDescriptor VERSION_DESCRIPTOR = FieldDescriptor.of("version");
|
||||
private static final FieldDescriptor BUILDVERSION_DESCRIPTOR = FieldDescriptor.of("buildVersion");
|
||||
private static final FieldDescriptor JAILBROKEN_DESCRIPTOR = FieldDescriptor.of("jailbroken");
|
||||
|
||||
private CrashlyticsReportSessionOperatingSystemEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.OperatingSystem operatingSystem, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(PLATFORM_DESCRIPTOR, operatingSystem.getPlatform());
|
||||
objectEncoderContext.add(VERSION_DESCRIPTOR, operatingSystem.getVersion());
|
||||
objectEncoderContext.add(BUILDVERSION_DESCRIPTOR, operatingSystem.getBuildVersion());
|
||||
objectEncoderContext.add(JAILBROKEN_DESCRIPTOR, operatingSystem.isJailbroken());
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CrashlyticsReportSessionUserEncoder implements ObjectEncoder<CrashlyticsReport.Session.User> {
|
||||
static final CrashlyticsReportSessionUserEncoder INSTANCE = new CrashlyticsReportSessionUserEncoder();
|
||||
private static final FieldDescriptor IDENTIFIER_DESCRIPTOR = FieldDescriptor.of("identifier");
|
||||
|
||||
private CrashlyticsReportSessionUserEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.Encoder
|
||||
public void encode(CrashlyticsReport.Session.User user, ObjectEncoderContext objectEncoderContext) throws IOException {
|
||||
objectEncoderContext.add(IDENTIFIER_DESCRIPTOR, user.getIdentifier());
|
||||
}
|
||||
}
|
||||
|
||||
private AutoCrashlyticsReportEncoder() {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.encoders.config.Configurator
|
||||
public void configure(EncoderConfig<?> encoderConfig) {
|
||||
CrashlyticsReportEncoder crashlyticsReportEncoder = CrashlyticsReportEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.class, crashlyticsReportEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport.class, crashlyticsReportEncoder);
|
||||
CrashlyticsReportSessionEncoder crashlyticsReportSessionEncoder = CrashlyticsReportSessionEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.class, crashlyticsReportSessionEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session.class, crashlyticsReportSessionEncoder);
|
||||
CrashlyticsReportSessionApplicationEncoder crashlyticsReportSessionApplicationEncoder = CrashlyticsReportSessionApplicationEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Application.class, crashlyticsReportSessionApplicationEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Application.class, crashlyticsReportSessionApplicationEncoder);
|
||||
CrashlyticsReportSessionApplicationOrganizationEncoder crashlyticsReportSessionApplicationOrganizationEncoder = CrashlyticsReportSessionApplicationOrganizationEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Application.Organization.class, crashlyticsReportSessionApplicationOrganizationEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Application_Organization.class, crashlyticsReportSessionApplicationOrganizationEncoder);
|
||||
CrashlyticsReportSessionUserEncoder crashlyticsReportSessionUserEncoder = CrashlyticsReportSessionUserEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.User.class, crashlyticsReportSessionUserEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_User.class, crashlyticsReportSessionUserEncoder);
|
||||
CrashlyticsReportSessionOperatingSystemEncoder crashlyticsReportSessionOperatingSystemEncoder = CrashlyticsReportSessionOperatingSystemEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.OperatingSystem.class, crashlyticsReportSessionOperatingSystemEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_OperatingSystem.class, crashlyticsReportSessionOperatingSystemEncoder);
|
||||
CrashlyticsReportSessionDeviceEncoder crashlyticsReportSessionDeviceEncoder = CrashlyticsReportSessionDeviceEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Device.class, crashlyticsReportSessionDeviceEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Device.class, crashlyticsReportSessionDeviceEncoder);
|
||||
CrashlyticsReportSessionEventEncoder crashlyticsReportSessionEventEncoder = CrashlyticsReportSessionEventEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.class, crashlyticsReportSessionEventEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event.class, crashlyticsReportSessionEventEncoder);
|
||||
CrashlyticsReportSessionEventApplicationEncoder crashlyticsReportSessionEventApplicationEncoder = CrashlyticsReportSessionEventApplicationEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.class, crashlyticsReportSessionEventApplicationEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application.class, crashlyticsReportSessionEventApplicationEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionEncoder crashlyticsReportSessionEventApplicationExecutionEncoder = CrashlyticsReportSessionEventApplicationExecutionEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.class, crashlyticsReportSessionEventApplicationExecutionEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution.class, crashlyticsReportSessionEventApplicationExecutionEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionThreadEncoder crashlyticsReportSessionEventApplicationExecutionThreadEncoder = CrashlyticsReportSessionEventApplicationExecutionThreadEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.Thread.class, crashlyticsReportSessionEventApplicationExecutionThreadEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread.class, crashlyticsReportSessionEventApplicationExecutionThreadEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder crashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder = CrashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.class, crashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame.class, crashlyticsReportSessionEventApplicationExecutionThreadFrameEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder crashlyticsReportSessionEventApplicationExecutionExceptionEncoder = CrashlyticsReportSessionEventApplicationExecutionExceptionEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.Exception.class, crashlyticsReportSessionEventApplicationExecutionExceptionEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception.class, crashlyticsReportSessionEventApplicationExecutionExceptionEncoder);
|
||||
CrashlyticsReportApplicationExitInfoEncoder crashlyticsReportApplicationExitInfoEncoder = CrashlyticsReportApplicationExitInfoEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.ApplicationExitInfo.class, crashlyticsReportApplicationExitInfoEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_ApplicationExitInfo.class, crashlyticsReportApplicationExitInfoEncoder);
|
||||
CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder crashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder = CrashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.class, crashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_ApplicationExitInfo_BuildIdMappingForArch.class, crashlyticsReportApplicationExitInfoBuildIdMappingForArchEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionSignalEncoder crashlyticsReportSessionEventApplicationExecutionSignalEncoder = CrashlyticsReportSessionEventApplicationExecutionSignalEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.Signal.class, crashlyticsReportSessionEventApplicationExecutionSignalEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal.class, crashlyticsReportSessionEventApplicationExecutionSignalEncoder);
|
||||
CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder crashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder = CrashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.class, crashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage.class, crashlyticsReportSessionEventApplicationExecutionBinaryImageEncoder);
|
||||
CrashlyticsReportCustomAttributeEncoder crashlyticsReportCustomAttributeEncoder = CrashlyticsReportCustomAttributeEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.CustomAttribute.class, crashlyticsReportCustomAttributeEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_CustomAttribute.class, crashlyticsReportCustomAttributeEncoder);
|
||||
CrashlyticsReportSessionEventApplicationProcessDetailsEncoder crashlyticsReportSessionEventApplicationProcessDetailsEncoder = CrashlyticsReportSessionEventApplicationProcessDetailsEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Application.ProcessDetails.class, crashlyticsReportSessionEventApplicationProcessDetailsEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Application_ProcessDetails.class, crashlyticsReportSessionEventApplicationProcessDetailsEncoder);
|
||||
CrashlyticsReportSessionEventDeviceEncoder crashlyticsReportSessionEventDeviceEncoder = CrashlyticsReportSessionEventDeviceEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Device.class, crashlyticsReportSessionEventDeviceEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Device.class, crashlyticsReportSessionEventDeviceEncoder);
|
||||
CrashlyticsReportSessionEventLogEncoder crashlyticsReportSessionEventLogEncoder = CrashlyticsReportSessionEventLogEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.Log.class, crashlyticsReportSessionEventLogEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_Log.class, crashlyticsReportSessionEventLogEncoder);
|
||||
CrashlyticsReportSessionEventRolloutsStateEncoder crashlyticsReportSessionEventRolloutsStateEncoder = CrashlyticsReportSessionEventRolloutsStateEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.RolloutsState.class, crashlyticsReportSessionEventRolloutsStateEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_RolloutsState.class, crashlyticsReportSessionEventRolloutsStateEncoder);
|
||||
CrashlyticsReportSessionEventRolloutAssignmentEncoder crashlyticsReportSessionEventRolloutAssignmentEncoder = CrashlyticsReportSessionEventRolloutAssignmentEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.RolloutAssignment.class, crashlyticsReportSessionEventRolloutAssignmentEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_RolloutAssignment.class, crashlyticsReportSessionEventRolloutAssignmentEncoder);
|
||||
CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder crashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder = CrashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.Session.Event.RolloutAssignment.RolloutVariant.class, crashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_Session_Event_RolloutAssignment_RolloutVariant.class, crashlyticsReportSessionEventRolloutAssignmentRolloutVariantEncoder);
|
||||
CrashlyticsReportFilesPayloadEncoder crashlyticsReportFilesPayloadEncoder = CrashlyticsReportFilesPayloadEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.FilesPayload.class, crashlyticsReportFilesPayloadEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_FilesPayload.class, crashlyticsReportFilesPayloadEncoder);
|
||||
CrashlyticsReportFilesPayloadFileEncoder crashlyticsReportFilesPayloadFileEncoder = CrashlyticsReportFilesPayloadFileEncoder.INSTANCE;
|
||||
encoderConfig.registerEncoder(CrashlyticsReport.FilesPayload.File.class, crashlyticsReportFilesPayloadFileEncoder);
|
||||
encoderConfig.registerEncoder(AutoValue_CrashlyticsReport_FilesPayload_File.class, crashlyticsReportFilesPayloadFileEncoder);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport extends CrashlyticsReport {
|
||||
private final CrashlyticsReport.ApplicationExitInfo appExitInfo;
|
||||
private final String appQualitySessionId;
|
||||
private final String buildVersion;
|
||||
private final String displayVersion;
|
||||
private final String firebaseInstallationId;
|
||||
private final String gmpAppId;
|
||||
private final String installationUuid;
|
||||
private final CrashlyticsReport.FilesPayload ndkPayload;
|
||||
private final int platform;
|
||||
private final String sdkVersion;
|
||||
private final CrashlyticsReport.Session session;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Builder {
|
||||
private CrashlyticsReport.ApplicationExitInfo appExitInfo;
|
||||
private String appQualitySessionId;
|
||||
private String buildVersion;
|
||||
private String displayVersion;
|
||||
private String firebaseInstallationId;
|
||||
private String gmpAppId;
|
||||
private String installationUuid;
|
||||
private CrashlyticsReport.FilesPayload ndkPayload;
|
||||
private Integer platform;
|
||||
private String sdkVersion;
|
||||
private CrashlyticsReport.Session session;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport build() {
|
||||
String str = this.sdkVersion == null ? " sdkVersion" : "";
|
||||
if (this.gmpAppId == null) {
|
||||
str = w.n(str, " gmpAppId");
|
||||
}
|
||||
if (this.platform == null) {
|
||||
str = w.n(str, " platform");
|
||||
}
|
||||
if (this.installationUuid == null) {
|
||||
str = w.n(str, " installationUuid");
|
||||
}
|
||||
if (this.buildVersion == null) {
|
||||
str = w.n(str, " buildVersion");
|
||||
}
|
||||
if (this.displayVersion == null) {
|
||||
str = w.n(str, " displayVersion");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport(this.sdkVersion, this.gmpAppId, this.platform.intValue(), this.installationUuid, this.firebaseInstallationId, this.appQualitySessionId, this.buildVersion, this.displayVersion, this.session, this.ndkPayload, this.appExitInfo);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setAppExitInfo(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
this.appExitInfo = applicationExitInfo;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setAppQualitySessionId(String str) {
|
||||
this.appQualitySessionId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setBuildVersion(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null buildVersion");
|
||||
}
|
||||
this.buildVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setDisplayVersion(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null displayVersion");
|
||||
}
|
||||
this.displayVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setFirebaseInstallationId(String str) {
|
||||
this.firebaseInstallationId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setGmpAppId(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null gmpAppId");
|
||||
}
|
||||
this.gmpAppId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setInstallationUuid(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null installationUuid");
|
||||
}
|
||||
this.installationUuid = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setNdkPayload(CrashlyticsReport.FilesPayload filesPayload) {
|
||||
this.ndkPayload = filesPayload;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setPlatform(int i) {
|
||||
this.platform = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setSdkVersion(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null sdkVersion");
|
||||
}
|
||||
this.sdkVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Builder
|
||||
public CrashlyticsReport.Builder setSession(CrashlyticsReport.Session session) {
|
||||
this.session = session;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport crashlyticsReport) {
|
||||
this.sdkVersion = crashlyticsReport.getSdkVersion();
|
||||
this.gmpAppId = crashlyticsReport.getGmpAppId();
|
||||
this.platform = Integer.valueOf(crashlyticsReport.getPlatform());
|
||||
this.installationUuid = crashlyticsReport.getInstallationUuid();
|
||||
this.firebaseInstallationId = crashlyticsReport.getFirebaseInstallationId();
|
||||
this.appQualitySessionId = crashlyticsReport.getAppQualitySessionId();
|
||||
this.buildVersion = crashlyticsReport.getBuildVersion();
|
||||
this.displayVersion = crashlyticsReport.getDisplayVersion();
|
||||
this.session = crashlyticsReport.getSession();
|
||||
this.ndkPayload = crashlyticsReport.getNdkPayload();
|
||||
this.appExitInfo = crashlyticsReport.getAppExitInfo();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
String str2;
|
||||
CrashlyticsReport.Session session;
|
||||
CrashlyticsReport.FilesPayload filesPayload;
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInfo;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport) {
|
||||
CrashlyticsReport crashlyticsReport = (CrashlyticsReport) obj;
|
||||
if (this.sdkVersion.equals(crashlyticsReport.getSdkVersion()) && this.gmpAppId.equals(crashlyticsReport.getGmpAppId()) && this.platform == crashlyticsReport.getPlatform() && this.installationUuid.equals(crashlyticsReport.getInstallationUuid()) && ((str = this.firebaseInstallationId) != null ? str.equals(crashlyticsReport.getFirebaseInstallationId()) : crashlyticsReport.getFirebaseInstallationId() == null) && ((str2 = this.appQualitySessionId) != null ? str2.equals(crashlyticsReport.getAppQualitySessionId()) : crashlyticsReport.getAppQualitySessionId() == null) && this.buildVersion.equals(crashlyticsReport.getBuildVersion()) && this.displayVersion.equals(crashlyticsReport.getDisplayVersion()) && ((session = this.session) != null ? session.equals(crashlyticsReport.getSession()) : crashlyticsReport.getSession() == null) && ((filesPayload = this.ndkPayload) != null ? filesPayload.equals(crashlyticsReport.getNdkPayload()) : crashlyticsReport.getNdkPayload() == null) && ((applicationExitInfo = this.appExitInfo) != null ? applicationExitInfo.equals(crashlyticsReport.getAppExitInfo()) : crashlyticsReport.getAppExitInfo() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public CrashlyticsReport.ApplicationExitInfo getAppExitInfo() {
|
||||
return this.appExitInfo;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getAppQualitySessionId() {
|
||||
return this.appQualitySessionId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getBuildVersion() {
|
||||
return this.buildVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getDisplayVersion() {
|
||||
return this.displayVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getFirebaseInstallationId() {
|
||||
return this.firebaseInstallationId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getGmpAppId() {
|
||||
return this.gmpAppId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getInstallationUuid() {
|
||||
return this.installationUuid;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public CrashlyticsReport.FilesPayload getNdkPayload() {
|
||||
return this.ndkPayload;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public int getPlatform() {
|
||||
return this.platform;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public String getSdkVersion() {
|
||||
return this.sdkVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public CrashlyticsReport.Session getSession() {
|
||||
return this.session;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((((((this.sdkVersion.hashCode() ^ 1000003) * 1000003) ^ this.gmpAppId.hashCode()) * 1000003) ^ this.platform) * 1000003) ^ this.installationUuid.hashCode()) * 1000003;
|
||||
String str = this.firebaseInstallationId;
|
||||
int hashCode2 = (hashCode ^ (str == null ? 0 : str.hashCode())) * 1000003;
|
||||
String str2 = this.appQualitySessionId;
|
||||
int hashCode3 = (((((hashCode2 ^ (str2 == null ? 0 : str2.hashCode())) * 1000003) ^ this.buildVersion.hashCode()) * 1000003) ^ this.displayVersion.hashCode()) * 1000003;
|
||||
CrashlyticsReport.Session session = this.session;
|
||||
int hashCode4 = (hashCode3 ^ (session == null ? 0 : session.hashCode())) * 1000003;
|
||||
CrashlyticsReport.FilesPayload filesPayload = this.ndkPayload;
|
||||
int hashCode5 = (hashCode4 ^ (filesPayload == null ? 0 : filesPayload.hashCode())) * 1000003;
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInfo = this.appExitInfo;
|
||||
return hashCode5 ^ (applicationExitInfo != null ? applicationExitInfo.hashCode() : 0);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport
|
||||
public CrashlyticsReport.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "CrashlyticsReport{sdkVersion=" + this.sdkVersion + ", gmpAppId=" + this.gmpAppId + ", platform=" + this.platform + ", installationUuid=" + this.installationUuid + ", firebaseInstallationId=" + this.firebaseInstallationId + ", appQualitySessionId=" + this.appQualitySessionId + ", buildVersion=" + this.buildVersion + ", displayVersion=" + this.displayVersion + ", session=" + this.session + ", ndkPayload=" + this.ndkPayload + ", appExitInfo=" + this.appExitInfo + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport(String str, String str2, int i, String str3, String str4, String str5, String str6, String str7, CrashlyticsReport.Session session, CrashlyticsReport.FilesPayload filesPayload, CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
this.sdkVersion = str;
|
||||
this.gmpAppId = str2;
|
||||
this.platform = i;
|
||||
this.installationUuid = str3;
|
||||
this.firebaseInstallationId = str4;
|
||||
this.appQualitySessionId = str5;
|
||||
this.buildVersion = str6;
|
||||
this.displayVersion = str7;
|
||||
this.session = session;
|
||||
this.ndkPayload = filesPayload;
|
||||
this.appExitInfo = applicationExitInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_ApplicationExitInfo extends CrashlyticsReport.ApplicationExitInfo {
|
||||
private final List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> buildIdMappingForArch;
|
||||
private final int importance;
|
||||
private final int pid;
|
||||
private final String processName;
|
||||
private final long pss;
|
||||
private final int reasonCode;
|
||||
private final long rss;
|
||||
private final long timestamp;
|
||||
private final String traceFile;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.ApplicationExitInfo.Builder {
|
||||
private List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> buildIdMappingForArch;
|
||||
private Integer importance;
|
||||
private Integer pid;
|
||||
private String processName;
|
||||
private Long pss;
|
||||
private Integer reasonCode;
|
||||
private Long rss;
|
||||
private Long timestamp;
|
||||
private String traceFile;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo build() {
|
||||
String str = this.pid == null ? " pid" : "";
|
||||
if (this.processName == null) {
|
||||
str = w.n(str, " processName");
|
||||
}
|
||||
if (this.reasonCode == null) {
|
||||
str = w.n(str, " reasonCode");
|
||||
}
|
||||
if (this.importance == null) {
|
||||
str = w.n(str, " importance");
|
||||
}
|
||||
if (this.pss == null) {
|
||||
str = w.n(str, " pss");
|
||||
}
|
||||
if (this.rss == null) {
|
||||
str = w.n(str, " rss");
|
||||
}
|
||||
if (this.timestamp == null) {
|
||||
str = w.n(str, " timestamp");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_ApplicationExitInfo(this.pid.intValue(), this.processName, this.reasonCode.intValue(), this.importance.intValue(), this.pss.longValue(), this.rss.longValue(), this.timestamp.longValue(), this.traceFile, this.buildIdMappingForArch);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setBuildIdMappingForArch(List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> list) {
|
||||
this.buildIdMappingForArch = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setImportance(int i) {
|
||||
this.importance = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setPid(int i) {
|
||||
this.pid = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setProcessName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null processName");
|
||||
}
|
||||
this.processName = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setPss(long j4) {
|
||||
this.pss = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setReasonCode(int i) {
|
||||
this.reasonCode = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setRss(long j4) {
|
||||
this.rss = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setTimestamp(long j4) {
|
||||
this.timestamp = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.Builder setTraceFile(String str) {
|
||||
this.traceFile = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> list;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.ApplicationExitInfo) {
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInfo = (CrashlyticsReport.ApplicationExitInfo) obj;
|
||||
if (this.pid == applicationExitInfo.getPid() && this.processName.equals(applicationExitInfo.getProcessName()) && this.reasonCode == applicationExitInfo.getReasonCode() && this.importance == applicationExitInfo.getImportance() && this.pss == applicationExitInfo.getPss() && this.rss == applicationExitInfo.getRss() && this.timestamp == applicationExitInfo.getTimestamp() && ((str = this.traceFile) != null ? str.equals(applicationExitInfo.getTraceFile()) : applicationExitInfo.getTraceFile() == null) && ((list = this.buildIdMappingForArch) != null ? list.equals(applicationExitInfo.getBuildIdMappingForArch()) : applicationExitInfo.getBuildIdMappingForArch() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> getBuildIdMappingForArch() {
|
||||
return this.buildIdMappingForArch;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public int getImportance() {
|
||||
return this.importance;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public int getPid() {
|
||||
return this.pid;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public String getProcessName() {
|
||||
return this.processName;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public long getPss() {
|
||||
return this.pss;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public int getReasonCode() {
|
||||
return this.reasonCode;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public long getRss() {
|
||||
return this.rss;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public long getTimestamp() {
|
||||
return this.timestamp;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo
|
||||
public String getTraceFile() {
|
||||
return this.traceFile;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((((((this.pid ^ 1000003) * 1000003) ^ this.processName.hashCode()) * 1000003) ^ this.reasonCode) * 1000003) ^ this.importance) * 1000003;
|
||||
long j4 = this.pss;
|
||||
int i = (hashCode ^ ((int) (j4 ^ (j4 >>> 32)))) * 1000003;
|
||||
long j5 = this.rss;
|
||||
int i4 = (i ^ ((int) (j5 ^ (j5 >>> 32)))) * 1000003;
|
||||
long j6 = this.timestamp;
|
||||
int i5 = (i4 ^ ((int) (j6 ^ (j6 >>> 32)))) * 1000003;
|
||||
String str = this.traceFile;
|
||||
int hashCode2 = (i5 ^ (str == null ? 0 : str.hashCode())) * 1000003;
|
||||
List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> list = this.buildIdMappingForArch;
|
||||
return hashCode2 ^ (list != null ? list.hashCode() : 0);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "ApplicationExitInfo{pid=" + this.pid + ", processName=" + this.processName + ", reasonCode=" + this.reasonCode + ", importance=" + this.importance + ", pss=" + this.pss + ", rss=" + this.rss + ", timestamp=" + this.timestamp + ", traceFile=" + this.traceFile + ", buildIdMappingForArch=" + this.buildIdMappingForArch + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_ApplicationExitInfo(int i, String str, int i4, int i5, long j4, long j5, long j6, String str2, List<CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch> list) {
|
||||
this.pid = i;
|
||||
this.processName = str;
|
||||
this.reasonCode = i4;
|
||||
this.importance = i5;
|
||||
this.pss = j4;
|
||||
this.rss = j5;
|
||||
this.timestamp = j6;
|
||||
this.traceFile = str2;
|
||||
this.buildIdMappingForArch = list;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_ApplicationExitInfo_BuildIdMappingForArch extends CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch {
|
||||
private final String arch;
|
||||
private final String buildId;
|
||||
private final String libraryName;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder {
|
||||
private String arch;
|
||||
private String buildId;
|
||||
private String libraryName;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch build() {
|
||||
String str = this.arch == null ? " arch" : "";
|
||||
if (this.libraryName == null) {
|
||||
str = w.n(str, " libraryName");
|
||||
}
|
||||
if (this.buildId == null) {
|
||||
str = w.n(str, " buildId");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_ApplicationExitInfo_BuildIdMappingForArch(this.arch, this.libraryName, this.buildId);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder setArch(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null arch");
|
||||
}
|
||||
this.arch = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder setBuildId(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null buildId");
|
||||
}
|
||||
this.buildId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder
|
||||
public CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch.Builder setLibraryName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null libraryName");
|
||||
}
|
||||
this.libraryName = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch) {
|
||||
CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch buildIdMappingForArch = (CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch) obj;
|
||||
if (this.arch.equals(buildIdMappingForArch.getArch()) && this.libraryName.equals(buildIdMappingForArch.getLibraryName()) && this.buildId.equals(buildIdMappingForArch.getBuildId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch
|
||||
public String getArch() {
|
||||
return this.arch;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch
|
||||
public String getBuildId() {
|
||||
return this.buildId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.ApplicationExitInfo.BuildIdMappingForArch
|
||||
public String getLibraryName() {
|
||||
return this.libraryName;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.buildId.hashCode() ^ ((((this.arch.hashCode() ^ 1000003) * 1000003) ^ this.libraryName.hashCode()) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("BuildIdMappingForArch{arch=");
|
||||
sb.append(this.arch);
|
||||
sb.append(", libraryName=");
|
||||
sb.append(this.libraryName);
|
||||
sb.append(", buildId=");
|
||||
return w.r(sb, this.buildId, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_ApplicationExitInfo_BuildIdMappingForArch(String str, String str2, String str3) {
|
||||
this.arch = str;
|
||||
this.libraryName = str2;
|
||||
this.buildId = str3;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_CustomAttribute extends CrashlyticsReport.CustomAttribute {
|
||||
private final String key;
|
||||
private final String value;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.CustomAttribute.Builder {
|
||||
private String key;
|
||||
private String value;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.CustomAttribute.Builder
|
||||
public CrashlyticsReport.CustomAttribute build() {
|
||||
String str = this.key == null ? " key" : "";
|
||||
if (this.value == null) {
|
||||
str = w.n(str, " value");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_CustomAttribute(this.key, this.value);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.CustomAttribute.Builder
|
||||
public CrashlyticsReport.CustomAttribute.Builder setKey(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null key");
|
||||
}
|
||||
this.key = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.CustomAttribute.Builder
|
||||
public CrashlyticsReport.CustomAttribute.Builder setValue(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null value");
|
||||
}
|
||||
this.value = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.CustomAttribute) {
|
||||
CrashlyticsReport.CustomAttribute customAttribute = (CrashlyticsReport.CustomAttribute) obj;
|
||||
if (this.key.equals(customAttribute.getKey()) && this.value.equals(customAttribute.getValue())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.CustomAttribute
|
||||
public String getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.CustomAttribute
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.value.hashCode() ^ ((this.key.hashCode() ^ 1000003) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("CustomAttribute{key=");
|
||||
sb.append(this.key);
|
||||
sb.append(", value=");
|
||||
return w.r(sb, this.value, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_CustomAttribute(String str, String str2) {
|
||||
this.key = str;
|
||||
this.value = str2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_FilesPayload extends CrashlyticsReport.FilesPayload {
|
||||
private final List<CrashlyticsReport.FilesPayload.File> files;
|
||||
private final String orgId;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.FilesPayload.Builder {
|
||||
private List<CrashlyticsReport.FilesPayload.File> files;
|
||||
private String orgId;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.Builder
|
||||
public CrashlyticsReport.FilesPayload build() {
|
||||
String str = this.files == null ? " files" : "";
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_FilesPayload(this.files, this.orgId);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.Builder
|
||||
public CrashlyticsReport.FilesPayload.Builder setFiles(List<CrashlyticsReport.FilesPayload.File> list) {
|
||||
if (list == null) {
|
||||
throw new NullPointerException("Null files");
|
||||
}
|
||||
this.files = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.Builder
|
||||
public CrashlyticsReport.FilesPayload.Builder setOrgId(String str) {
|
||||
this.orgId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.FilesPayload filesPayload) {
|
||||
this.files = filesPayload.getFiles();
|
||||
this.orgId = filesPayload.getOrgId();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.FilesPayload) {
|
||||
CrashlyticsReport.FilesPayload filesPayload = (CrashlyticsReport.FilesPayload) obj;
|
||||
if (this.files.equals(filesPayload.getFiles()) && ((str = this.orgId) != null ? str.equals(filesPayload.getOrgId()) : filesPayload.getOrgId() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload
|
||||
public List<CrashlyticsReport.FilesPayload.File> getFiles() {
|
||||
return this.files;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload
|
||||
public String getOrgId() {
|
||||
return this.orgId;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (this.files.hashCode() ^ 1000003) * 1000003;
|
||||
String str = this.orgId;
|
||||
return (str == null ? 0 : str.hashCode()) ^ hashCode;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload
|
||||
public CrashlyticsReport.FilesPayload.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("FilesPayload{files=");
|
||||
sb.append(this.files);
|
||||
sb.append(", orgId=");
|
||||
return w.r(sb, this.orgId, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_FilesPayload(List<CrashlyticsReport.FilesPayload.File> list, String str) {
|
||||
this.files = list;
|
||||
this.orgId = str;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.Arrays;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_FilesPayload_File extends CrashlyticsReport.FilesPayload.File {
|
||||
private final byte[] contents;
|
||||
private final String filename;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.FilesPayload.File.Builder {
|
||||
private byte[] contents;
|
||||
private String filename;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.File.Builder
|
||||
public CrashlyticsReport.FilesPayload.File build() {
|
||||
String str = this.filename == null ? " filename" : "";
|
||||
if (this.contents == null) {
|
||||
str = w.n(str, " contents");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_FilesPayload_File(this.filename, this.contents);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.File.Builder
|
||||
public CrashlyticsReport.FilesPayload.File.Builder setContents(byte[] bArr) {
|
||||
if (bArr == null) {
|
||||
throw new NullPointerException("Null contents");
|
||||
}
|
||||
this.contents = bArr;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.File.Builder
|
||||
public CrashlyticsReport.FilesPayload.File.Builder setFilename(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null filename");
|
||||
}
|
||||
this.filename = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.FilesPayload.File) {
|
||||
CrashlyticsReport.FilesPayload.File file = (CrashlyticsReport.FilesPayload.File) obj;
|
||||
if (this.filename.equals(file.getFilename())) {
|
||||
if (Arrays.equals(this.contents, file instanceof AutoValue_CrashlyticsReport_FilesPayload_File ? ((AutoValue_CrashlyticsReport_FilesPayload_File) file).contents : file.getContents())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.File
|
||||
public byte[] getContents() {
|
||||
return this.contents;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.FilesPayload.File
|
||||
public String getFilename() {
|
||||
return this.filename;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return Arrays.hashCode(this.contents) ^ ((this.filename.hashCode() ^ 1000003) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "File{filename=" + this.filename + ", contents=" + Arrays.toString(this.contents) + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_FilesPayload_File(String str, byte[] bArr) {
|
||||
this.filename = str;
|
||||
this.contents = bArr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,307 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.encoders.annotations.Encodable;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session extends CrashlyticsReport.Session {
|
||||
private final CrashlyticsReport.Session.Application app;
|
||||
private final String appQualitySessionId;
|
||||
private final boolean crashed;
|
||||
private final CrashlyticsReport.Session.Device device;
|
||||
private final Long endedAt;
|
||||
private final List<CrashlyticsReport.Session.Event> events;
|
||||
private final String generator;
|
||||
private final int generatorType;
|
||||
private final String identifier;
|
||||
private final CrashlyticsReport.Session.OperatingSystem os;
|
||||
private final long startedAt;
|
||||
private final CrashlyticsReport.Session.User user;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Builder {
|
||||
private CrashlyticsReport.Session.Application app;
|
||||
private String appQualitySessionId;
|
||||
private Boolean crashed;
|
||||
private CrashlyticsReport.Session.Device device;
|
||||
private Long endedAt;
|
||||
private List<CrashlyticsReport.Session.Event> events;
|
||||
private String generator;
|
||||
private Integer generatorType;
|
||||
private String identifier;
|
||||
private CrashlyticsReport.Session.OperatingSystem os;
|
||||
private Long startedAt;
|
||||
private CrashlyticsReport.Session.User user;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session build() {
|
||||
String str = this.generator == null ? " generator" : "";
|
||||
if (this.identifier == null) {
|
||||
str = w.n(str, " identifier");
|
||||
}
|
||||
if (this.startedAt == null) {
|
||||
str = w.n(str, " startedAt");
|
||||
}
|
||||
if (this.crashed == null) {
|
||||
str = w.n(str, " crashed");
|
||||
}
|
||||
if (this.app == null) {
|
||||
str = w.n(str, " app");
|
||||
}
|
||||
if (this.generatorType == null) {
|
||||
str = w.n(str, " generatorType");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session(this.generator, this.identifier, this.appQualitySessionId, this.startedAt.longValue(), this.endedAt, this.crashed.booleanValue(), this.app, this.user, this.os, this.device, this.events, this.generatorType.intValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setApp(CrashlyticsReport.Session.Application application) {
|
||||
if (application == null) {
|
||||
throw new NullPointerException("Null app");
|
||||
}
|
||||
this.app = application;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setAppQualitySessionId(String str) {
|
||||
this.appQualitySessionId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setCrashed(boolean z3) {
|
||||
this.crashed = Boolean.valueOf(z3);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setDevice(CrashlyticsReport.Session.Device device) {
|
||||
this.device = device;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setEndedAt(Long l4) {
|
||||
this.endedAt = l4;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setEvents(List<CrashlyticsReport.Session.Event> list) {
|
||||
this.events = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setGenerator(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null generator");
|
||||
}
|
||||
this.generator = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setGeneratorType(int i) {
|
||||
this.generatorType = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setIdentifier(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null identifier");
|
||||
}
|
||||
this.identifier = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setOs(CrashlyticsReport.Session.OperatingSystem operatingSystem) {
|
||||
this.os = operatingSystem;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setStartedAt(long j4) {
|
||||
this.startedAt = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Builder
|
||||
public CrashlyticsReport.Session.Builder setUser(CrashlyticsReport.Session.User user) {
|
||||
this.user = user;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.Session session) {
|
||||
this.generator = session.getGenerator();
|
||||
this.identifier = session.getIdentifier();
|
||||
this.appQualitySessionId = session.getAppQualitySessionId();
|
||||
this.startedAt = Long.valueOf(session.getStartedAt());
|
||||
this.endedAt = session.getEndedAt();
|
||||
this.crashed = Boolean.valueOf(session.isCrashed());
|
||||
this.app = session.getApp();
|
||||
this.user = session.getUser();
|
||||
this.os = session.getOs();
|
||||
this.device = session.getDevice();
|
||||
this.events = session.getEvents();
|
||||
this.generatorType = Integer.valueOf(session.getGeneratorType());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
Long l4;
|
||||
CrashlyticsReport.Session.User user;
|
||||
CrashlyticsReport.Session.OperatingSystem operatingSystem;
|
||||
CrashlyticsReport.Session.Device device;
|
||||
List<CrashlyticsReport.Session.Event> list;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session) {
|
||||
CrashlyticsReport.Session session = (CrashlyticsReport.Session) obj;
|
||||
if (this.generator.equals(session.getGenerator()) && this.identifier.equals(session.getIdentifier()) && ((str = this.appQualitySessionId) != null ? str.equals(session.getAppQualitySessionId()) : session.getAppQualitySessionId() == null) && this.startedAt == session.getStartedAt() && ((l4 = this.endedAt) != null ? l4.equals(session.getEndedAt()) : session.getEndedAt() == null) && this.crashed == session.isCrashed() && this.app.equals(session.getApp()) && ((user = this.user) != null ? user.equals(session.getUser()) : session.getUser() == null) && ((operatingSystem = this.os) != null ? operatingSystem.equals(session.getOs()) : session.getOs() == null) && ((device = this.device) != null ? device.equals(session.getDevice()) : session.getDevice() == null) && ((list = this.events) != null ? list.equals(session.getEvents()) : session.getEvents() == null) && this.generatorType == session.getGeneratorType()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public CrashlyticsReport.Session.Application getApp() {
|
||||
return this.app;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public String getAppQualitySessionId() {
|
||||
return this.appQualitySessionId;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public CrashlyticsReport.Session.Device getDevice() {
|
||||
return this.device;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public Long getEndedAt() {
|
||||
return this.endedAt;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public List<CrashlyticsReport.Session.Event> getEvents() {
|
||||
return this.events;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public String getGenerator() {
|
||||
return this.generator;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public int getGeneratorType() {
|
||||
return this.generatorType;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
@Encodable.Ignore
|
||||
public String getIdentifier() {
|
||||
return this.identifier;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public CrashlyticsReport.Session.OperatingSystem getOs() {
|
||||
return this.os;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public long getStartedAt() {
|
||||
return this.startedAt;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public CrashlyticsReport.Session.User getUser() {
|
||||
return this.user;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((this.generator.hashCode() ^ 1000003) * 1000003) ^ this.identifier.hashCode()) * 1000003;
|
||||
String str = this.appQualitySessionId;
|
||||
int hashCode2 = str == null ? 0 : str.hashCode();
|
||||
long j4 = this.startedAt;
|
||||
int i = (((hashCode ^ hashCode2) * 1000003) ^ ((int) (j4 ^ (j4 >>> 32)))) * 1000003;
|
||||
Long l4 = this.endedAt;
|
||||
int hashCode3 = (((((i ^ (l4 == null ? 0 : l4.hashCode())) * 1000003) ^ (this.crashed ? 1231 : 1237)) * 1000003) ^ this.app.hashCode()) * 1000003;
|
||||
CrashlyticsReport.Session.User user = this.user;
|
||||
int hashCode4 = (hashCode3 ^ (user == null ? 0 : user.hashCode())) * 1000003;
|
||||
CrashlyticsReport.Session.OperatingSystem operatingSystem = this.os;
|
||||
int hashCode5 = (hashCode4 ^ (operatingSystem == null ? 0 : operatingSystem.hashCode())) * 1000003;
|
||||
CrashlyticsReport.Session.Device device = this.device;
|
||||
int hashCode6 = (hashCode5 ^ (device == null ? 0 : device.hashCode())) * 1000003;
|
||||
List<CrashlyticsReport.Session.Event> list = this.events;
|
||||
return this.generatorType ^ ((hashCode6 ^ (list != null ? list.hashCode() : 0)) * 1000003);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public boolean isCrashed() {
|
||||
return this.crashed;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session
|
||||
public CrashlyticsReport.Session.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Session{generator=");
|
||||
sb.append(this.generator);
|
||||
sb.append(", identifier=");
|
||||
sb.append(this.identifier);
|
||||
sb.append(", appQualitySessionId=");
|
||||
sb.append(this.appQualitySessionId);
|
||||
sb.append(", startedAt=");
|
||||
sb.append(this.startedAt);
|
||||
sb.append(", endedAt=");
|
||||
sb.append(this.endedAt);
|
||||
sb.append(", crashed=");
|
||||
sb.append(this.crashed);
|
||||
sb.append(", app=");
|
||||
sb.append(this.app);
|
||||
sb.append(", user=");
|
||||
sb.append(this.user);
|
||||
sb.append(", os=");
|
||||
sb.append(this.os);
|
||||
sb.append(", device=");
|
||||
sb.append(this.device);
|
||||
sb.append(", events=");
|
||||
sb.append(this.events);
|
||||
sb.append(", generatorType=");
|
||||
return a.m(sb, this.generatorType, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session(String str, String str2, String str3, long j4, Long l4, boolean z3, CrashlyticsReport.Session.Application application, CrashlyticsReport.Session.User user, CrashlyticsReport.Session.OperatingSystem operatingSystem, CrashlyticsReport.Session.Device device, List<CrashlyticsReport.Session.Event> list, int i) {
|
||||
this.generator = str;
|
||||
this.identifier = str2;
|
||||
this.appQualitySessionId = str3;
|
||||
this.startedAt = j4;
|
||||
this.endedAt = l4;
|
||||
this.crashed = z3;
|
||||
this.app = application;
|
||||
this.user = user;
|
||||
this.os = operatingSystem;
|
||||
this.device = device;
|
||||
this.events = list;
|
||||
this.generatorType = i;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Application extends CrashlyticsReport.Session.Application {
|
||||
private final String developmentPlatform;
|
||||
private final String developmentPlatformVersion;
|
||||
private final String displayVersion;
|
||||
private final String identifier;
|
||||
private final String installationUuid;
|
||||
private final CrashlyticsReport.Session.Application.Organization organization;
|
||||
private final String version;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Application.Builder {
|
||||
private String developmentPlatform;
|
||||
private String developmentPlatformVersion;
|
||||
private String displayVersion;
|
||||
private String identifier;
|
||||
private String installationUuid;
|
||||
private CrashlyticsReport.Session.Application.Organization organization;
|
||||
private String version;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application build() {
|
||||
String str = this.identifier == null ? " identifier" : "";
|
||||
if (this.version == null) {
|
||||
str = w.n(str, " version");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Application(this.identifier, this.version, this.displayVersion, this.organization, this.installationUuid, this.developmentPlatform, this.developmentPlatformVersion);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setDevelopmentPlatform(String str) {
|
||||
this.developmentPlatform = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setDevelopmentPlatformVersion(String str) {
|
||||
this.developmentPlatformVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setDisplayVersion(String str) {
|
||||
this.displayVersion = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setIdentifier(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null identifier");
|
||||
}
|
||||
this.identifier = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setInstallationUuid(String str) {
|
||||
this.installationUuid = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setOrganization(CrashlyticsReport.Session.Application.Organization organization) {
|
||||
this.organization = organization;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Builder
|
||||
public CrashlyticsReport.Session.Application.Builder setVersion(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null version");
|
||||
}
|
||||
this.version = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.Session.Application application) {
|
||||
this.identifier = application.getIdentifier();
|
||||
this.version = application.getVersion();
|
||||
this.displayVersion = application.getDisplayVersion();
|
||||
this.organization = application.getOrganization();
|
||||
this.installationUuid = application.getInstallationUuid();
|
||||
this.developmentPlatform = application.getDevelopmentPlatform();
|
||||
this.developmentPlatformVersion = application.getDevelopmentPlatformVersion();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
CrashlyticsReport.Session.Application.Organization organization;
|
||||
String str2;
|
||||
String str3;
|
||||
String str4;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Application) {
|
||||
CrashlyticsReport.Session.Application application = (CrashlyticsReport.Session.Application) obj;
|
||||
if (this.identifier.equals(application.getIdentifier()) && this.version.equals(application.getVersion()) && ((str = this.displayVersion) != null ? str.equals(application.getDisplayVersion()) : application.getDisplayVersion() == null) && ((organization = this.organization) != null ? organization.equals(application.getOrganization()) : application.getOrganization() == null) && ((str2 = this.installationUuid) != null ? str2.equals(application.getInstallationUuid()) : application.getInstallationUuid() == null) && ((str3 = this.developmentPlatform) != null ? str3.equals(application.getDevelopmentPlatform()) : application.getDevelopmentPlatform() == null) && ((str4 = this.developmentPlatformVersion) != null ? str4.equals(application.getDevelopmentPlatformVersion()) : application.getDevelopmentPlatformVersion() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getDevelopmentPlatform() {
|
||||
return this.developmentPlatform;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getDevelopmentPlatformVersion() {
|
||||
return this.developmentPlatformVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getDisplayVersion() {
|
||||
return this.displayVersion;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getIdentifier() {
|
||||
return this.identifier;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getInstallationUuid() {
|
||||
return this.installationUuid;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public CrashlyticsReport.Session.Application.Organization getOrganization() {
|
||||
return this.organization;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public String getVersion() {
|
||||
return this.version;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((this.identifier.hashCode() ^ 1000003) * 1000003) ^ this.version.hashCode()) * 1000003;
|
||||
String str = this.displayVersion;
|
||||
int hashCode2 = (hashCode ^ (str == null ? 0 : str.hashCode())) * 1000003;
|
||||
CrashlyticsReport.Session.Application.Organization organization = this.organization;
|
||||
int hashCode3 = (hashCode2 ^ (organization == null ? 0 : organization.hashCode())) * 1000003;
|
||||
String str2 = this.installationUuid;
|
||||
int hashCode4 = (hashCode3 ^ (str2 == null ? 0 : str2.hashCode())) * 1000003;
|
||||
String str3 = this.developmentPlatform;
|
||||
int hashCode5 = (hashCode4 ^ (str3 == null ? 0 : str3.hashCode())) * 1000003;
|
||||
String str4 = this.developmentPlatformVersion;
|
||||
return hashCode5 ^ (str4 != null ? str4.hashCode() : 0);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application
|
||||
public CrashlyticsReport.Session.Application.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Application{identifier=");
|
||||
sb.append(this.identifier);
|
||||
sb.append(", version=");
|
||||
sb.append(this.version);
|
||||
sb.append(", displayVersion=");
|
||||
sb.append(this.displayVersion);
|
||||
sb.append(", organization=");
|
||||
sb.append(this.organization);
|
||||
sb.append(", installationUuid=");
|
||||
sb.append(this.installationUuid);
|
||||
sb.append(", developmentPlatform=");
|
||||
sb.append(this.developmentPlatform);
|
||||
sb.append(", developmentPlatformVersion=");
|
||||
return w.r(sb, this.developmentPlatformVersion, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Application(String str, String str2, String str3, CrashlyticsReport.Session.Application.Organization organization, String str4, String str5, String str6) {
|
||||
this.identifier = str;
|
||||
this.version = str2;
|
||||
this.displayVersion = str3;
|
||||
this.organization = organization;
|
||||
this.installationUuid = str4;
|
||||
this.developmentPlatform = str5;
|
||||
this.developmentPlatformVersion = str6;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Application_Organization extends CrashlyticsReport.Session.Application.Organization {
|
||||
private final String clsId;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Application.Organization.Builder {
|
||||
private String clsId;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Organization.Builder
|
||||
public CrashlyticsReport.Session.Application.Organization build() {
|
||||
String str = this.clsId == null ? " clsId" : "";
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Application_Organization(this.clsId);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Organization.Builder
|
||||
public CrashlyticsReport.Session.Application.Organization.Builder setClsId(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null clsId");
|
||||
}
|
||||
this.clsId = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.Session.Application.Organization organization) {
|
||||
this.clsId = organization.getClsId();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Application.Organization) {
|
||||
return this.clsId.equals(((CrashlyticsReport.Session.Application.Organization) obj).getClsId());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Organization
|
||||
public String getClsId() {
|
||||
return this.clsId;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.clsId.hashCode() ^ 1000003;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Application.Organization
|
||||
public CrashlyticsReport.Session.Application.Organization.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return w.r(new StringBuilder("Organization{clsId="), this.clsId, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Application_Organization(String str) {
|
||||
this.clsId = str;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Device extends CrashlyticsReport.Session.Device {
|
||||
private final int arch;
|
||||
private final int cores;
|
||||
private final long diskSpace;
|
||||
private final String manufacturer;
|
||||
private final String model;
|
||||
private final String modelClass;
|
||||
private final long ram;
|
||||
private final boolean simulator;
|
||||
private final int state;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Device.Builder {
|
||||
private Integer arch;
|
||||
private Integer cores;
|
||||
private Long diskSpace;
|
||||
private String manufacturer;
|
||||
private String model;
|
||||
private String modelClass;
|
||||
private Long ram;
|
||||
private Boolean simulator;
|
||||
private Integer state;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device build() {
|
||||
String str = this.arch == null ? " arch" : "";
|
||||
if (this.model == null) {
|
||||
str = w.n(str, " model");
|
||||
}
|
||||
if (this.cores == null) {
|
||||
str = w.n(str, " cores");
|
||||
}
|
||||
if (this.ram == null) {
|
||||
str = w.n(str, " ram");
|
||||
}
|
||||
if (this.diskSpace == null) {
|
||||
str = w.n(str, " diskSpace");
|
||||
}
|
||||
if (this.simulator == null) {
|
||||
str = w.n(str, " simulator");
|
||||
}
|
||||
if (this.state == null) {
|
||||
str = w.n(str, " state");
|
||||
}
|
||||
if (this.manufacturer == null) {
|
||||
str = w.n(str, " manufacturer");
|
||||
}
|
||||
if (this.modelClass == null) {
|
||||
str = w.n(str, " modelClass");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Device(this.arch.intValue(), this.model, this.cores.intValue(), this.ram.longValue(), this.diskSpace.longValue(), this.simulator.booleanValue(), this.state.intValue(), this.manufacturer, this.modelClass);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setArch(int i) {
|
||||
this.arch = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setCores(int i) {
|
||||
this.cores = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setDiskSpace(long j4) {
|
||||
this.diskSpace = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setManufacturer(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null manufacturer");
|
||||
}
|
||||
this.manufacturer = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setModel(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null model");
|
||||
}
|
||||
this.model = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setModelClass(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null modelClass");
|
||||
}
|
||||
this.modelClass = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setRam(long j4) {
|
||||
this.ram = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setSimulator(boolean z3) {
|
||||
this.simulator = Boolean.valueOf(z3);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device.Builder
|
||||
public CrashlyticsReport.Session.Device.Builder setState(int i) {
|
||||
this.state = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Device) {
|
||||
CrashlyticsReport.Session.Device device = (CrashlyticsReport.Session.Device) obj;
|
||||
if (this.arch == device.getArch() && this.model.equals(device.getModel()) && this.cores == device.getCores() && this.ram == device.getRam() && this.diskSpace == device.getDiskSpace() && this.simulator == device.isSimulator() && this.state == device.getState() && this.manufacturer.equals(device.getManufacturer()) && this.modelClass.equals(device.getModelClass())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public int getArch() {
|
||||
return this.arch;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public int getCores() {
|
||||
return this.cores;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public long getDiskSpace() {
|
||||
return this.diskSpace;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public String getManufacturer() {
|
||||
return this.manufacturer;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public String getModel() {
|
||||
return this.model;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public String getModelClass() {
|
||||
return this.modelClass;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public long getRam() {
|
||||
return this.ram;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public int getState() {
|
||||
return this.state;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((((this.arch ^ 1000003) * 1000003) ^ this.model.hashCode()) * 1000003) ^ this.cores) * 1000003;
|
||||
long j4 = this.ram;
|
||||
int i = (hashCode ^ ((int) (j4 ^ (j4 >>> 32)))) * 1000003;
|
||||
long j5 = this.diskSpace;
|
||||
return this.modelClass.hashCode() ^ ((((((((i ^ ((int) (j5 ^ (j5 >>> 32)))) * 1000003) ^ (this.simulator ? 1231 : 1237)) * 1000003) ^ this.state) * 1000003) ^ this.manufacturer.hashCode()) * 1000003);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Device
|
||||
public boolean isSimulator() {
|
||||
return this.simulator;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Device{arch=");
|
||||
sb.append(this.arch);
|
||||
sb.append(", model=");
|
||||
sb.append(this.model);
|
||||
sb.append(", cores=");
|
||||
sb.append(this.cores);
|
||||
sb.append(", ram=");
|
||||
sb.append(this.ram);
|
||||
sb.append(", diskSpace=");
|
||||
sb.append(this.diskSpace);
|
||||
sb.append(", simulator=");
|
||||
sb.append(this.simulator);
|
||||
sb.append(", state=");
|
||||
sb.append(this.state);
|
||||
sb.append(", manufacturer=");
|
||||
sb.append(this.manufacturer);
|
||||
sb.append(", modelClass=");
|
||||
return w.r(sb, this.modelClass, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Device(int i, String str, int i4, long j4, long j5, boolean z3, int i5, String str2, String str3) {
|
||||
this.arch = i;
|
||||
this.model = str;
|
||||
this.cores = i4;
|
||||
this.ram = j4;
|
||||
this.diskSpace = j5;
|
||||
this.simulator = z3;
|
||||
this.state = i5;
|
||||
this.manufacturer = str2;
|
||||
this.modelClass = str3;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event extends CrashlyticsReport.Session.Event {
|
||||
private final CrashlyticsReport.Session.Event.Application app;
|
||||
private final CrashlyticsReport.Session.Event.Device device;
|
||||
private final CrashlyticsReport.Session.Event.Log log;
|
||||
private final CrashlyticsReport.Session.Event.RolloutsState rollouts;
|
||||
private final long timestamp;
|
||||
private final String type;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Builder {
|
||||
private CrashlyticsReport.Session.Event.Application app;
|
||||
private CrashlyticsReport.Session.Event.Device device;
|
||||
private CrashlyticsReport.Session.Event.Log log;
|
||||
private CrashlyticsReport.Session.Event.RolloutsState rollouts;
|
||||
private Long timestamp;
|
||||
private String type;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event build() {
|
||||
String str = this.timestamp == null ? " timestamp" : "";
|
||||
if (this.type == null) {
|
||||
str = w.n(str, " type");
|
||||
}
|
||||
if (this.app == null) {
|
||||
str = w.n(str, " app");
|
||||
}
|
||||
if (this.device == null) {
|
||||
str = w.n(str, " device");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event(this.timestamp.longValue(), this.type, this.app, this.device, this.log, this.rollouts);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setApp(CrashlyticsReport.Session.Event.Application application) {
|
||||
if (application == null) {
|
||||
throw new NullPointerException("Null app");
|
||||
}
|
||||
this.app = application;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setDevice(CrashlyticsReport.Session.Event.Device device) {
|
||||
if (device == null) {
|
||||
throw new NullPointerException("Null device");
|
||||
}
|
||||
this.device = device;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setLog(CrashlyticsReport.Session.Event.Log log) {
|
||||
this.log = log;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setRollouts(CrashlyticsReport.Session.Event.RolloutsState rolloutsState) {
|
||||
this.rollouts = rolloutsState;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setTimestamp(long j4) {
|
||||
this.timestamp = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Builder
|
||||
public CrashlyticsReport.Session.Event.Builder setType(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null type");
|
||||
}
|
||||
this.type = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.Session.Event event) {
|
||||
this.timestamp = Long.valueOf(event.getTimestamp());
|
||||
this.type = event.getType();
|
||||
this.app = event.getApp();
|
||||
this.device = event.getDevice();
|
||||
this.log = event.getLog();
|
||||
this.rollouts = event.getRollouts();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
CrashlyticsReport.Session.Event.Log log;
|
||||
CrashlyticsReport.Session.Event.RolloutsState rolloutsState;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event) {
|
||||
CrashlyticsReport.Session.Event event = (CrashlyticsReport.Session.Event) obj;
|
||||
if (this.timestamp == event.getTimestamp() && this.type.equals(event.getType()) && this.app.equals(event.getApp()) && this.device.equals(event.getDevice()) && ((log = this.log) != null ? log.equals(event.getLog()) : event.getLog() == null) && ((rolloutsState = this.rollouts) != null ? rolloutsState.equals(event.getRollouts()) : event.getRollouts() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public CrashlyticsReport.Session.Event.Application getApp() {
|
||||
return this.app;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public CrashlyticsReport.Session.Event.Device getDevice() {
|
||||
return this.device;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public CrashlyticsReport.Session.Event.Log getLog() {
|
||||
return this.log;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public CrashlyticsReport.Session.Event.RolloutsState getRollouts() {
|
||||
return this.rollouts;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public long getTimestamp() {
|
||||
return this.timestamp;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public String getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
long j4 = this.timestamp;
|
||||
int hashCode = (((((((((int) (j4 ^ (j4 >>> 32))) ^ 1000003) * 1000003) ^ this.type.hashCode()) * 1000003) ^ this.app.hashCode()) * 1000003) ^ this.device.hashCode()) * 1000003;
|
||||
CrashlyticsReport.Session.Event.Log log = this.log;
|
||||
int hashCode2 = (hashCode ^ (log == null ? 0 : log.hashCode())) * 1000003;
|
||||
CrashlyticsReport.Session.Event.RolloutsState rolloutsState = this.rollouts;
|
||||
return hashCode2 ^ (rolloutsState != null ? rolloutsState.hashCode() : 0);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event
|
||||
public CrashlyticsReport.Session.Event.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Event{timestamp=" + this.timestamp + ", type=" + this.type + ", app=" + this.app + ", device=" + this.device + ", log=" + this.log + ", rollouts=" + this.rollouts + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event(long j4, String str, CrashlyticsReport.Session.Event.Application application, CrashlyticsReport.Session.Event.Device device, CrashlyticsReport.Session.Event.Log log, CrashlyticsReport.Session.Event.RolloutsState rolloutsState) {
|
||||
this.timestamp = j4;
|
||||
this.type = str;
|
||||
this.app = application;
|
||||
this.device = device;
|
||||
this.log = log;
|
||||
this.rollouts = rolloutsState;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application extends CrashlyticsReport.Session.Event.Application {
|
||||
private final List<CrashlyticsReport.Session.Event.Application.ProcessDetails> appProcessDetails;
|
||||
private final Boolean background;
|
||||
private final CrashlyticsReport.Session.Event.Application.ProcessDetails currentProcessDetails;
|
||||
private final List<CrashlyticsReport.CustomAttribute> customAttributes;
|
||||
private final CrashlyticsReport.Session.Event.Application.Execution execution;
|
||||
private final List<CrashlyticsReport.CustomAttribute> internalKeys;
|
||||
private final int uiOrientation;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Builder {
|
||||
private List<CrashlyticsReport.Session.Event.Application.ProcessDetails> appProcessDetails;
|
||||
private Boolean background;
|
||||
private CrashlyticsReport.Session.Event.Application.ProcessDetails currentProcessDetails;
|
||||
private List<CrashlyticsReport.CustomAttribute> customAttributes;
|
||||
private CrashlyticsReport.Session.Event.Application.Execution execution;
|
||||
private List<CrashlyticsReport.CustomAttribute> internalKeys;
|
||||
private Integer uiOrientation;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application build() {
|
||||
String str = this.execution == null ? " execution" : "";
|
||||
if (this.uiOrientation == null) {
|
||||
str = w.n(str, " uiOrientation");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application(this.execution, this.customAttributes, this.internalKeys, this.background, this.currentProcessDetails, this.appProcessDetails, this.uiOrientation.intValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setAppProcessDetails(List<CrashlyticsReport.Session.Event.Application.ProcessDetails> list) {
|
||||
this.appProcessDetails = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setBackground(Boolean bool) {
|
||||
this.background = bool;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setCurrentProcessDetails(CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails) {
|
||||
this.currentProcessDetails = processDetails;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setCustomAttributes(List<CrashlyticsReport.CustomAttribute> list) {
|
||||
this.customAttributes = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setExecution(CrashlyticsReport.Session.Event.Application.Execution execution) {
|
||||
if (execution == null) {
|
||||
throw new NullPointerException("Null execution");
|
||||
}
|
||||
this.execution = execution;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setInternalKeys(List<CrashlyticsReport.CustomAttribute> list) {
|
||||
this.internalKeys = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Builder setUiOrientation(int i) {
|
||||
this.uiOrientation = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
private Builder(CrashlyticsReport.Session.Event.Application application) {
|
||||
this.execution = application.getExecution();
|
||||
this.customAttributes = application.getCustomAttributes();
|
||||
this.internalKeys = application.getInternalKeys();
|
||||
this.background = application.getBackground();
|
||||
this.currentProcessDetails = application.getCurrentProcessDetails();
|
||||
this.appProcessDetails = application.getAppProcessDetails();
|
||||
this.uiOrientation = Integer.valueOf(application.getUiOrientation());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
List<CrashlyticsReport.CustomAttribute> list;
|
||||
List<CrashlyticsReport.CustomAttribute> list2;
|
||||
Boolean bool;
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails;
|
||||
List<CrashlyticsReport.Session.Event.Application.ProcessDetails> list3;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application) {
|
||||
CrashlyticsReport.Session.Event.Application application = (CrashlyticsReport.Session.Event.Application) obj;
|
||||
if (this.execution.equals(application.getExecution()) && ((list = this.customAttributes) != null ? list.equals(application.getCustomAttributes()) : application.getCustomAttributes() == null) && ((list2 = this.internalKeys) != null ? list2.equals(application.getInternalKeys()) : application.getInternalKeys() == null) && ((bool = this.background) != null ? bool.equals(application.getBackground()) : application.getBackground() == null) && ((processDetails = this.currentProcessDetails) != null ? processDetails.equals(application.getCurrentProcessDetails()) : application.getCurrentProcessDetails() == null) && ((list3 = this.appProcessDetails) != null ? list3.equals(application.getAppProcessDetails()) : application.getAppProcessDetails() == null) && this.uiOrientation == application.getUiOrientation()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public List<CrashlyticsReport.Session.Event.Application.ProcessDetails> getAppProcessDetails() {
|
||||
return this.appProcessDetails;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public Boolean getBackground() {
|
||||
return this.background;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails getCurrentProcessDetails() {
|
||||
return this.currentProcessDetails;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public List<CrashlyticsReport.CustomAttribute> getCustomAttributes() {
|
||||
return this.customAttributes;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public CrashlyticsReport.Session.Event.Application.Execution getExecution() {
|
||||
return this.execution;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public List<CrashlyticsReport.CustomAttribute> getInternalKeys() {
|
||||
return this.internalKeys;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public int getUiOrientation() {
|
||||
return this.uiOrientation;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (this.execution.hashCode() ^ 1000003) * 1000003;
|
||||
List<CrashlyticsReport.CustomAttribute> list = this.customAttributes;
|
||||
int hashCode2 = (hashCode ^ (list == null ? 0 : list.hashCode())) * 1000003;
|
||||
List<CrashlyticsReport.CustomAttribute> list2 = this.internalKeys;
|
||||
int hashCode3 = (hashCode2 ^ (list2 == null ? 0 : list2.hashCode())) * 1000003;
|
||||
Boolean bool = this.background;
|
||||
int hashCode4 = (hashCode3 ^ (bool == null ? 0 : bool.hashCode())) * 1000003;
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails = this.currentProcessDetails;
|
||||
int hashCode5 = (hashCode4 ^ (processDetails == null ? 0 : processDetails.hashCode())) * 1000003;
|
||||
List<CrashlyticsReport.Session.Event.Application.ProcessDetails> list3 = this.appProcessDetails;
|
||||
return this.uiOrientation ^ ((hashCode5 ^ (list3 != null ? list3.hashCode() : 0)) * 1000003);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application
|
||||
public CrashlyticsReport.Session.Event.Application.Builder toBuilder() {
|
||||
return new Builder(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Application{execution=");
|
||||
sb.append(this.execution);
|
||||
sb.append(", customAttributes=");
|
||||
sb.append(this.customAttributes);
|
||||
sb.append(", internalKeys=");
|
||||
sb.append(this.internalKeys);
|
||||
sb.append(", background=");
|
||||
sb.append(this.background);
|
||||
sb.append(", currentProcessDetails=");
|
||||
sb.append(this.currentProcessDetails);
|
||||
sb.append(", appProcessDetails=");
|
||||
sb.append(this.appProcessDetails);
|
||||
sb.append(", uiOrientation=");
|
||||
return a.m(sb, this.uiOrientation, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application(CrashlyticsReport.Session.Event.Application.Execution execution, List<CrashlyticsReport.CustomAttribute> list, List<CrashlyticsReport.CustomAttribute> list2, Boolean bool, CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails, List<CrashlyticsReport.Session.Event.Application.ProcessDetails> list3, int i) {
|
||||
this.execution = execution;
|
||||
this.customAttributes = list;
|
||||
this.internalKeys = list2;
|
||||
this.background = bool;
|
||||
this.currentProcessDetails = processDetails;
|
||||
this.appProcessDetails = list3;
|
||||
this.uiOrientation = i;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution extends CrashlyticsReport.Session.Event.Application.Execution {
|
||||
private final CrashlyticsReport.ApplicationExitInfo appExitInfo;
|
||||
private final List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> binaries;
|
||||
private final CrashlyticsReport.Session.Event.Application.Execution.Exception exception;
|
||||
private final CrashlyticsReport.Session.Event.Application.Execution.Signal signal;
|
||||
private final List<CrashlyticsReport.Session.Event.Application.Execution.Thread> threads;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.Builder {
|
||||
private CrashlyticsReport.ApplicationExitInfo appExitInfo;
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> binaries;
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Exception exception;
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Signal signal;
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.Thread> threads;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution build() {
|
||||
String str = this.signal == null ? " signal" : "";
|
||||
if (this.binaries == null) {
|
||||
str = w.n(str, " binaries");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution(this.threads, this.exception, this.appExitInfo, this.signal, this.binaries);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Builder setAppExitInfo(CrashlyticsReport.ApplicationExitInfo applicationExitInfo) {
|
||||
this.appExitInfo = applicationExitInfo;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Builder setBinaries(List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> list) {
|
||||
if (list == null) {
|
||||
throw new NullPointerException("Null binaries");
|
||||
}
|
||||
this.binaries = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Builder setException(CrashlyticsReport.Session.Event.Application.Execution.Exception exception) {
|
||||
this.exception = exception;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Builder setSignal(CrashlyticsReport.Session.Event.Application.Execution.Signal signal) {
|
||||
if (signal == null) {
|
||||
throw new NullPointerException("Null signal");
|
||||
}
|
||||
this.signal = signal;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Builder setThreads(List<CrashlyticsReport.Session.Event.Application.Execution.Thread> list) {
|
||||
this.threads = list;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution execution = (CrashlyticsReport.Session.Event.Application.Execution) obj;
|
||||
List<CrashlyticsReport.Session.Event.Application.Execution.Thread> list = this.threads;
|
||||
if (list != null ? list.equals(execution.getThreads()) : execution.getThreads() == null) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception exception = this.exception;
|
||||
if (exception != null ? exception.equals(execution.getException()) : execution.getException() == null) {
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInfo = this.appExitInfo;
|
||||
if (applicationExitInfo != null ? applicationExitInfo.equals(execution.getAppExitInfo()) : execution.getAppExitInfo() == null) {
|
||||
if (this.signal.equals(execution.getSignal()) && this.binaries.equals(execution.getBinaries())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution
|
||||
public CrashlyticsReport.ApplicationExitInfo getAppExitInfo() {
|
||||
return this.appExitInfo;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution
|
||||
public List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> getBinaries() {
|
||||
return this.binaries;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception getException() {
|
||||
return this.exception;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Signal getSignal() {
|
||||
return this.signal;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution
|
||||
public List<CrashlyticsReport.Session.Event.Application.Execution.Thread> getThreads() {
|
||||
return this.threads;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
List<CrashlyticsReport.Session.Event.Application.Execution.Thread> list = this.threads;
|
||||
int hashCode = ((list == null ? 0 : list.hashCode()) ^ 1000003) * 1000003;
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception exception = this.exception;
|
||||
int hashCode2 = (hashCode ^ (exception == null ? 0 : exception.hashCode())) * 1000003;
|
||||
CrashlyticsReport.ApplicationExitInfo applicationExitInfo = this.appExitInfo;
|
||||
return this.binaries.hashCode() ^ ((((hashCode2 ^ (applicationExitInfo != null ? applicationExitInfo.hashCode() : 0)) * 1000003) ^ this.signal.hashCode()) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Execution{threads=" + this.threads + ", exception=" + this.exception + ", appExitInfo=" + this.appExitInfo + ", signal=" + this.signal + ", binaries=" + this.binaries + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution(List<CrashlyticsReport.Session.Event.Application.Execution.Thread> list, CrashlyticsReport.Session.Event.Application.Execution.Exception exception, CrashlyticsReport.ApplicationExitInfo applicationExitInfo, CrashlyticsReport.Session.Event.Application.Execution.Signal signal, List<CrashlyticsReport.Session.Event.Application.Execution.BinaryImage> list2) {
|
||||
this.threads = list;
|
||||
this.exception = exception;
|
||||
this.appExitInfo = applicationExitInfo;
|
||||
this.signal = signal;
|
||||
this.binaries = list2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import com.google.firebase.encoders.annotations.Encodable;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage extends CrashlyticsReport.Session.Event.Application.Execution.BinaryImage {
|
||||
private final long baseAddress;
|
||||
private final String name;
|
||||
private final long size;
|
||||
private final String uuid;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder {
|
||||
private Long baseAddress;
|
||||
private String name;
|
||||
private Long size;
|
||||
private String uuid;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.BinaryImage build() {
|
||||
String str = this.baseAddress == null ? " baseAddress" : "";
|
||||
if (this.size == null) {
|
||||
str = w.n(str, " size");
|
||||
}
|
||||
if (this.name == null) {
|
||||
str = w.n(str, " name");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage(this.baseAddress.longValue(), this.size.longValue(), this.name, this.uuid);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder setBaseAddress(long j4) {
|
||||
this.baseAddress = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder setName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null name");
|
||||
}
|
||||
this.name = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder setSize(long j4) {
|
||||
this.size = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.BinaryImage.Builder setUuid(String str) {
|
||||
this.uuid = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution.BinaryImage) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.BinaryImage binaryImage = (CrashlyticsReport.Session.Event.Application.Execution.BinaryImage) obj;
|
||||
if (this.baseAddress == binaryImage.getBaseAddress() && this.size == binaryImage.getSize() && this.name.equals(binaryImage.getName()) && ((str = this.uuid) != null ? str.equals(binaryImage.getUuid()) : binaryImage.getUuid() == null)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage
|
||||
public long getBaseAddress() {
|
||||
return this.baseAddress;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage
|
||||
public long getSize() {
|
||||
return this.size;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.BinaryImage
|
||||
@Encodable.Ignore
|
||||
public String getUuid() {
|
||||
return this.uuid;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
long j4 = this.baseAddress;
|
||||
long j5 = this.size;
|
||||
int hashCode = (((((((int) (j4 ^ (j4 >>> 32))) ^ 1000003) * 1000003) ^ ((int) ((j5 >>> 32) ^ j5))) * 1000003) ^ this.name.hashCode()) * 1000003;
|
||||
String str = this.uuid;
|
||||
return (str == null ? 0 : str.hashCode()) ^ hashCode;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("BinaryImage{baseAddress=");
|
||||
sb.append(this.baseAddress);
|
||||
sb.append(", size=");
|
||||
sb.append(this.size);
|
||||
sb.append(", name=");
|
||||
sb.append(this.name);
|
||||
sb.append(", uuid=");
|
||||
return w.r(sb, this.uuid, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution_BinaryImage(long j4, long j5, String str, String str2) {
|
||||
this.baseAddress = j4;
|
||||
this.size = j5;
|
||||
this.name = str;
|
||||
this.uuid = str2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception extends CrashlyticsReport.Session.Event.Application.Execution.Exception {
|
||||
private final CrashlyticsReport.Session.Event.Application.Execution.Exception causedBy;
|
||||
private final List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> frames;
|
||||
private final int overflowCount;
|
||||
private final String reason;
|
||||
private final String type;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder {
|
||||
private CrashlyticsReport.Session.Event.Application.Execution.Exception causedBy;
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> frames;
|
||||
private Integer overflowCount;
|
||||
private String reason;
|
||||
private String type;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception build() {
|
||||
String str = this.type == null ? " type" : "";
|
||||
if (this.frames == null) {
|
||||
str = w.n(str, " frames");
|
||||
}
|
||||
if (this.overflowCount == null) {
|
||||
str = w.n(str, " overflowCount");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception(this.type, this.reason, this.frames, this.causedBy, this.overflowCount.intValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder setCausedBy(CrashlyticsReport.Session.Event.Application.Execution.Exception exception) {
|
||||
this.causedBy = exception;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder setFrames(List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> list) {
|
||||
if (list == null) {
|
||||
throw new NullPointerException("Null frames");
|
||||
}
|
||||
this.frames = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder setOverflowCount(int i) {
|
||||
this.overflowCount = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder setReason(String str) {
|
||||
this.reason = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception.Builder setType(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null type");
|
||||
}
|
||||
this.type = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception exception;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution.Exception) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception exception2 = (CrashlyticsReport.Session.Event.Application.Execution.Exception) obj;
|
||||
if (this.type.equals(exception2.getType()) && ((str = this.reason) != null ? str.equals(exception2.getReason()) : exception2.getReason() == null) && this.frames.equals(exception2.getFrames()) && ((exception = this.causedBy) != null ? exception.equals(exception2.getCausedBy()) : exception2.getCausedBy() == null) && this.overflowCount == exception2.getOverflowCount()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Exception getCausedBy() {
|
||||
return this.causedBy;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception
|
||||
public List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> getFrames() {
|
||||
return this.frames;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception
|
||||
public int getOverflowCount() {
|
||||
return this.overflowCount;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception
|
||||
public String getReason() {
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Exception
|
||||
public String getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (this.type.hashCode() ^ 1000003) * 1000003;
|
||||
String str = this.reason;
|
||||
int hashCode2 = (((hashCode ^ (str == null ? 0 : str.hashCode())) * 1000003) ^ this.frames.hashCode()) * 1000003;
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Exception exception = this.causedBy;
|
||||
return this.overflowCount ^ ((hashCode2 ^ (exception != null ? exception.hashCode() : 0)) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Exception{type=");
|
||||
sb.append(this.type);
|
||||
sb.append(", reason=");
|
||||
sb.append(this.reason);
|
||||
sb.append(", frames=");
|
||||
sb.append(this.frames);
|
||||
sb.append(", causedBy=");
|
||||
sb.append(this.causedBy);
|
||||
sb.append(", overflowCount=");
|
||||
return a.m(sb, this.overflowCount, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Exception(String str, String str2, List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> list, CrashlyticsReport.Session.Event.Application.Execution.Exception exception, int i) {
|
||||
this.type = str;
|
||||
this.reason = str2;
|
||||
this.frames = list;
|
||||
this.causedBy = exception;
|
||||
this.overflowCount = i;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal extends CrashlyticsReport.Session.Event.Application.Execution.Signal {
|
||||
private final long address;
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder {
|
||||
private Long address;
|
||||
private String code;
|
||||
private String name;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Signal build() {
|
||||
String str = this.name == null ? " name" : "";
|
||||
if (this.code == null) {
|
||||
str = w.n(str, " code");
|
||||
}
|
||||
if (this.address == null) {
|
||||
str = w.n(str, " address");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal(this.name, this.code, this.address.longValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder setAddress(long j4) {
|
||||
this.address = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder setCode(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null code");
|
||||
}
|
||||
this.code = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Signal.Builder setName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null name");
|
||||
}
|
||||
this.name = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution.Signal) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Signal signal = (CrashlyticsReport.Session.Event.Application.Execution.Signal) obj;
|
||||
if (this.name.equals(signal.getName()) && this.code.equals(signal.getCode()) && this.address == signal.getAddress()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal
|
||||
public long getAddress() {
|
||||
return this.address;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Signal
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
int hashCode = (((this.name.hashCode() ^ 1000003) * 1000003) ^ this.code.hashCode()) * 1000003;
|
||||
long j4 = this.address;
|
||||
return ((int) (j4 ^ (j4 >>> 32))) ^ hashCode;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Signal{name=");
|
||||
sb.append(this.name);
|
||||
sb.append(", code=");
|
||||
sb.append(this.code);
|
||||
sb.append(", address=");
|
||||
return w.q(sb, this.address, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Signal(String str, String str2, long j4) {
|
||||
this.name = str;
|
||||
this.code = str2;
|
||||
this.address = j4;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread extends CrashlyticsReport.Session.Event.Application.Execution.Thread {
|
||||
private final List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> frames;
|
||||
private final int importance;
|
||||
private final String name;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder {
|
||||
private List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> frames;
|
||||
private Integer importance;
|
||||
private String name;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread build() {
|
||||
String str = this.name == null ? " name" : "";
|
||||
if (this.importance == null) {
|
||||
str = w.n(str, " importance");
|
||||
}
|
||||
if (this.frames == null) {
|
||||
str = w.n(str, " frames");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread(this.name, this.importance.intValue(), this.frames);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder setFrames(List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> list) {
|
||||
if (list == null) {
|
||||
throw new NullPointerException("Null frames");
|
||||
}
|
||||
this.frames = list;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder setImportance(int i) {
|
||||
this.importance = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Builder setName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null name");
|
||||
}
|
||||
this.name = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution.Thread) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Thread thread = (CrashlyticsReport.Session.Event.Application.Execution.Thread) obj;
|
||||
if (this.name.equals(thread.getName()) && this.importance == thread.getImportance() && this.frames.equals(thread.getFrames())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread
|
||||
public List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> getFrames() {
|
||||
return this.frames;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread
|
||||
public int getImportance() {
|
||||
return this.importance;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.frames.hashCode() ^ ((((this.name.hashCode() ^ 1000003) * 1000003) ^ this.importance) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Thread{name=" + this.name + ", importance=" + this.importance + ", frames=" + this.frames + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread(String str, int i, List<CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame> list) {
|
||||
this.name = str;
|
||||
this.importance = i;
|
||||
this.frames = list;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame extends CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame {
|
||||
private final String file;
|
||||
private final int importance;
|
||||
private final long offset;
|
||||
private final long pc;
|
||||
private final String symbol;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder {
|
||||
private String file;
|
||||
private Integer importance;
|
||||
private Long offset;
|
||||
private Long pc;
|
||||
private String symbol;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame build() {
|
||||
String str = this.pc == null ? " pc" : "";
|
||||
if (this.symbol == null) {
|
||||
str = w.n(str, " symbol");
|
||||
}
|
||||
if (this.offset == null) {
|
||||
str = w.n(str, " offset");
|
||||
}
|
||||
if (this.importance == null) {
|
||||
str = w.n(str, " importance");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame(this.pc.longValue(), this.symbol, this.file, this.offset.longValue(), this.importance.intValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder setFile(String str) {
|
||||
this.file = str;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder setImportance(int i) {
|
||||
this.importance = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder setOffset(long j4) {
|
||||
this.offset = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder setPc(long j4) {
|
||||
this.pc = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame.Builder setSymbol(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null symbol");
|
||||
}
|
||||
this.symbol = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
String str;
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame) {
|
||||
CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame frame = (CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame) obj;
|
||||
if (this.pc == frame.getPc() && this.symbol.equals(frame.getSymbol()) && ((str = this.file) != null ? str.equals(frame.getFile()) : frame.getFile() == null) && this.offset == frame.getOffset() && this.importance == frame.getImportance()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame
|
||||
public String getFile() {
|
||||
return this.file;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame
|
||||
public int getImportance() {
|
||||
return this.importance;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame
|
||||
public long getOffset() {
|
||||
return this.offset;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame
|
||||
public long getPc() {
|
||||
return this.pc;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.Execution.Thread.Frame
|
||||
public String getSymbol() {
|
||||
return this.symbol;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
long j4 = this.pc;
|
||||
int hashCode = (((((int) (j4 ^ (j4 >>> 32))) ^ 1000003) * 1000003) ^ this.symbol.hashCode()) * 1000003;
|
||||
String str = this.file;
|
||||
int hashCode2 = (hashCode ^ (str == null ? 0 : str.hashCode())) * 1000003;
|
||||
long j5 = this.offset;
|
||||
return this.importance ^ ((hashCode2 ^ ((int) ((j5 >>> 32) ^ j5))) * 1000003);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Frame{pc=");
|
||||
sb.append(this.pc);
|
||||
sb.append(", symbol=");
|
||||
sb.append(this.symbol);
|
||||
sb.append(", file=");
|
||||
sb.append(this.file);
|
||||
sb.append(", offset=");
|
||||
sb.append(this.offset);
|
||||
sb.append(", importance=");
|
||||
return a.m(sb, this.importance, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_Execution_Thread_Frame(long j4, String str, String str2, long j5, int i) {
|
||||
this.pc = j4;
|
||||
this.symbol = str;
|
||||
this.file = str2;
|
||||
this.offset = j5;
|
||||
this.importance = i;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Application_ProcessDetails extends CrashlyticsReport.Session.Event.Application.ProcessDetails {
|
||||
private final boolean defaultProcess;
|
||||
private final int importance;
|
||||
private final int pid;
|
||||
private final String processName;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder {
|
||||
private Boolean defaultProcess;
|
||||
private Integer importance;
|
||||
private Integer pid;
|
||||
private String processName;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails build() {
|
||||
String str = this.processName == null ? " processName" : "";
|
||||
if (this.pid == null) {
|
||||
str = w.n(str, " pid");
|
||||
}
|
||||
if (this.importance == null) {
|
||||
str = w.n(str, " importance");
|
||||
}
|
||||
if (this.defaultProcess == null) {
|
||||
str = w.n(str, " defaultProcess");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Application_ProcessDetails(this.processName, this.pid.intValue(), this.importance.intValue(), this.defaultProcess.booleanValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder setDefaultProcess(boolean z3) {
|
||||
this.defaultProcess = Boolean.valueOf(z3);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder setImportance(int i) {
|
||||
this.importance = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder setPid(int i) {
|
||||
this.pid = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder
|
||||
public CrashlyticsReport.Session.Event.Application.ProcessDetails.Builder setProcessName(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null processName");
|
||||
}
|
||||
this.processName = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Application.ProcessDetails) {
|
||||
CrashlyticsReport.Session.Event.Application.ProcessDetails processDetails = (CrashlyticsReport.Session.Event.Application.ProcessDetails) obj;
|
||||
if (this.processName.equals(processDetails.getProcessName()) && this.pid == processDetails.getPid() && this.importance == processDetails.getImportance() && this.defaultProcess == processDetails.isDefaultProcess()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails
|
||||
public int getImportance() {
|
||||
return this.importance;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails
|
||||
public int getPid() {
|
||||
return this.pid;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails
|
||||
public String getProcessName() {
|
||||
return this.processName;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return (this.defaultProcess ? 1231 : 1237) ^ ((((((this.processName.hashCode() ^ 1000003) * 1000003) ^ this.pid) * 1000003) ^ this.importance) * 1000003);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Application.ProcessDetails
|
||||
public boolean isDefaultProcess() {
|
||||
return this.defaultProcess;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "ProcessDetails{processName=" + this.processName + ", pid=" + this.pid + ", importance=" + this.importance + ", defaultProcess=" + this.defaultProcess + "}";
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Application_ProcessDetails(String str, int i, int i4, boolean z3) {
|
||||
this.processName = str;
|
||||
this.pid = i;
|
||||
this.importance = i4;
|
||||
this.defaultProcess = z3;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Device extends CrashlyticsReport.Session.Event.Device {
|
||||
private final Double batteryLevel;
|
||||
private final int batteryVelocity;
|
||||
private final long diskUsed;
|
||||
private final int orientation;
|
||||
private final boolean proximityOn;
|
||||
private final long ramUsed;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Device.Builder {
|
||||
private Double batteryLevel;
|
||||
private Integer batteryVelocity;
|
||||
private Long diskUsed;
|
||||
private Integer orientation;
|
||||
private Boolean proximityOn;
|
||||
private Long ramUsed;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device build() {
|
||||
String str = this.batteryVelocity == null ? " batteryVelocity" : "";
|
||||
if (this.proximityOn == null) {
|
||||
str = w.n(str, " proximityOn");
|
||||
}
|
||||
if (this.orientation == null) {
|
||||
str = w.n(str, " orientation");
|
||||
}
|
||||
if (this.ramUsed == null) {
|
||||
str = w.n(str, " ramUsed");
|
||||
}
|
||||
if (this.diskUsed == null) {
|
||||
str = w.n(str, " diskUsed");
|
||||
}
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Device(this.batteryLevel, this.batteryVelocity.intValue(), this.proximityOn.booleanValue(), this.orientation.intValue(), this.ramUsed.longValue(), this.diskUsed.longValue());
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setBatteryLevel(Double d4) {
|
||||
this.batteryLevel = d4;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setBatteryVelocity(int i) {
|
||||
this.batteryVelocity = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setDiskUsed(long j4) {
|
||||
this.diskUsed = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setOrientation(int i) {
|
||||
this.orientation = Integer.valueOf(i);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setProximityOn(boolean z3) {
|
||||
this.proximityOn = Boolean.valueOf(z3);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device.Builder
|
||||
public CrashlyticsReport.Session.Event.Device.Builder setRamUsed(long j4) {
|
||||
this.ramUsed = Long.valueOf(j4);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Device) {
|
||||
CrashlyticsReport.Session.Event.Device device = (CrashlyticsReport.Session.Event.Device) obj;
|
||||
Double d4 = this.batteryLevel;
|
||||
if (d4 != null ? d4.equals(device.getBatteryLevel()) : device.getBatteryLevel() == null) {
|
||||
if (this.batteryVelocity == device.getBatteryVelocity() && this.proximityOn == device.isProximityOn() && this.orientation == device.getOrientation() && this.ramUsed == device.getRamUsed() && this.diskUsed == device.getDiskUsed()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public Double getBatteryLevel() {
|
||||
return this.batteryLevel;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public int getBatteryVelocity() {
|
||||
return this.batteryVelocity;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public long getDiskUsed() {
|
||||
return this.diskUsed;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public int getOrientation() {
|
||||
return this.orientation;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public long getRamUsed() {
|
||||
return this.ramUsed;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
Double d4 = this.batteryLevel;
|
||||
int hashCode = ((((((((d4 == null ? 0 : d4.hashCode()) ^ 1000003) * 1000003) ^ this.batteryVelocity) * 1000003) ^ (this.proximityOn ? 1231 : 1237)) * 1000003) ^ this.orientation) * 1000003;
|
||||
long j4 = this.ramUsed;
|
||||
long j5 = this.diskUsed;
|
||||
return ((int) (j5 ^ (j5 >>> 32))) ^ ((hashCode ^ ((int) (j4 ^ (j4 >>> 32)))) * 1000003);
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Device
|
||||
public boolean isProximityOn() {
|
||||
return this.proximityOn;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Device{batteryLevel=");
|
||||
sb.append(this.batteryLevel);
|
||||
sb.append(", batteryVelocity=");
|
||||
sb.append(this.batteryVelocity);
|
||||
sb.append(", proximityOn=");
|
||||
sb.append(this.proximityOn);
|
||||
sb.append(", orientation=");
|
||||
sb.append(this.orientation);
|
||||
sb.append(", ramUsed=");
|
||||
sb.append(this.ramUsed);
|
||||
sb.append(", diskUsed=");
|
||||
return w.q(sb, this.diskUsed, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Device(Double d4, int i, boolean z3, int i4, long j4, long j5) {
|
||||
this.batteryLevel = d4;
|
||||
this.batteryVelocity = i;
|
||||
this.proximityOn = z3;
|
||||
this.orientation = i4;
|
||||
this.ramUsed = j4;
|
||||
this.diskUsed = j5;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.google.firebase.crashlytics.internal.model;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.crashlytics.internal.model.CrashlyticsReport;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class AutoValue_CrashlyticsReport_Session_Event_Log extends CrashlyticsReport.Session.Event.Log {
|
||||
private final String content;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder extends CrashlyticsReport.Session.Event.Log.Builder {
|
||||
private String content;
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Log.Builder
|
||||
public CrashlyticsReport.Session.Event.Log build() {
|
||||
String str = this.content == null ? " content" : "";
|
||||
if (str.isEmpty()) {
|
||||
return new AutoValue_CrashlyticsReport_Session_Event_Log(this.content);
|
||||
}
|
||||
throw new IllegalStateException("Missing required properties:".concat(str));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Log.Builder
|
||||
public CrashlyticsReport.Session.Event.Log.Builder setContent(String str) {
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null content");
|
||||
}
|
||||
this.content = str;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof CrashlyticsReport.Session.Event.Log) {
|
||||
return this.content.equals(((CrashlyticsReport.Session.Event.Log) obj).getContent());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.Event.Log
|
||||
public String getContent() {
|
||||
return this.content;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.content.hashCode() ^ 1000003;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return w.r(new StringBuilder("Log{content="), this.content, "}");
|
||||
}
|
||||
|
||||
private AutoValue_CrashlyticsReport_Session_Event_Log(String str) {
|
||||
this.content = str;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user