package com.google.android.gms.internal.gtm; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import android.text.TextUtils; import android.util.Pair; import com.google.android.gms.analytics.CampaignTrackingReceiver; import com.google.android.gms.analytics.zzg; import com.google.android.gms.analytics.zzk; import com.google.android.gms.common.internal.Preconditions; import com.google.android.gms.common.wrappers.Wrappers; import com.huawei.hms.support.feature.result.CommonConstant; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes.dex */ public final class zzbb extends zzan { private boolean started; private final zzay zzxp; private final zzck zzxq; private final zzcj zzxr; private final zzat zzxs; private long zzxt; private final zzbs zzxu; private final zzbs zzxv; private final zzcv zzxw; private long zzxx; private boolean zzxy; /* JADX INFO: Access modifiers changed from: protected */ public zzbb(zzap zzapVar, zzar zzarVar) { super(zzapVar); Preconditions.checkNotNull(zzarVar); this.zzxt = Long.MIN_VALUE; this.zzxr = new zzcj(zzapVar); this.zzxp = new zzay(zzapVar); this.zzxq = new zzck(zzapVar); this.zzxs = new zzat(zzapVar); this.zzxw = new zzcv(zzcn()); this.zzxu = new zzbc(this, zzapVar); this.zzxv = new zzbd(this, zzapVar); } @Override // com.google.android.gms.internal.gtm.zzan protected final void zzaw() { this.zzxp.zzag(); this.zzxq.zzag(); this.zzxs.zzag(); } /* JADX INFO: Access modifiers changed from: package-private */ public final void start() { zzdb(); Preconditions.checkState(!this.started, "Analytics backend already started"); this.started = true; zzcq().zza(new zzbe(this)); } private final boolean zzx(String str) { return Wrappers.packageManager(getContext()).checkCallingOrSelfPermission(str) == 0; } /* JADX INFO: Access modifiers changed from: protected */ public final void zzdw() { zzdb(); zzk.zzav(); Context context = zzcm().getContext(); if (!zzcp.zza(context)) { zzt("AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions."); } else if (!zzcq.zze(context)) { zzu("AnalyticsService is not registered or is disabled. Analytics service at risk of not starting. See http://goo.gl/8Rd3yj for instructions."); } if (!CampaignTrackingReceiver.zza(context)) { zzt("CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions."); } zzcv().zzfv(); if (!zzx("android.permission.ACCESS_NETWORK_STATE")) { zzu("Missing required android.permission.ACCESS_NETWORK_STATE. Google Analytics disabled. See http://goo.gl/8Rd3yj for instructions"); zzeg(); } if (!zzx("android.permission.INTERNET")) { zzu("Missing required android.permission.INTERNET. Google Analytics disabled. See http://goo.gl/8Rd3yj for instructions"); zzeg(); } if (zzcq.zze(getContext())) { zzq("AnalyticsService registered in the app manifest and enabled"); } else { zzt("AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions."); } if (!this.zzxy && !this.zzxp.isEmpty()) { zzdz(); } zzec(); } /* JADX INFO: Access modifiers changed from: private */ public final void zzdx() { zzb((zzbw) new zzbf(this)); } /* JADX INFO: Access modifiers changed from: package-private */ public final void zzcl() { zzk.zzav(); this.zzxx = zzcn().currentTimeMillis(); } /* JADX INFO: Access modifiers changed from: protected */ public final void onServiceConnected() { zzk.zzav(); zzk.zzav(); zzdb(); if (!zzbq.zzen()) { zzt("Service client disabled. Can't dispatch local hits to device AnalyticsService"); } if (!this.zzxs.isConnected()) { zzq("Service not connected"); return; } if (this.zzxp.isEmpty()) { return; } zzq("Dispatching local hits to device AnalyticsService"); while (true) { try { List zzd = this.zzxp.zzd(zzbq.zzer()); if (zzd.isEmpty()) { zzec(); return; } while (!zzd.isEmpty()) { zzcd zzcdVar = zzd.get(0); if (!this.zzxs.zzb(zzcdVar)) { zzec(); return; } zzd.remove(zzcdVar); try { this.zzxp.zze(zzcdVar.zzfg()); } catch (SQLiteException e) { zze("Failed to remove hit that was send for delivery", e); zzee(); return; } } } catch (SQLiteException e2) { zze("Failed to read hits from store", e2); zzee(); return; } } } /* JADX INFO: Access modifiers changed from: private */ public final void zzdy() { try { this.zzxp.zzdr(); zzec(); } catch (SQLiteException e) { zzd("Failed to delete stale hits", e); } this.zzxv.zzh(86400000L); } /* JADX INFO: Access modifiers changed from: protected */ public final void zzb(zzas zzasVar) { zzk.zzav(); zzb("Sending first hit to property", zzasVar.zzdj()); if (zzcv().zzfw().zzj(zzbq.zzex())) { return; } String zzfz = zzcv().zzfz(); if (TextUtils.isEmpty(zzfz)) { return; } zzr zza = zzcz.zza(zzco(), zzfz); zzb("Found relevant installation campaign", zza); zza(zzasVar, zza); } public final void zzg(long j) { zzk.zzav(); zzdb(); if (j < 0) { j = 0; } this.zzxt = j; zzec(); } private final void zzdz() { if (this.zzxy || !zzbq.zzen() || this.zzxs.isConnected()) { return; } if (this.zzxw.zzj(zzby.zzaan.get().longValue())) { this.zzxw.start(); zzq("Connecting to service"); if (this.zzxs.connect()) { zzq("Connected to service"); this.zzxw.clear(); onServiceConnected(); } } } public final long zza(zzas zzasVar, boolean z) { Preconditions.checkNotNull(zzasVar); zzdb(); zzk.zzav(); try { try { this.zzxp.beginTransaction(); zzay zzayVar = this.zzxp; long zzdi = zzasVar.zzdi(); String zzbt = zzasVar.zzbt(); Preconditions.checkNotEmpty(zzbt); zzayVar.zzdb(); zzk.zzav(); int delete = zzayVar.getWritableDatabase().delete("properties", "app_uid=? AND cid<>?", new String[]{String.valueOf(zzdi), zzbt}); if (delete > 0) { zzayVar.zza("Deleted property records", Integer.valueOf(delete)); } long zza = this.zzxp.zza(zzasVar.zzdi(), zzasVar.zzbt(), zzasVar.zzdj()); zzasVar.zzb(1 + zza); zzay zzayVar2 = this.zzxp; Preconditions.checkNotNull(zzasVar); zzayVar2.zzdb(); zzk.zzav(); SQLiteDatabase writableDatabase = zzayVar2.getWritableDatabase(); Map zzdm = zzasVar.zzdm(); Preconditions.checkNotNull(zzdm); Uri.Builder builder = new Uri.Builder(); for (Map.Entry entry : zzdm.entrySet()) { builder.appendQueryParameter(entry.getKey(), entry.getValue()); } String encodedQuery = builder.build().getEncodedQuery(); if (encodedQuery == null) { encodedQuery = ""; } ContentValues contentValues = new ContentValues(); contentValues.put("app_uid", Long.valueOf(zzasVar.zzdi())); contentValues.put("cid", zzasVar.zzbt()); contentValues.put("tid", zzasVar.zzdj()); contentValues.put("adid", Integer.valueOf(zzasVar.zzdk() ? 1 : 0)); contentValues.put("hits_count", Long.valueOf(zzasVar.zzdl())); contentValues.put("params", encodedQuery); try { if (writableDatabase.insertWithOnConflict("properties", null, contentValues, 5) == -1) { zzayVar2.zzu("Failed to insert/update a property (got -1)"); } } catch (SQLiteException e) { zzayVar2.zze("Error storing a property", e); } this.zzxp.setTransactionSuccessful(); try { this.zzxp.endTransaction(); } catch (SQLiteException e2) { zze("Failed to end transaction", e2); } return zza; } catch (SQLiteException e3) { zze("Failed to update Analytics property", e3); try { this.zzxp.endTransaction(); } catch (SQLiteException e4) { zze("Failed to end transaction", e4); } return -1L; } } catch (Throwable th) { try { this.zzxp.endTransaction(); } catch (SQLiteException e5) { zze("Failed to end transaction", e5); } throw th; } } public final void zza(zzcd zzcdVar) { Pair zzgc; Preconditions.checkNotNull(zzcdVar); zzk.zzav(); zzdb(); if (this.zzxy) { zzr("Hit delivery not possible. Missing network permissions. See http://goo.gl/8Rd3yj for instructions"); } else { zza("Delivering hit", zzcdVar); } if (TextUtils.isEmpty(zzcdVar.zzfl()) && (zzgc = zzcv().zzga().zzgc()) != null) { Long l = (Long) zzgc.second; String str = (String) zzgc.first; String valueOf = String.valueOf(l); StringBuilder sb = new StringBuilder(String.valueOf(valueOf).length() + 1 + String.valueOf(str).length()); sb.append(valueOf); sb.append(":"); sb.append(str); String sb2 = sb.toString(); HashMap hashMap = new HashMap(zzcdVar.zzdm()); hashMap.put("_m", sb2); zzcdVar = new zzcd(this, hashMap, zzcdVar.zzfh(), zzcdVar.zzfj(), zzcdVar.zzfg(), zzcdVar.zzff(), zzcdVar.zzfi()); } zzdz(); if (this.zzxs.zzb(zzcdVar)) { zzr("Hit sent to the device AnalyticsService for delivery"); return; } try { this.zzxp.zzc(zzcdVar); zzec(); } catch (SQLiteException e) { zze("Delivery failed to save hit to a database", e); zzco().zza(zzcdVar, "deliver: failed to insert hit to database"); } } public final void zzch() { zzk.zzav(); zzdb(); zzq("Delete all hits from local store"); try { zzay zzayVar = this.zzxp; zzk.zzav(); zzayVar.zzdb(); zzayVar.getWritableDatabase().delete("hits2", null, null); zzay zzayVar2 = this.zzxp; zzk.zzav(); zzayVar2.zzdb(); zzayVar2.getWritableDatabase().delete("properties", null, null); zzec(); } catch (SQLiteException e) { zzd("Failed to delete hits from store", e); } zzdz(); if (this.zzxs.zzdn()) { zzq("Device service unavailable. Can't clear hits stored on the device service."); } } private final boolean zzea() { zzk.zzav(); zzdb(); zzq("Dispatching a batch of local hits"); boolean isConnected = this.zzxs.isConnected(); boolean zzfr = this.zzxq.zzfr(); if ((!isConnected) && (!zzfr)) { zzq("No network or service available. Will retry later"); return false; } long max = Math.max(zzbq.zzer(), zzbq.zzes()); ArrayList arrayList = new ArrayList(); long j = 0; while (true) { try { try { this.zzxp.beginTransaction(); arrayList.clear(); try { List zzd = this.zzxp.zzd(max); if (zzd.isEmpty()) { zzq("Store is empty, nothing to dispatch"); zzee(); try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e) { zze("Failed to commit local dispatch transaction", e); zzee(); return false; } } zza("Hits loaded from store. count", Integer.valueOf(zzd.size())); Iterator it = zzd.iterator(); while (it.hasNext()) { if (it.next().zzfg() == j) { zzd("Database contains successfully uploaded hit", Long.valueOf(j), Integer.valueOf(zzd.size())); zzee(); try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e2) { zze("Failed to commit local dispatch transaction", e2); zzee(); return false; } } } if (this.zzxs.isConnected()) { zzq("Service connected, sending hits to the service"); while (!zzd.isEmpty()) { zzcd zzcdVar = zzd.get(0); if (!this.zzxs.zzb(zzcdVar)) { break; } j = Math.max(j, zzcdVar.zzfg()); zzd.remove(zzcdVar); zzb("Hit sent do device AnalyticsService for delivery", zzcdVar); try { this.zzxp.zze(zzcdVar.zzfg()); arrayList.add(Long.valueOf(zzcdVar.zzfg())); } catch (SQLiteException e3) { zze("Failed to remove hit that was send for delivery", e3); zzee(); try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e4) { zze("Failed to commit local dispatch transaction", e4); zzee(); return false; } } } } if (this.zzxq.zzfr()) { List zzb = this.zzxq.zzb(zzd); Iterator it2 = zzb.iterator(); while (it2.hasNext()) { j = Math.max(j, it2.next().longValue()); } try { this.zzxp.zza(zzb); arrayList.addAll(zzb); } catch (SQLiteException e5) { zze("Failed to remove successfully uploaded hits", e5); zzee(); try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e6) { zze("Failed to commit local dispatch transaction", e6); zzee(); return false; } } } if (arrayList.isEmpty()) { try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e7) { zze("Failed to commit local dispatch transaction", e7); zzee(); return false; } } try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); } catch (SQLiteException e8) { zze("Failed to commit local dispatch transaction", e8); zzee(); return false; } } catch (SQLiteException e9) { zzd("Failed to read hits from persisted store", e9); zzee(); try { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); return false; } catch (SQLiteException e10) { zze("Failed to commit local dispatch transaction", e10); zzee(); return false; } } } catch (Throwable th) { this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); throw th; } this.zzxp.setTransactionSuccessful(); this.zzxp.endTransaction(); throw th; } catch (SQLiteException e11) { zze("Failed to commit local dispatch transaction", e11); zzee(); return false; } } } public final void zzb(zzbw zzbwVar) { long j = this.zzxx; zzk.zzav(); zzdb(); long zzfx = zzcv().zzfx(); zzb("Dispatching local hits. Elapsed time since last dispatch (ms)", Long.valueOf(zzfx != 0 ? Math.abs(zzcn().currentTimeMillis() - zzfx) : -1L)); zzdz(); try { zzea(); zzcv().zzfy(); zzec(); if (zzbwVar != null) { zzbwVar.zza(null); } if (this.zzxx != j) { this.zzxr.zzfq(); } } catch (Exception e) { zze("Local dispatch failed", e); zzcv().zzfy(); zzec(); if (zzbwVar != null) { zzbwVar.zza(e); } } } public final void zzeb() { zzk.zzav(); zzdb(); zzr("Sync dispatching local hits"); long j = this.zzxx; zzdz(); try { zzea(); zzcv().zzfy(); zzec(); if (this.zzxx != j) { this.zzxr.zzfq(); } } catch (Exception e) { zze("Sync local dispatch failed", e); zzec(); } } private final long zzds() { zzk.zzav(); zzdb(); try { return this.zzxp.zzds(); } catch (SQLiteException e) { zze("Failed to get min/max hit times from local store", e); return 0L; } } public final void zzec() { long min; zzk.zzav(); zzdb(); if (this.zzxy || zzef() <= 0) { this.zzxr.unregister(); zzee(); return; } if (this.zzxp.isEmpty()) { this.zzxr.unregister(); zzee(); return; } if (!zzby.zzaai.get().booleanValue()) { this.zzxr.zzfo(); if (!this.zzxr.isConnected()) { zzee(); zzed(); return; } } zzed(); long zzef = zzef(); long zzfx = zzcv().zzfx(); if (zzfx != 0) { min = zzef - Math.abs(zzcn().currentTimeMillis() - zzfx); if (min <= 0) { min = Math.min(zzbq.zzep(), zzef); } } else { min = Math.min(zzbq.zzep(), zzef); } zza("Dispatch scheduled (ms)", Long.valueOf(min)); if (this.zzxu.zzez()) { this.zzxu.zzi(Math.max(1L, min + this.zzxu.zzey())); } else { this.zzxu.zzh(min); } } private final void zzed() { zzbv zzct = zzct(); if (zzct.zzfc() && !zzct.zzez()) { long zzds = zzds(); if (zzds == 0 || Math.abs(zzcn().currentTimeMillis() - zzds) > zzby.zzzm.get().longValue()) { return; } zza("Dispatch alarm scheduled (ms)", Long.valueOf(zzbq.zzeq())); zzct.zzfd(); } } private final void zzee() { if (this.zzxu.zzez()) { zzq("All hits dispatched or no network/service. Going to power save mode"); } this.zzxu.cancel(); zzbv zzct = zzct(); if (zzct.zzez()) { zzct.cancel(); } } private final long zzef() { long j = this.zzxt; if (j != Long.MIN_VALUE) { return j; } long longValue = zzby.zzzh.get().longValue(); zzda zzcu = zzcu(); zzcu.zzdb(); if (!zzcu.zzacv) { return longValue; } zzcu().zzdb(); return r0.zzaax * 1000; } public final void zzy(String str) { Preconditions.checkNotEmpty(str); zzk.zzav(); zzr zza = zzcz.zza(zzco(), str); if (zza == null) { zzd("Parsing failed. Ignoring invalid campaign data", str); return; } String zzfz = zzcv().zzfz(); if (str.equals(zzfz)) { zzt("Ignoring duplicate install campaign"); return; } if (!TextUtils.isEmpty(zzfz)) { zzd("Ignoring multiple install campaigns. original, new", zzfz, str); return; } zzcv().zzad(str); if (zzcv().zzfw().zzj(zzbq.zzex())) { zzd("Campaign received too late, ignoring", zza); return; } zzb("Received installation campaign", zza); Iterator it = this.zzxp.zzf(0L).iterator(); while (it.hasNext()) { zza(it.next(), zza); } } private final void zza(zzas zzasVar, zzr zzrVar) { Preconditions.checkNotNull(zzasVar); Preconditions.checkNotNull(zzrVar); com.google.android.gms.analytics.zza zzaVar = new com.google.android.gms.analytics.zza(zzcm()); zzaVar.zza(zzasVar.zzdj()); zzaVar.enableAdvertisingIdCollection(zzasVar.zzdk()); zzg zzac = zzaVar.zzac(); zzz zzzVar = (zzz) zzac.zzb(zzz.class); zzzVar.zzl("data"); zzzVar.zzb(true); zzac.zza(zzrVar); zzu zzuVar = (zzu) zzac.zzb(zzu.class); zzq zzqVar = (zzq) zzac.zzb(zzq.class); for (Map.Entry entry : zzasVar.zzdm().entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if ("an".equals(key)) { zzqVar.setAppName(value); } else if ("av".equals(key)) { zzqVar.setAppVersion(value); } else if ("aid".equals(key)) { zzqVar.setAppId(value); } else if ("aiid".equals(key)) { zzqVar.setAppInstallerId(value); } else if (CommonConstant.KEY_UID.equals(key)) { zzzVar.setUserId(value); } else { zzuVar.set(key, value); } } zzb("Sending installation campaign to", zzasVar.zzdj(), zzrVar); zzac.zza(zzcv().zzfv()); zzac.zzam(); } private final void zzeg() { zzdb(); zzk.zzav(); this.zzxy = true; this.zzxs.disconnect(); zzec(); } }