- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
345 lines
13 KiB
Java
345 lines
13 KiB
Java
package com.google.android.gms.measurement.internal;
|
|
|
|
import android.content.Context;
|
|
import android.database.Cursor;
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
import android.database.sqlite.SQLiteDatabaseLockedException;
|
|
import android.database.sqlite.SQLiteException;
|
|
import android.database.sqlite.SQLiteFullException;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.os.SystemClock;
|
|
import androidx.annotation.VisibleForTesting;
|
|
import androidx.annotation.WorkerThread;
|
|
import com.google.android.gms.common.util.Clock;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public final class zzft extends zzg {
|
|
private final zzfs zza;
|
|
private boolean zzb;
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzg
|
|
public final boolean zzz() {
|
|
return false;
|
|
}
|
|
|
|
private static long zza(SQLiteDatabase sQLiteDatabase) {
|
|
Cursor cursor = null;
|
|
try {
|
|
cursor = sQLiteDatabase.query("messages", new String[]{"rowid"}, "type=?", new String[]{"3"}, null, null, "rowid desc", "1");
|
|
if (cursor.moveToFirst()) {
|
|
long j = cursor.getLong(0);
|
|
cursor.close();
|
|
return j;
|
|
}
|
|
cursor.close();
|
|
return -1L;
|
|
} catch (Throwable th) {
|
|
if (cursor != null) {
|
|
cursor.close();
|
|
}
|
|
throw th;
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij, com.google.android.gms.measurement.internal.zzil
|
|
public final /* bridge */ /* synthetic */ Context zza() {
|
|
return super.zza();
|
|
}
|
|
|
|
@VisibleForTesting
|
|
@WorkerThread
|
|
private final SQLiteDatabase zzad() throws SQLiteException {
|
|
if (this.zzb) {
|
|
return null;
|
|
}
|
|
SQLiteDatabase writableDatabase = this.zza.getWritableDatabase();
|
|
if (writableDatabase != null) {
|
|
return writableDatabase;
|
|
}
|
|
this.zzb = true;
|
|
return null;
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij, com.google.android.gms.measurement.internal.zzil
|
|
public final /* bridge */ /* synthetic */ Clock zzb() {
|
|
return super.zzb();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zza zzc() {
|
|
return super.zzc();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij, com.google.android.gms.measurement.internal.zzil
|
|
public final /* bridge */ /* synthetic */ zzad zzd() {
|
|
return super.zzd();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ zzae zze() {
|
|
return super.zze();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ zzaz zzf() {
|
|
return super.zzf();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zzfq zzg() {
|
|
return super.zzg();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zzft zzh() {
|
|
return super.zzh();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ zzfv zzi() {
|
|
return super.zzi();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij, com.google.android.gms.measurement.internal.zzil
|
|
public final /* bridge */ /* synthetic */ zzfw zzj() {
|
|
return super.zzj();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ zzgl zzk() {
|
|
return super.zzk();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij, com.google.android.gms.measurement.internal.zzil
|
|
public final /* bridge */ /* synthetic */ zzhg zzl() {
|
|
return super.zzl();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zziz zzm() {
|
|
return super.zzm();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zzks zzn() {
|
|
return super.zzn();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zzlb zzo() {
|
|
return super.zzo();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd
|
|
public final /* bridge */ /* synthetic */ zzml zzp() {
|
|
return super.zzp();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ zznt zzq() {
|
|
return super.zzq();
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARN: Removed duplicated region for block: B:145:0x01e9 */
|
|
/* JADX WARN: Removed duplicated region for block: B:147:0x01ee */
|
|
/* JADX WARN: Removed duplicated region for block: B:149:0x020c A[SYNTHETIC] */
|
|
/* JADX WARN: Removed duplicated region for block: B:21:0x0204 */
|
|
/* JADX WARN: Removed duplicated region for block: B:23:0x0209 */
|
|
/* JADX WARN: Removed duplicated region for block: B:26:0x020c A[SYNTHETIC] */
|
|
/* JADX WARN: Removed duplicated region for block: B:32:0x01d6 */
|
|
/* JADX WARN: Removed duplicated region for block: B:34:0x01db */
|
|
/* JADX WARN: Removed duplicated region for block: B:36:0x020c A[SYNTHETIC] */
|
|
/* JADX WARN: Removed duplicated region for block: B:37:0x01ba A[EXC_TOP_SPLITTER, SYNTHETIC] */
|
|
/* JADX WARN: Removed duplicated region for block: B:46:0x0214 */
|
|
/* JADX WARN: Removed duplicated region for block: B:48:0x0219 */
|
|
/* JADX WARN: Type inference failed for: r3v0 */
|
|
/* JADX WARN: Type inference failed for: r3v1, types: [java.util.List<com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable>] */
|
|
/* JADX WARN: Type inference failed for: r3v16 */
|
|
/* JADX WARN: Type inference failed for: r3v2 */
|
|
/* JADX WARN: Type inference failed for: r3v3, types: [android.database.Cursor] */
|
|
/* JADX WARN: Type inference failed for: r3v4 */
|
|
/* JADX WARN: Type inference failed for: r3v8 */
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final java.util.List<com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable> zza(int r23) {
|
|
/*
|
|
Method dump skipped, instructions count: 556
|
|
To view this dump add '--comments-level debug' option
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.measurement.internal.zzft.zza(int):java.util.List");
|
|
}
|
|
|
|
public zzft(zzhj zzhjVar) {
|
|
super(zzhjVar);
|
|
this.zza = new zzfs(this, zza(), "google_app_measurement_local.db");
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd, com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ void zzr() {
|
|
super.zzr();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd, com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ void zzs() {
|
|
super.zzs();
|
|
}
|
|
|
|
@Override // com.google.android.gms.measurement.internal.zzd, com.google.android.gms.measurement.internal.zzij
|
|
public final /* bridge */ /* synthetic */ void zzt() {
|
|
super.zzt();
|
|
}
|
|
|
|
@WorkerThread
|
|
public final void zzaa() {
|
|
int delete;
|
|
zzt();
|
|
try {
|
|
SQLiteDatabase zzad = zzad();
|
|
if (zzad == null || (delete = zzad.delete("messages", null, null)) <= 0) {
|
|
return;
|
|
}
|
|
zzj().zzp().zza("Reset local analytics data. records", Integer.valueOf(delete));
|
|
} catch (SQLiteException e) {
|
|
zzj().zzg().zza("Error resetting local analytics data. error", e);
|
|
}
|
|
}
|
|
|
|
@WorkerThread
|
|
public final boolean zzab() {
|
|
return zza(3, new byte[0]);
|
|
}
|
|
|
|
@VisibleForTesting
|
|
private final boolean zzae() {
|
|
return zza().getDatabasePath("google_app_measurement_local.db").exists();
|
|
}
|
|
|
|
@WorkerThread
|
|
public final boolean zzac() {
|
|
zzt();
|
|
if (this.zzb || !zzae()) {
|
|
return false;
|
|
}
|
|
int i = 5;
|
|
for (int i2 = 0; i2 < 5; i2++) {
|
|
SQLiteDatabase sQLiteDatabase = null;
|
|
try {
|
|
try {
|
|
SQLiteDatabase zzad = zzad();
|
|
if (zzad == null) {
|
|
this.zzb = true;
|
|
if (zzad != null) {
|
|
zzad.close();
|
|
}
|
|
return false;
|
|
}
|
|
zzad.beginTransaction();
|
|
zzad.delete("messages", "type == ?", new String[]{Integer.toString(3)});
|
|
zzad.setTransactionSuccessful();
|
|
zzad.endTransaction();
|
|
zzad.close();
|
|
return true;
|
|
} catch (SQLiteFullException e) {
|
|
zzj().zzg().zza("Error deleting app launch break from local database", e);
|
|
this.zzb = true;
|
|
if (0 != 0) {
|
|
sQLiteDatabase.close();
|
|
}
|
|
}
|
|
} catch (SQLiteDatabaseLockedException unused) {
|
|
SystemClock.sleep(i);
|
|
i += 20;
|
|
if (0 != 0) {
|
|
sQLiteDatabase.close();
|
|
}
|
|
} catch (SQLiteException e2) {
|
|
if (0 != 0) {
|
|
try {
|
|
if (sQLiteDatabase.inTransaction()) {
|
|
sQLiteDatabase.endTransaction();
|
|
}
|
|
} catch (Throwable th) {
|
|
if (0 != 0) {
|
|
sQLiteDatabase.close();
|
|
}
|
|
throw th;
|
|
}
|
|
}
|
|
zzj().zzg().zza("Error deleting app launch break from local database", e2);
|
|
this.zzb = true;
|
|
if (0 != 0) {
|
|
sQLiteDatabase.close();
|
|
}
|
|
}
|
|
}
|
|
zzj().zzu().zza("Error deleting app launch break from local database in reasonable time");
|
|
return false;
|
|
}
|
|
|
|
public final boolean zza(zzac zzacVar) {
|
|
zzq();
|
|
byte[] zza = zznt.zza((Parcelable) zzacVar);
|
|
if (zza.length > 131072) {
|
|
zzj().zzm().zza("Conditional user property too long for local database. Sending directly to service");
|
|
return false;
|
|
}
|
|
return zza(2, zza);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARN: Removed duplicated region for block: B:17:0x006b A[Catch: all -> 0x0056, SQLiteException -> 0x005a, SQLiteFullException -> 0x005c, SQLiteDatabaseLockedException -> 0x00bc, TRY_ENTER, TryCatch #6 {SQLiteDatabaseLockedException -> 0x00bc, SQLiteFullException -> 0x005c, SQLiteException -> 0x005a, all -> 0x0056, blocks: (B:74:0x004b, B:76:0x0051, B:17:0x006b, B:19:0x008f, B:20:0x00a9), top: B:73:0x004b }] */
|
|
/* JADX WARN: Removed duplicated region for block: B:45:0x0123 */
|
|
/* JADX WARN: Removed duplicated region for block: B:47:0x0128 */
|
|
/* JADX WARN: Removed duplicated region for block: B:70:0x00b4 */
|
|
/* JADX WARN: Type inference failed for: r10v0 */
|
|
/* JADX WARN: Type inference failed for: r10v1 */
|
|
/* JADX WARN: Type inference failed for: r10v2, types: [android.database.Cursor] */
|
|
/* JADX WARN: Type inference failed for: r10v4 */
|
|
/* JADX WARN: Type inference failed for: r10v5 */
|
|
/* JADX WARN: Type inference failed for: r10v6, types: [android.database.Cursor] */
|
|
/* JADX WARN: Type inference failed for: r10v7 */
|
|
/* JADX WARN: Type inference failed for: r2v0 */
|
|
/* JADX WARN: Type inference failed for: r2v1, types: [boolean, int] */
|
|
/* JADX WARN: Type inference failed for: r2v11 */
|
|
@androidx.annotation.WorkerThread
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
private final boolean zza(int r17, byte[] r18) {
|
|
/*
|
|
Method dump skipped, instructions count: 315
|
|
To view this dump add '--comments-level debug' option
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.measurement.internal.zzft.zza(int, byte[]):boolean");
|
|
}
|
|
|
|
public final boolean zza(zzbf zzbfVar) {
|
|
Parcel obtain = Parcel.obtain();
|
|
zzbfVar.writeToParcel(obtain, 0);
|
|
byte[] marshall = obtain.marshall();
|
|
obtain.recycle();
|
|
if (marshall.length > 131072) {
|
|
zzj().zzm().zza("Event is too long for local database. Sending event directly to service");
|
|
return false;
|
|
}
|
|
return zza(0, marshall);
|
|
}
|
|
|
|
public final boolean zza(zzno zznoVar) {
|
|
Parcel obtain = Parcel.obtain();
|
|
zznoVar.writeToParcel(obtain, 0);
|
|
byte[] marshall = obtain.marshall();
|
|
obtain.recycle();
|
|
if (marshall.length > 131072) {
|
|
zzj().zzm().zza("User property too long for local database. Sending directly to service");
|
|
return false;
|
|
}
|
|
return zza(1, marshall);
|
|
}
|
|
}
|