zzfc.smali
.class public final Lcom/google/android/gms/internal/measurement/zzfc;
.super Lcom/google/android/gms/internal/measurement/zzhh;
# instance fields
.field private final zzaig:Lcom/google/android/gms/internal/measurement/zzfd;
.field private zzaih:Z
# direct methods
.method constructor <init>(Lcom/google/android/gms/internal/measurement/zzgl;)V
.registers 5
invoke-direct {p0, p1}, Lcom/google/android/gms/internal/measurement/zzhh;-><init>(Lcom/google/android/gms/internal/measurement/zzgl;)V
new-instance v0, Lcom/google/android/gms/internal/measurement/zzfd;
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->getContext()Landroid/content/Context;
move-result-object v1
const-string v2, "google_app_measurement_local.db"
invoke-direct {v0, p0, v1, v2}, Lcom/google/android/gms/internal/measurement/zzfd;-><init>(Lcom/google/android/gms/internal/measurement/zzfc;Landroid/content/Context;Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaig:Lcom/google/android/gms/internal/measurement/zzfd;
return-void
.end method
.method private final getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
.registers 3
.annotation build Lcom/google/android/gms/common/util/VisibleForTesting;
.end annotation
const/4 v0, 0x0
iget-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
if-eqz v1, :cond_6
:goto_5
return-object v0
:cond_6
iget-object v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaig:Lcom/google/android/gms/internal/measurement/zzfd;
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfd;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v1
if-nez v1, :cond_12
const/4 v1, 0x1
iput-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
goto :goto_5
:cond_12
move-object v0, v1
goto :goto_5
.end method
.method private final zza(I[B)Z
.registers 16
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzab()V
iget-boolean v0, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
if-eqz v0, :cond_9
const/4 v0, 0x0
:goto_8
return v0
:cond_9
new-instance v7, Landroid/content/ContentValues;
invoke-direct {v7}, Landroid/content/ContentValues;-><init>()V
const-string v0, "type"
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v7, v0, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
const-string v0, "entry"
invoke-virtual {v7, v0, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;[B)V
const/4 v1, 0x5
const/4 v0, 0x0
move v6, v0
move v0, v1
:goto_20
const/4 v1, 0x5
if-ge v6, v1, :cond_119
const/4 v3, 0x0
const/4 v2, 0x0
:try_start_25
invoke-direct {p0}, Lcom/google/android/gms/internal/measurement/zzfc;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v3
if-nez v3, :cond_35
const/4 v1, 0x1
iput-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_2e
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_25 .. :try_end_2e} :catch_b4
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_25 .. :try_end_2e} :catch_d4
.catch Landroid/database/sqlite/SQLiteException; {:try_start_25 .. :try_end_2e} :catch_e6
.catchall {:try_start_25 .. :try_end_2e} :catchall_10d
if-eqz v3, :cond_33
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_33
const/4 v0, 0x0
goto :goto_8
:cond_35
:try_start_35
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
const-wide/16 v4, 0x0
const-string v1, "select count(1) from messages"
const/4 v8, 0x0
invoke-virtual {v3, v1, v8}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
if-eqz v2, :cond_4e
invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z
move-result v1
if-eqz v1, :cond_4e
const/4 v1, 0x0
invoke-interface {v2, v1}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
:cond_4e
const-wide/32 v8, 0x186a0
cmp-long v1, v4, v8
if-ltz v1, :cond_9b
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v8, "Data loss, local db full"
invoke-virtual {v1, v8}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
const-wide/32 v8, 0x186a0
sub-long v4, v8, v4
const-wide/16 v8, 0x1
add-long/2addr v4, v8
const-string v1, "messages"
const-string v8, "rowid in (select rowid from messages order by rowid asc limit ?)"
const/4 v9, 0x1
new-array v9, v9, [Ljava/lang/String;
const/4 v10, 0x0
invoke-static {v4, v5}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
move-result-object v11
aput-object v11, v9, v10
invoke-virtual {v3, v1, v8, v9}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
move-result v1
int-to-long v8, v1
cmp-long v1, v8, v4
if-eqz v1, :cond_9b
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v10, "Different delete count than expected in local db. expected, received, difference"
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v11
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v12
sub-long/2addr v4, v8
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
invoke-virtual {v1, v10, v11, v12, v4}, Lcom/google/android/gms/internal/measurement/zzfi;->zzd(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
:cond_9b
const-string v1, "messages"
const/4 v4, 0x0
invoke-virtual {v3, v1, v4, v7}, Landroid/database/sqlite/SQLiteDatabase;->insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_a7
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_35 .. :try_end_a7} :catch_b4
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_35 .. :try_end_a7} :catch_d4
.catch Landroid/database/sqlite/SQLiteException; {:try_start_35 .. :try_end_a7} :catch_e6
.catchall {:try_start_35 .. :try_end_a7} :catchall_10d
if-eqz v2, :cond_ac
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_ac
if-eqz v3, :cond_b1
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_b1
const/4 v0, 0x1
goto/16 :goto_8
:catch_b4
move-exception v1
:try_start_b5
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v4
invoke-virtual {v4}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v4
const-string v5, "Error writing entry to local database"
invoke-virtual {v4, v5, v1}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
const/4 v1, 0x1
iput-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_c5
.catchall {:try_start_b5 .. :try_end_c5} :catchall_10d
if-eqz v2, :cond_ca
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_ca
if-eqz v3, :cond_cf
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_cf
:goto_cf
add-int/lit8 v1, v6, 0x1
move v6, v1
goto/16 :goto_20
:catch_d4
move-exception v1
int-to-long v4, v0
:try_start_d6
invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
:try_end_d9
.catchall {:try_start_d6 .. :try_end_d9} :catchall_10d
add-int/lit8 v0, v0, 0x14
if-eqz v2, :cond_e0
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_e0
if-eqz v3, :cond_cf
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
goto :goto_cf
:catch_e6
move-exception v1
if-eqz v3, :cond_f2
:try_start_e9
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
move-result v4
if-eqz v4, :cond_f2
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:cond_f2
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v4
invoke-virtual {v4}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v4
const-string v5, "Error writing entry to local database"
invoke-virtual {v4, v5, v1}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
const/4 v1, 0x1
iput-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_102
.catchall {:try_start_e9 .. :try_end_102} :catchall_10d
if-eqz v2, :cond_107
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_107
if-eqz v3, :cond_cf
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
goto :goto_cf
:catchall_10d
move-exception v0
if-eqz v2, :cond_113
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_113
if-eqz v3, :cond_118
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_118
throw v0
:cond_119
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/gms/internal/measurement/zzfg;->zzip()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v0
const-string v1, "Failed to write entry to local database"
invoke-virtual {v0, v1}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
const/4 v0, 0x0
goto/16 :goto_8
.end method
# virtual methods
.method public final bridge synthetic getContext()Landroid/content/Context;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->getContext()Landroid/content/Context;
move-result-object v0
return-object v0
.end method
.method public final resetAnalyticsData()V
.registers 5
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzab()V
:try_start_3
invoke-direct {p0}, Lcom/google/android/gms/internal/measurement/zzfc;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
const-string v1, "messages"
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
move-result v0
add-int/lit8 v0, v0, 0x0
if-lez v0, :cond_24
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzit()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v2, "Reset local analytics data. records"
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v1, v2, v0}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
:try_end_24
.catch Landroid/database/sqlite/SQLiteException; {:try_start_3 .. :try_end_24} :catch_25
:cond_24
:goto_24
return-void
:catch_25
move-exception v0
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v2, "Error resetting local analytics data. error"
invoke-virtual {v1, v2, v0}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
goto :goto_24
.end method
.method public final zza(Lcom/google/android/gms/internal/measurement/zzeu;)Z
.registers 6
const/4 v0, 0x0
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
invoke-virtual {p1, v1, v0}, Lcom/google/android/gms/internal/measurement/zzeu;->writeToParcel(Landroid/os/Parcel;I)V
invoke-virtual {v1}, Landroid/os/Parcel;->marshall()[B
move-result-object v2
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
array-length v1, v2
const/high16 v3, 0x20000
if-le v1, v3, :cond_22
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzip()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v2, "Event is too long for local database. Sending event directly to service"
invoke-virtual {v1, v2}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:goto_21
return v0
:cond_22
invoke-direct {p0, v0, v2}, Lcom/google/android/gms/internal/measurement/zzfc;->zza(I[B)Z
move-result v0
goto :goto_21
.end method
.method public final zza(Lcom/google/android/gms/internal/measurement/zzjx;)Z
.registers 6
const/4 v0, 0x0
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
invoke-virtual {p1, v1, v0}, Lcom/google/android/gms/internal/measurement/zzjx;->writeToParcel(Landroid/os/Parcel;I)V
invoke-virtual {v1}, Landroid/os/Parcel;->marshall()[B
move-result-object v2
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
array-length v1, v2
const/high16 v3, 0x20000
if-le v1, v3, :cond_22
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzip()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v2, "User property too long for local database. Sending directly to service"
invoke-virtual {v1, v2}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:goto_21
return v0
:cond_22
const/4 v0, 0x1
invoke-direct {p0, v0, v2}, Lcom/google/android/gms/internal/measurement/zzfc;->zza(I[B)Z
move-result v0
goto :goto_21
.end method
.method public final bridge synthetic zzab()V
.registers 1
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzab()V
return-void
.end method
.method public final bridge synthetic zzbt()Lcom/google/android/gms/common/util/Clock;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzbt()Lcom/google/android/gms/common/util/Clock;
move-result-object v0
return-object v0
.end method
.method public final zzc(Lcom/google/android/gms/internal/measurement/zzed;)Z
.registers 5
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzgb()Lcom/google/android/gms/internal/measurement/zzka;
invoke-static {p1}, Lcom/google/android/gms/internal/measurement/zzka;->zza(Landroid/os/Parcelable;)[B
move-result-object v0
array-length v1, v0
const/high16 v2, 0x20000
if-le v1, v2, :cond_1b
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/gms/internal/measurement/zzfg;->zzip()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v0
const-string v1, "Conditional user property too long for local database. Sending directly to service"
invoke-virtual {v0, v1}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
const/4 v0, 0x0
:goto_1a
return v0
:cond_1b
const/4 v1, 0x2
invoke-direct {p0, v1, v0}, Lcom/google/android/gms/internal/measurement/zzfc;->zza(I[B)Z
move-result v0
goto :goto_1a
.end method
.method public final bridge synthetic zzfr()V
.registers 1
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfr()V
return-void
.end method
.method public final bridge synthetic zzfs()V
.registers 1
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfs()V
return-void
.end method
.method public final bridge synthetic zzft()Lcom/google/android/gms/internal/measurement/zzdu;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzft()Lcom/google/android/gms/internal/measurement/zzdu;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfu()Lcom/google/android/gms/internal/measurement/zzhk;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfu()Lcom/google/android/gms/internal/measurement/zzhk;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfv()Lcom/google/android/gms/internal/measurement/zzfb;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfv()Lcom/google/android/gms/internal/measurement/zzfb;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfw()Lcom/google/android/gms/internal/measurement/zzeo;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfw()Lcom/google/android/gms/internal/measurement/zzeo;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfx()Lcom/google/android/gms/internal/measurement/zzii;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfx()Lcom/google/android/gms/internal/measurement/zzii;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfy()Lcom/google/android/gms/internal/measurement/zzif;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfy()Lcom/google/android/gms/internal/measurement/zzif;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzfz()Lcom/google/android/gms/internal/measurement/zzfc;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzfz()Lcom/google/android/gms/internal/measurement/zzfc;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzga()Lcom/google/android/gms/internal/measurement/zzfe;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzga()Lcom/google/android/gms/internal/measurement/zzfe;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzgb()Lcom/google/android/gms/internal/measurement/zzka;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzgb()Lcom/google/android/gms/internal/measurement/zzka;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzgc()Lcom/google/android/gms/internal/measurement/zzjh;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzgc()Lcom/google/android/gms/internal/measurement/zzjh;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzgd()Lcom/google/android/gms/internal/measurement/zzgg;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzgd()Lcom/google/android/gms/internal/measurement/zzgg;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzge()Lcom/google/android/gms/internal/measurement/zzfg;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzgf()Lcom/google/android/gms/internal/measurement/zzfr;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzgf()Lcom/google/android/gms/internal/measurement/zzfr;
move-result-object v0
return-object v0
.end method
.method public final bridge synthetic zzgg()Lcom/google/android/gms/internal/measurement/zzef;
.registers 2
invoke-super {p0}, Lcom/google/android/gms/internal/measurement/zzhh;->zzgg()Lcom/google/android/gms/internal/measurement/zzef;
move-result-object v0
return-object v0
.end method
.method protected final zzhf()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public final zzp(I)Ljava/util/List;
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List",
"<",
"Lcom/google/android/gms/common/internal/safeparcel/AbstractSafeParcelable;",
">;"
}
.end annotation
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzab()V
iget-boolean v0, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
if-eqz v0, :cond_9
const/4 v0, 0x0
:goto_8
return-object v0
:cond_9
new-instance v10, Ljava/util/ArrayList;
invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->getContext()Landroid/content/Context;
move-result-object v0
const-string v1, "google_app_measurement_local.db"
invoke-virtual {v0, v1}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_20
move-object v0, v10
goto :goto_8
:cond_20
const/4 v9, 0x5
const/4 v0, 0x0
move v12, v0
:goto_23
const/4 v0, 0x5
if-ge v12, v0, :cond_1dd
const/4 v1, 0x0
const/4 v11, 0x0
:try_start_28
invoke-direct {p0}, Lcom/google/android/gms/internal/measurement/zzfc;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
:try_end_2b
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_28 .. :try_end_2b} :catch_215
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_28 .. :try_end_2b} :catch_20c
.catch Landroid/database/sqlite/SQLiteException; {:try_start_28 .. :try_end_2b} :catch_201
.catchall {:try_start_28 .. :try_end_2b} :catchall_1ed
move-result-object v0
if-nez v0, :cond_38
const/4 v1, 0x1
:try_start_2f
iput-boolean v1, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_31
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_2f .. :try_end_31} :catch_21a
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_2f .. :try_end_31} :catch_210
.catch Landroid/database/sqlite/SQLiteException; {:try_start_2f .. :try_end_31} :catch_205
.catchall {:try_start_2f .. :try_end_31} :catchall_1f1
if-eqz v0, :cond_36
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_36
const/4 v0, 0x0
goto :goto_8
:cond_38
:try_start_38
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
const-string v1, "messages"
const/4 v2, 0x3
new-array v2, v2, [Ljava/lang/String;
const/4 v3, 0x0
const-string v4, "rowid"
aput-object v4, v2, v3
const/4 v3, 0x1
const-string v4, "type"
aput-object v4, v2, v3
const/4 v3, 0x2
const-string v4, "entry"
aput-object v4, v2, v3
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const-string v7, "rowid asc"
const/16 v8, 0x64
invoke-static {v8}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v8
invoke-virtual/range {v0 .. v8}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
:try_end_5e
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_38 .. :try_end_5e} :catch_21a
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_38 .. :try_end_5e} :catch_210
.catch Landroid/database/sqlite/SQLiteException; {:try_start_38 .. :try_end_5e} :catch_205
.catchall {:try_start_38 .. :try_end_5e} :catchall_1f1
move-result-object v2
const-wide/16 v4, -0x1
:cond_61
:goto_61
:try_start_61
invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
move-result v1
if-eqz v1, :cond_1a5
const/4 v1, 0x0
invoke-interface {v2, v1}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
const/4 v1, 0x1
invoke-interface {v2, v1}, Landroid/database/Cursor;->getInt(I)I
move-result v1
const/4 v3, 0x2
invoke-interface {v2, v3}, Landroid/database/Cursor;->getBlob(I)[B
move-result-object v6
if-nez v1, :cond_111
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
:try_end_7b
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_61 .. :try_end_7b} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_61 .. :try_end_7b} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_61 .. :try_end_7b} :catch_e6
.catchall {:try_start_61 .. :try_end_7b} :catchall_134
move-result-object v3
const/4 v1, 0x0
:try_start_7d
array-length v7, v6
invoke-virtual {v3, v6, v1, v7}, Landroid/os/Parcel;->unmarshall([BII)V
const/4 v1, 0x0
invoke-virtual {v3, v1}, Landroid/os/Parcel;->setDataPosition(I)V
sget-object v1, Lcom/google/android/gms/internal/measurement/zzeu;->CREATOR:Landroid/os/Parcelable$Creator;
invoke-interface {v1, v3}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/gms/internal/measurement/zzeu;
:try_end_8d
.catch Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException; {:try_start_7d .. :try_end_8d} :catch_bc
.catchall {:try_start_7d .. :try_end_8d} :catchall_e1
:try_start_8d
invoke-virtual {v3}, Landroid/os/Parcel;->recycle()V
if-eqz v1, :cond_61
invoke-interface {v10, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_95
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_8d .. :try_end_95} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_8d .. :try_end_95} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_8d .. :try_end_95} :catch_e6
.catchall {:try_start_8d .. :try_end_95} :catchall_134
goto :goto_61
:catch_96
move-exception v1
move-object v13, v1
move-object v1, v2
move-object v2, v0
move-object v0, v13
:goto_9b
:try_start_9b
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v3
invoke-virtual {v3}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v3
const-string v4, "Error reading entries from local database"
invoke-virtual {v3, v4, v0}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_ab
.catchall {:try_start_9b .. :try_end_ab} :catchall_1f8
if-eqz v1, :cond_b0
invoke-interface {v1}, Landroid/database/Cursor;->close()V
:cond_b0
if-eqz v2, :cond_220
invoke-virtual {v2}, Landroid/database/sqlite/SQLiteDatabase;->close()V
move v0, v9
:cond_b6
:goto_b6
add-int/lit8 v1, v12, 0x1
move v12, v1
move v9, v0
goto/16 :goto_23
:catch_bc
move-exception v1
:try_start_bd
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v6, "Failed to load event from local database"
invoke-virtual {v1, v6}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:try_end_ca
.catchall {:try_start_bd .. :try_end_ca} :catchall_e1
:try_start_ca
invoke-virtual {v3}, Landroid/os/Parcel;->recycle()V
:try_end_cd
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_ca .. :try_end_cd} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_ca .. :try_end_cd} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_ca .. :try_end_cd} :catch_e6
.catchall {:try_start_ca .. :try_end_cd} :catchall_134
goto :goto_61
:catch_ce
move-exception v1
move-object v1, v0
:goto_d0
int-to-long v4, v9
:try_start_d1
invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
:try_end_d4
.catchall {:try_start_d1 .. :try_end_d4} :catchall_1fe
add-int/lit8 v0, v9, 0x14
if-eqz v2, :cond_db
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_db
if-eqz v1, :cond_b6
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
goto :goto_b6
:catchall_e1
move-exception v1
:try_start_e2
invoke-virtual {v3}, Landroid/os/Parcel;->recycle()V
throw v1
:try_end_e6
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_e2 .. :try_end_e6} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_e2 .. :try_end_e6} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_e2 .. :try_end_e6} :catch_e6
.catchall {:try_start_e2 .. :try_end_e6} :catchall_134
:catch_e6
move-exception v1
move-object v13, v1
move-object v1, v0
move-object v0, v13
:goto_ea
if-eqz v1, :cond_f5
:try_start_ec
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
move-result v3
if-eqz v3, :cond_f5
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:cond_f5
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v3
invoke-virtual {v3}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v3
const-string v4, "Error reading entries from local database"
invoke-virtual {v3, v4, v0}, Lcom/google/android/gms/internal/measurement/zzfi;->zzg(Ljava/lang/String;Ljava/lang/Object;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/gms/internal/measurement/zzfc;->zzaih:Z
:try_end_105
.catchall {:try_start_ec .. :try_end_105} :catchall_1fe
if-eqz v2, :cond_10a
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_10a
if-eqz v1, :cond_220
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
move v0, v9
goto :goto_b6
:cond_111
const/4 v3, 0x1
if-ne v1, v3, :cond_15b
:try_start_114
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
:try_end_117
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_114 .. :try_end_117} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_114 .. :try_end_117} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_114 .. :try_end_117} :catch_e6
.catchall {:try_start_114 .. :try_end_117} :catchall_134
move-result-object v7
const/4 v3, 0x0
const/4 v1, 0x0
:try_start_11a
array-length v8, v6
invoke-virtual {v7, v6, v1, v8}, Landroid/os/Parcel;->unmarshall([BII)V
const/4 v1, 0x0
invoke-virtual {v7, v1}, Landroid/os/Parcel;->setDataPosition(I)V
sget-object v1, Lcom/google/android/gms/internal/measurement/zzjx;->CREATOR:Landroid/os/Parcelable$Creator;
invoke-interface {v1, v7}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/gms/internal/measurement/zzjx;
:try_end_12a
.catch Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException; {:try_start_11a .. :try_end_12a} :catch_143
.catchall {:try_start_11a .. :try_end_12a} :catchall_156
:try_start_12a
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
:goto_12d
if-eqz v1, :cond_61
invoke-interface {v10, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_132
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_12a .. :try_end_132} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_12a .. :try_end_132} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_12a .. :try_end_132} :catch_e6
.catchall {:try_start_12a .. :try_end_132} :catchall_134
goto/16 :goto_61
:catchall_134
move-exception v1
move-object v13, v1
move-object v1, v0
move-object v0, v13
:goto_138
if-eqz v2, :cond_13d
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_13d
if-eqz v1, :cond_142
invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_142
throw v0
:catch_143
move-exception v1
:try_start_144
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v6, "Failed to load user property from local database"
invoke-virtual {v1, v6}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:try_end_151
.catchall {:try_start_144 .. :try_end_151} :catchall_156
:try_start_151
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
move-object v1, v3
goto :goto_12d
:catchall_156
move-exception v1
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
throw v1
:cond_15b
const/4 v3, 0x2
if-ne v1, v3, :cond_196
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
:try_end_161
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_151 .. :try_end_161} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_151 .. :try_end_161} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_151 .. :try_end_161} :catch_e6
.catchall {:try_start_151 .. :try_end_161} :catchall_134
move-result-object v7
const/4 v3, 0x0
const/4 v1, 0x0
:try_start_164
array-length v8, v6
invoke-virtual {v7, v6, v1, v8}, Landroid/os/Parcel;->unmarshall([BII)V
const/4 v1, 0x0
invoke-virtual {v7, v1}, Landroid/os/Parcel;->setDataPosition(I)V
sget-object v1, Lcom/google/android/gms/internal/measurement/zzed;->CREATOR:Landroid/os/Parcelable$Creator;
invoke-interface {v1, v7}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/gms/internal/measurement/zzed;
:try_end_174
.catch Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader$ParseException; {:try_start_164 .. :try_end_174} :catch_17e
.catchall {:try_start_164 .. :try_end_174} :catchall_191
:try_start_174
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
:goto_177
if-eqz v1, :cond_61
invoke-interface {v10, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_17c
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_174 .. :try_end_17c} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_174 .. :try_end_17c} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_174 .. :try_end_17c} :catch_e6
.catchall {:try_start_174 .. :try_end_17c} :catchall_134
goto/16 :goto_61
:catch_17e
move-exception v1
:try_start_17f
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v6, "Failed to load user property from local database"
invoke-virtual {v1, v6}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:try_end_18c
.catchall {:try_start_17f .. :try_end_18c} :catchall_191
:try_start_18c
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
move-object v1, v3
goto :goto_177
:catchall_191
move-exception v1
invoke-virtual {v7}, Landroid/os/Parcel;->recycle()V
throw v1
:cond_196
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v3, "Unknown record type in local database"
invoke-virtual {v1, v3}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
goto/16 :goto_61
:cond_1a5
const-string v1, "messages"
const-string v3, "rowid <= ?"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/String;
const/4 v7, 0x0
invoke-static {v4, v5}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
move-result-object v4
aput-object v4, v6, v7
invoke-virtual {v0, v1, v3, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
move-result v1
invoke-interface {v10}, Ljava/util/List;->size()I
move-result v3
if-ge v1, v3, :cond_1ca
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/internal/measurement/zzfg;->zzim()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v1
const-string v3, "Fewer entries removed from local database than expected"
invoke-virtual {v1, v3}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
:cond_1ca
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_1d0
.catch Landroid/database/sqlite/SQLiteFullException; {:try_start_18c .. :try_end_1d0} :catch_96
.catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_18c .. :try_end_1d0} :catch_ce
.catch Landroid/database/sqlite/SQLiteException; {:try_start_18c .. :try_end_1d0} :catch_e6
.catchall {:try_start_18c .. :try_end_1d0} :catchall_134
if-eqz v2, :cond_1d5
invoke-interface {v2}, Landroid/database/Cursor;->close()V
:cond_1d5
if-eqz v0, :cond_1da
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_1da
move-object v0, v10
goto/16 :goto_8
:cond_1dd
invoke-virtual {p0}, Lcom/google/android/gms/internal/measurement/zzhg;->zzge()Lcom/google/android/gms/internal/measurement/zzfg;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/gms/internal/measurement/zzfg;->zzip()Lcom/google/android/gms/internal/measurement/zzfi;
move-result-object v0
const-string v1, "Failed to read events from database in reasonable time"
invoke-virtual {v0, v1}, Lcom/google/android/gms/internal/measurement/zzfi;->log(Ljava/lang/String;)V
const/4 v0, 0x0
goto/16 :goto_8
:catchall_1ed
move-exception v0
move-object v2, v11
goto/16 :goto_138
:catchall_1f1
move-exception v1
move-object v2, v11
move-object v13, v1
move-object v1, v0
move-object v0, v13
goto/16 :goto_138
:catchall_1f8
move-exception v0
move-object v13, v1
move-object v1, v2
move-object v2, v13
goto/16 :goto_138
:catchall_1fe
move-exception v0
goto/16 :goto_138
:catch_201
move-exception v0
move-object v2, v11
goto/16 :goto_ea
:catch_205
move-exception v1
move-object v2, v11
move-object v13, v1
move-object v1, v0
move-object v0, v13
goto/16 :goto_ea
:catch_20c
move-exception v0
move-object v2, v11
goto/16 :goto_d0
:catch_210
move-exception v1
move-object v2, v11
move-object v1, v0
goto/16 :goto_d0
:catch_215
move-exception v0
move-object v2, v1
move-object v1, v11
goto/16 :goto_9b
:catch_21a
move-exception v1
move-object v2, v0
move-object v0, v1
move-object v1, v11
goto/16 :goto_9b
:cond_220
move v0, v9
goto/16 :goto_b6
.end method