DataCollectionArbiter.smali
.class public Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;
.super Ljava/lang/Object;
# instance fields
.field private a:Ljava/lang/Object;
.field b:Lcom/google/android/gms/tasks/TaskCompletionSource;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/gms/tasks/TaskCompletionSource<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
.field private final c:Landroid/content/SharedPreferences;
.field private volatile d:Z
.field private volatile e:Z
.field private final f:Lcom/google/firebase/FirebaseApp;
.field private g:Lcom/google/android/gms/tasks/TaskCompletionSource;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/gms/tasks/TaskCompletionSource<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Lcom/google/firebase/FirebaseApp;)V
.registers 6
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->a:Ljava/lang/Object;
new-instance v0, Lcom/google/android/gms/tasks/TaskCompletionSource;
invoke-direct {v0}, Lcom/google/android/gms/tasks/TaskCompletionSource;-><init>()V
iput-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->b:Lcom/google/android/gms/tasks/TaskCompletionSource;
new-instance v0, Lcom/google/android/gms/tasks/TaskCompletionSource;
invoke-direct {v0}, Lcom/google/android/gms/tasks/TaskCompletionSource;-><init>()V
iput-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->g:Lcom/google/android/gms/tasks/TaskCompletionSource;
iput-object p1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->f:Lcom/google/firebase/FirebaseApp;
invoke-virtual {p1}, Lcom/google/firebase/FirebaseApp;->g()Landroid/content/Context;
move-result-object p1
if-eqz p1, :cond_86
invoke-static {p1}, Lcom/google/firebase/crashlytics/internal/common/CommonUtils;->t(Landroid/content/Context;)Landroid/content/SharedPreferences;
move-result-object v0
iput-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->c:Landroid/content/SharedPreferences;
const/4 v1, 0x0
const-string v2, "firebase_crashlytics_collection_enabled"
invoke-interface {v0, v2}, Landroid/content/SharedPreferences;->contains(Ljava/lang/String;)Z
move-result v0
const/4 v2, 0x1
if-eqz v0, :cond_3b
iget-object p1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->c:Landroid/content/SharedPreferences;
const-string v0, "firebase_crashlytics_collection_enabled"
invoke-interface {p1, v0, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result p1
:goto_38
move v2, p1
const/4 v1, 0x1
goto :goto_6e
:cond_3b
:try_start_3b
invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
if-eqz v0, :cond_6e
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object p1
const/16 v3, 0x80
invoke-virtual {v0, p1, v3}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
move-result-object p1
if-eqz p1, :cond_6e
iget-object v0, p1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle;
if-eqz v0, :cond_6e
iget-object v0, p1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle;
const-string v3, "firebase_crashlytics_collection_enabled"
invoke-virtual {v0, v3}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_6e
iget-object p1, p1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle;
const-string v0, "firebase_crashlytics_collection_enabled"
invoke-virtual {p1, v0}, Landroid/os/Bundle;->getBoolean(Ljava/lang/String;)Z
move-result p1
:try_end_63
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_3b .. :try_end_63} :catch_64
goto :goto_38
:catch_64
move-exception p1
invoke-static {}, Lcom/google/firebase/crashlytics/internal/Logger;->f()Lcom/google/firebase/crashlytics/internal/Logger;
move-result-object v0
const-string v3, "Unable to get PackageManager. Falling through"
invoke-virtual {v0, v3, p1}, Lcom/google/firebase/crashlytics/internal/Logger;->c(Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_6e
:goto_6e
iput-boolean v2, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->e:Z
iput-boolean v1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->d:Z
iget-object p1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->a:Ljava/lang/Object;
monitor-enter p1
:try_start_75
invoke-virtual {p0}, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->b()Z
move-result v0
if-eqz v0, :cond_81
iget-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->b:Lcom/google/android/gms/tasks/TaskCompletionSource;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Lcom/google/android/gms/tasks/TaskCompletionSource;->e(Ljava/lang/Object;)Z
:cond_81
monitor-exit p1
return-void
:catchall_83
move-exception v0
monitor-exit p1
:try_end_85
.catchall {:try_start_75 .. :try_end_85} :catchall_83
throw v0
:cond_86
new-instance p1, Ljava/lang/RuntimeException;
const-string v0, "null context"
invoke-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public a(Z)V
.registers 3
if-eqz p1, :cond_9
iget-object p1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->g:Lcom/google/android/gms/tasks/TaskCompletionSource;
const/4 v0, 0x0
invoke-virtual {p1, v0}, Lcom/google/android/gms/tasks/TaskCompletionSource;->e(Ljava/lang/Object;)Z
return-void
:cond_9
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "An invalid data collection token was used."
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public b()Z
.registers 2
iget-boolean v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->d:Z
if-eqz v0, :cond_7
iget-boolean v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->e:Z
return v0
:cond_7
iget-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->f:Lcom/google/firebase/FirebaseApp;
invoke-virtual {v0}, Lcom/google/firebase/FirebaseApp;->p()Z
move-result v0
return v0
.end method
.method public c()Lcom/google/android/gms/tasks/Task;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/android/gms/tasks/Task<",
"Ljava/lang/Void;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->a:Ljava/lang/Object;
monitor-enter v0
:try_start_3
iget-object v1, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->b:Lcom/google/android/gms/tasks/TaskCompletionSource;
invoke-virtual {v1}, Lcom/google/android/gms/tasks/TaskCompletionSource;->a()Lcom/google/android/gms/tasks/Task;
move-result-object v1
monitor-exit v0
return-object v1
:catchall_b
move-exception v1
monitor-exit v0
:try_end_d
.catchall {:try_start_3 .. :try_end_d} :catchall_b
throw v1
.end method
.method public d()Lcom/google/android/gms/tasks/Task;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/google/android/gms/tasks/Task<",
"Ljava/lang/Void;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->g:Lcom/google/android/gms/tasks/TaskCompletionSource;
invoke-virtual {v0}, Lcom/google/android/gms/tasks/TaskCompletionSource;->a()Lcom/google/android/gms/tasks/Task;
move-result-object v0
invoke-virtual {p0}, Lcom/google/firebase/crashlytics/internal/common/DataCollectionArbiter;->c()Lcom/google/android/gms/tasks/Task;
move-result-object v1
invoke-static {v0, v1}, Lcom/google/firebase/crashlytics/internal/common/Utils;->g(Lcom/google/android/gms/tasks/Task;Lcom/google/android/gms/tasks/Task;)Lcom/google/android/gms/tasks/Task;
move-result-object v0
return-object v0
.end method