FirebaseCrashlytics.smali
.class public Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
.super Ljava/lang/Object;
.source "FirebaseCrashlytics.java"
# static fields
.field private static final APP_EXCEPTION_CALLBACK_TIMEOUT_MS:I = 0x1f4
.field private static final FIREBASE_CRASHLYTICS_ANALYTICS_ORIGIN:Ljava/lang/String; = "clx"
.field private static final LEGACY_CRASH_ANALYTICS_ORIGIN:Ljava/lang/String; = "crash"
# instance fields
.field private final core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
# direct methods
.method private constructor <init>(Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;)V
.registers 2
.line 215
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 216
iput-object p1, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
return-void
.end method
.method public static getInstance()Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
.registers 2
.line 229
invoke-static {}, Lcom/google/firebase/FirebaseApp;->getInstance()Lcom/google/firebase/FirebaseApp;
move-result-object v0
.line 230
const-class v1, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
invoke-virtual {v0, v1}, Lcom/google/firebase/FirebaseApp;->get(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
if-eqz v0, :cond_f
return-object v0
.line 232
:cond_f
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "FirebaseCrashlytics component is not present."
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method static init(Lcom/google/firebase/FirebaseApp;Lcom/google/firebase/installations/FirebaseInstallationsApi;Lcom/google/firebase/crashlytics/internal/CrashlyticsNativeComponent;Lcom/google/firebase/analytics/connector/AnalyticsConnector;)Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
.registers 20
move-object/from16 v8, p0
move-object/from16 v0, p3
.line 66
invoke-virtual/range {p0 .. p0}, Lcom/google/firebase/FirebaseApp;->getApplicationContext()Landroid/content/Context;
move-result-object v9
.line 68
invoke-virtual {v9}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v1
.line 69
new-instance v2, Lcom/google/firebase/crashlytics/internal/common/IdManager;
move-object/from16 v3, p1
invoke-direct {v2, v9, v1, v3}, Lcom/google/firebase/crashlytics/internal/common/IdManager;-><init>(Landroid/content/Context;Ljava/lang/String;Lcom/google/firebase/installations/FirebaseInstallationsApi;)V
.line 71
new-instance v4, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;
invoke-direct {v4, v8}, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;-><init>(Lcom/google/firebase/FirebaseApp;)V
if-nez p2, :cond_21
.line 74
new-instance v1, Lcom/google/firebase/crashlytics/internal/MissingNativeComponent;
invoke-direct {v1}, Lcom/google/firebase/crashlytics/internal/MissingNativeComponent;-><init>()V
move-object v3, v1
goto :goto_23
:cond_21
move-object/from16 v3, p2
.line 77
:goto_23
new-instance v11, Lcom/google/firebase/crashlytics/internal/Onboarding;
invoke-direct {v11, v8, v9, v2, v4}, Lcom/google/firebase/crashlytics/internal/Onboarding;-><init>(Lcom/google/firebase/FirebaseApp;Landroid/content/Context;Lcom/google/firebase/crashlytics/internal/common/IdManager;Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;)V
if-eqz v0, :cond_71
.line 88
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v1
const-string v5, "Firebase Analytics is available."
invoke-virtual {v1, v5}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 89
new-instance v1, Lcom/google/firebase/crashlytics/internal/analytics/CrashlyticsOriginAnalyticsEventLogger;
invoke-direct {v1, v0}, Lcom/google/firebase/crashlytics/internal/analytics/CrashlyticsOriginAnalyticsEventLogger;-><init>(Lcom/google/firebase/analytics/connector/AnalyticsConnector;)V
.line 94
new-instance v5, Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;
invoke-direct {v5}, Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;-><init>()V
.line 100
invoke-static {v0, v5}, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->subscribeToAnalyticsEvents(Lcom/google/firebase/analytics/connector/AnalyticsConnector;Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;)Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorHandle;
move-result-object v0
if-eqz v0, :cond_62
.line 103
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v6, "Firebase Analytics listener registered successfully."
invoke-virtual {v0, v6}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 105
new-instance v0, Lcom/google/firebase/crashlytics/internal/analytics/BreadcrumbAnalyticsEventReceiver;
invoke-direct {v0}, Lcom/google/firebase/crashlytics/internal/analytics/BreadcrumbAnalyticsEventReceiver;-><init>()V
.line 112
new-instance v6, Lcom/google/firebase/crashlytics/internal/analytics/BlockingAnalyticsEventLogger;
const/16 v7, 0x1f4
sget-object v10, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-direct {v6, v1, v7, v10}, Lcom/google/firebase/crashlytics/internal/analytics/BlockingAnalyticsEventLogger;-><init>(Lcom/google/firebase/crashlytics/internal/analytics/CrashlyticsOriginAnalyticsEventLogger;ILjava/util/concurrent/TimeUnit;)V
.line 119
invoke-virtual {v5, v0}, Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;->setBreadcrumbEventReceiver(Lcom/google/firebase/crashlytics/internal/analytics/AnalyticsEventReceiver;)V
.line 120
invoke-virtual {v5, v6}, Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;->setCrashlyticsOriginEventReceiver(Lcom/google/firebase/crashlytics/internal/analytics/AnalyticsEventReceiver;)V
move-object v1, v6
goto :goto_84
.line 128
:cond_62
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v5, "Firebase Analytics listener registration failed."
invoke-virtual {v0, v5}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 131
new-instance v0, Lcom/google/firebase/crashlytics/internal/breadcrumbs/DisabledBreadcrumbSource;
invoke-direct {v0}, Lcom/google/firebase/crashlytics/internal/breadcrumbs/DisabledBreadcrumbSource;-><init>()V
goto :goto_84
.line 138
:cond_71
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v1, "Firebase Analytics is unavailable."
invoke-virtual {v0, v1}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
.line 139
new-instance v0, Lcom/google/firebase/crashlytics/internal/breadcrumbs/DisabledBreadcrumbSource;
invoke-direct {v0}, Lcom/google/firebase/crashlytics/internal/breadcrumbs/DisabledBreadcrumbSource;-><init>()V
.line 140
new-instance v1, Lcom/google/firebase/crashlytics/internal/analytics/UnavailableAnalyticsEventLogger;
invoke-direct {v1}, Lcom/google/firebase/crashlytics/internal/analytics/UnavailableAnalyticsEventLogger;-><init>()V
:goto_84
move-object v5, v0
move-object v6, v1
const-string v0, "Crashlytics Exception Handler"
.line 144
invoke-static {v0}, Lcom/google/firebase/crashlytics/internal/common/ExecutorUtils;->buildSingleThreadExecutorService(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;
move-result-object v7
.line 145
new-instance v15, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
move-object v0, v15
move-object/from16 v1, p0
invoke-direct/range {v0 .. v7}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;-><init>(Lcom/google/firebase/FirebaseApp;Lcom/google/firebase/crashlytics/internal/common/IdManager;Lcom/google/firebase/crashlytics/internal/CrashlyticsNativeComponent;Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;Lcom/google/firebase/crashlytics/internal/breadcrumbs/BreadcrumbSource;Lcom/google/firebase/crashlytics/internal/analytics/AnalyticsEventLogger;Ljava/util/concurrent/ExecutorService;)V
.line 155
invoke-virtual {v11}, Lcom/google/firebase/crashlytics/internal/Onboarding;->onPreExecute()Z
move-result v0
if-nez v0, :cond_a5
.line 156
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v1, "Unable to start Crashlytics."
invoke-virtual {v0, v1}, Lcom/google/firebase/crashlytics/internal/Logger;->e(Ljava/lang/String;)V
const/4 v0, 0x0
return-object v0
:cond_a5
const-string v0, "com.google.firebase.crashlytics.startup"
.line 161
invoke-static {v0}, Lcom/google/firebase/crashlytics/internal/common/ExecutorUtils;->buildSingleThreadExecutorService(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
.line 163
invoke-virtual {v11, v9, v8, v0}, Lcom/google/firebase/crashlytics/internal/Onboarding;->retrieveSettingsData(Landroid/content/Context;Lcom/google/firebase/FirebaseApp;Ljava/util/concurrent/Executor;)Lcom/google/firebase/crashlytics/internal/settings/SettingsController;
move-result-object v13
.line 165
invoke-virtual {v15, v13}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->onPreExecute(Lcom/google/firebase/crashlytics/internal/settings/SettingsDataProvider;)Z
move-result v14
.line 167
new-instance v1, Lcom/google/firebase/crashlytics/FirebaseCrashlytics$1;
move-object v10, v1
move-object v12, v0
move-object v2, v15
invoke-direct/range {v10 .. v15}, Lcom/google/firebase/crashlytics/FirebaseCrashlytics$1;-><init>(Lcom/google/firebase/crashlytics/internal/Onboarding;Ljava/util/concurrent/ExecutorService;Lcom/google/firebase/crashlytics/internal/settings/SettingsController;ZLcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;)V
invoke-static {v0, v1}, Lcom/google/android/gms/tasks/Tasks;->call(Ljava/util/concurrent/Executor;Ljava/util/concurrent/Callable;)Lcom/google/android/gms/tasks/Task;
.line 180
new-instance v0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;
invoke-direct {v0, v2}, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;-><init>(Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;)V
return-object v0
.end method
.method private static subscribeToAnalyticsEvents(Lcom/google/firebase/analytics/connector/AnalyticsConnector;Lcom/google/firebase/crashlytics/CrashlyticsAnalyticsListener;)Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorHandle;
.registers 4
const-string v0, "clx"
.line 187
invoke-interface {p0, v0, p1}, Lcom/google/firebase/analytics/connector/AnalyticsConnector;->registerAnalyticsConnectorListener(Ljava/lang/String;Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorListener;)Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorHandle;
move-result-object v0
if-nez v0, :cond_22
.line 191
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v1, "Could not register AnalyticsConnectorListener with Crashlytics origin."
.line 192
invoke-virtual {v0, v1}, Lcom/google/firebase/crashlytics/internal/Logger;->d(Ljava/lang/String;)V
const-string v0, "crash"
.line 196
invoke-interface {p0, v0, p1}, Lcom/google/firebase/analytics/connector/AnalyticsConnector;->registerAnalyticsConnectorListener(Ljava/lang/String;Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorListener;)Lcom/google/firebase/analytics/connector/AnalyticsConnector$AnalyticsConnectorHandle;
move-result-object v0
if-eqz v0, :cond_22
.line 202
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object p0
const-string p1, "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."
.line 203
invoke-virtual {p0, p1}, Lcom/google/firebase/crashlytics/internal/Logger;->w(Ljava/lang/String;)V
:cond_22
return-object v0
.end method
# virtual methods
.method public checkForUnsentReports()Lcom/google/android/gms/tasks/Task;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/android/gms/tasks/Task<",
"Ljava/lang/Boolean;",
">;"
}
.end annotation
.line 416
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->checkForUnsentReports()Lcom/google/android/gms/tasks/Task;
move-result-object v0
return-object v0
.end method
.method public deleteUnsentReports()V
.registers 2
.line 432
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->deleteUnsentReports()Lcom/google/android/gms/tasks/Task;
return-void
.end method
.method public didCrashOnPreviousExecution()Z
.registers 2
.line 443
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->didCrashOnPreviousExecution()Z
move-result v0
return v0
.end method
.method public log(Ljava/lang/String;)V
.registers 3
.line 262
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0, p1}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->log(Ljava/lang/String;)V
return-void
.end method
.method public recordException(Ljava/lang/Throwable;)V
.registers 3
if-nez p1, :cond_c
.line 244
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->getLogger()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object p1
const-string v0, "Crashlytics is ignoring a request to log a null exception."
invoke-virtual {p1, v0}, Lcom/google/firebase/crashlytics/internal/Logger;->w(Ljava/lang/String;)V
return-void
.line 247
:cond_c
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0, p1}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->logException(Ljava/lang/Throwable;)V
return-void
.end method
.method public sendUnsentReports()V
.registers 2
.line 424
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->sendUnsentReports()Lcom/google/android/gms/tasks/Task;
return-void
.end method
.method public setCrashlyticsCollectionEnabled(Ljava/lang/Boolean;)V
.registers 3
.line 486
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0, p1}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCrashlyticsCollectionEnabled(Ljava/lang/Boolean;)V
return-void
.end method
.method public setCrashlyticsCollectionEnabled(Z)V
.registers 3
.line 464
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p1
invoke-virtual {v0, p1}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCrashlyticsCollectionEnabled(Ljava/lang/Boolean;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;D)V
.registers 5
.line 317
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p2, p3}, Ljava/lang/Double;->toString(D)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;F)V
.registers 4
.line 338
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p2}, Ljava/lang/Float;->toString(F)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;I)V
.registers 4
.line 359
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;J)V
.registers 5
.line 380
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p2, p3}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.line 401
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setCustomKey(Ljava/lang/String;Z)V
.registers 4
.line 296
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-static {p2}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p1, p2}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setCustomKey(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public setUserId(Ljava/lang/String;)V
.registers 3
.line 275
iget-object v0, p0, Lcom/google/firebase/crashlytics/FirebaseCrashlytics;->core:Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;
invoke-virtual {v0, p1}, Lcom/google/firebase/crashlytics/internal/common/CrashlyticsCore;->setUserId(Ljava/lang/String;)V
return-void
.end method