package com.google.android.gms.common.data; import android.content.ContentValues; import android.database.CharArrayBuffer; import android.database.Cursor; import android.database.CursorIndexOutOfBoundsException; import android.database.CursorWindow; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; import com.google.android.gms.common.internal.Asserts; import com.google.android.gms.common.internal.Preconditions; import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable; import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter; import com.google.android.gms.common.sqlite.CursorWrapper; import java.io.Closeable; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /* JADX INFO: compiled from: com.google.android.gms:play-services-base@@18.4.0 */ /* JADX INFO: loaded from: classes2.dex */ public final class DataHolder extends AbstractSafeParcelable implements Closeable { public static final Parcelable.Creator CREATOR = new zaf(); private static final Builder zaf = new zab(new String[0], null); final int zaa; Bundle zab; int[] zac; int zad; boolean zae; private final String[] zag; private final CursorWindow[] zah; private final int zai; private final Bundle zaj; private boolean zak; /* JADX INFO: compiled from: com.google.android.gms:play-services-base@@18.4.0 */ public static class Builder { private final String[] zaa; private final ArrayList zab = new ArrayList(); private final HashMap zac = new HashMap(); /* synthetic */ Builder(String[] strArr, String str, zac zacVar) { this.zaa = (String[]) Preconditions.checkNotNull(strArr); } public DataHolder build(int i) { return new DataHolder(this, i); } public Builder withRow(ContentValues contentValues) { Asserts.checkNotNull(contentValues); HashMap map = new HashMap(contentValues.size()); for (Map.Entry entry : contentValues.valueSet()) { map.put(entry.getKey(), entry.getValue()); } return zaa(map); } public Builder zaa(HashMap map) { Asserts.checkNotNull(map); this.zab.add(map); return this; } public DataHolder build(int i, Bundle bundle) { return new DataHolder(this, i, bundle); } } DataHolder(int i, String[] strArr, CursorWindow[] cursorWindowArr, int i2, Bundle bundle) { this.zae = false; this.zak = true; this.zaa = i; this.zag = strArr; this.zah = cursorWindowArr; this.zai = i2; this.zaj = bundle; } public DataHolder(String[] strArr, CursorWindow[] cursorWindowArr, int i, Bundle bundle) { this.zae = false; this.zak = true; this.zaa = 1; this.zag = (String[]) Preconditions.checkNotNull(strArr); this.zah = (CursorWindow[]) Preconditions.checkNotNull(cursorWindowArr); this.zai = i; this.zaj = bundle; zad(); } public static Builder builder(String[] strArr) { return new Builder(strArr, null, 0 == true ? 1 : 0); } public static DataHolder empty(int i) { return new DataHolder(zaf, i, (Bundle) null); } private final void zae(String str, int i) { Bundle bundle = this.zab; if (bundle == null || !bundle.containsKey(str)) { throw new IllegalArgumentException("No such column: ".concat(String.valueOf(str))); } if (isClosed()) { throw new IllegalArgumentException("Buffer is closed."); } if (i < 0 || i >= this.zad) { throw new CursorIndexOutOfBoundsException(i, this.zad); } } /* JADX WARN: Code restructure failed: missing block: B:52:0x0133, code lost: if (r5 != false) goto L68; */ /* JADX WARN: Code restructure failed: missing block: B:53:0x0135, code lost: android.util.Log.d("DataHolder", "Couldn't populate window data for row " + r4 + " - allocating new window."); r2.freeLastRow(); r2 = new android.database.CursorWindow(false); r2.setStartPosition(r4); r2.setNumColumns(r13.zaa.length); r3.add(r2); r4 = r4 - 1; r5 = true; */ /* JADX WARN: Code restructure failed: missing block: B:54:0x0167, code lost: r4 = r4 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:56:0x0171, code lost: throw new com.google.android.gms.common.data.zad("Could not add the value to a new CursorWindow. The size of value may be larger than what a CursorWindow can handle."); */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ private static android.database.CursorWindow[] zaf(com.google.android.gms.common.data.DataHolder.Builder r13, int r14) { /* Method dump skipped, instruction units count: 403 To view this dump change 'Code comments level' option to 'DEBUG' */ throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.common.data.DataHolder.zaf(com.google.android.gms.common.data.DataHolder$Builder, int):android.database.CursorWindow[]"); } @Override // java.io.Closeable, java.lang.AutoCloseable public void close() { synchronized (this) { if (!this.zae) { this.zae = true; int i = 0; while (true) { CursorWindow[] cursorWindowArr = this.zah; if (i >= cursorWindowArr.length) { break; } cursorWindowArr[i].close(); i++; } } } } protected final void finalize() throws Throwable { try { if (this.zak && this.zah.length > 0 && !isClosed()) { close(); Log.e("DataBuffer", "Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: " + toString() + ")"); } } finally { super.finalize(); } } public boolean getBoolean(String str, int i, int i2) { zae(str, i); return Long.valueOf(this.zah[i2].getLong(i, this.zab.getInt(str))).longValue() == 1; } public byte[] getByteArray(String str, int i, int i2) { zae(str, i); return this.zah[i2].getBlob(i, this.zab.getInt(str)); } public int getCount() { return this.zad; } public int getInteger(String str, int i, int i2) { zae(str, i); return this.zah[i2].getInt(i, this.zab.getInt(str)); } public long getLong(String str, int i, int i2) { zae(str, i); return this.zah[i2].getLong(i, this.zab.getInt(str)); } public Bundle getMetadata() { return this.zaj; } public int getStatusCode() { return this.zai; } public String getString(String str, int i, int i2) { zae(str, i); return this.zah[i2].getString(i, this.zab.getInt(str)); } public int getWindowIndex(int i) { int length; int i2 = 0; Preconditions.checkState(i >= 0 && i < this.zad); while (true) { int[] iArr = this.zac; length = iArr.length; if (i2 >= length) { break; } if (i < iArr[i2]) { i2--; break; } i2++; } return i2 == length ? i2 - 1 : i2; } public boolean hasColumn(String str) { return this.zab.containsKey(str); } public boolean hasNull(String str, int i, int i2) { zae(str, i); return this.zah[i2].isNull(i, this.zab.getInt(str)); } public boolean isClosed() { boolean z; synchronized (this) { z = this.zae; } return z; } @Override // android.os.Parcelable public final void writeToParcel(Parcel parcel, int i) { String[] strArr = this.zag; int iBeginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel); SafeParcelWriter.writeStringArray(parcel, 1, strArr, false); SafeParcelWriter.writeTypedArray(parcel, 2, this.zah, i, false); SafeParcelWriter.writeInt(parcel, 3, getStatusCode()); SafeParcelWriter.writeBundle(parcel, 4, getMetadata(), false); SafeParcelWriter.writeInt(parcel, 1000, this.zaa); SafeParcelWriter.finishObjectHeader(parcel, iBeginObjectHeader); if ((i & 1) != 0) { close(); } } public final double zaa(String str, int i, int i2) { zae(str, i); return this.zah[i2].getDouble(i, this.zab.getInt(str)); } public final float zab(String str, int i, int i2) { zae(str, i); return this.zah[i2].getFloat(i, this.zab.getInt(str)); } public final void zac(String str, int i, int i2, CharArrayBuffer charArrayBuffer) { zae(str, i); this.zah[i2].copyStringToBuffer(i, this.zab.getInt(str), charArrayBuffer); } public final void zad() { this.zab = new Bundle(); int i = 0; int i2 = 0; while (true) { String[] strArr = this.zag; if (i2 >= strArr.length) { break; } this.zab.putInt(strArr[i2], i2); i2++; } this.zac = new int[this.zah.length]; int numRows = 0; while (true) { CursorWindow[] cursorWindowArr = this.zah; if (i >= cursorWindowArr.length) { this.zad = numRows; return; } this.zac[i] = numRows; numRows += this.zah[i].getNumRows() - (numRows - cursorWindowArr[i].getStartPosition()); i++; } } public DataHolder(Cursor cursor, int i, Bundle bundle) { int startPosition; CursorWrapper cursorWrapper = new CursorWrapper(cursor); String[] columnNames = cursorWrapper.getColumnNames(); ArrayList arrayList = new ArrayList(); try { int count = cursorWrapper.getCount(); CursorWindow window = cursorWrapper.getWindow(); if (window == null || window.getStartPosition() != 0) { startPosition = 0; } else { window.acquireReference(); cursorWrapper.setWindow(null); arrayList.add(window); startPosition = window.getNumRows(); } while (startPosition < count) { if (!cursorWrapper.moveToPosition(startPosition)) { break; } CursorWindow window2 = cursorWrapper.getWindow(); if (window2 != null) { window2.acquireReference(); cursorWrapper.setWindow(null); } else { window2 = new CursorWindow(false); window2.setStartPosition(startPosition); cursorWrapper.fillWindow(startPosition, window2); } if (window2.getNumRows() == 0) { break; } arrayList.add(window2); startPosition = window2.getStartPosition() + window2.getNumRows(); } cursorWrapper.close(); this(columnNames, (CursorWindow[]) arrayList.toArray(new CursorWindow[arrayList.size()]), i, bundle); } catch (Throwable th) { cursorWrapper.close(); throw th; } } private DataHolder(Builder builder, int i, Bundle bundle) { this(builder.zaa, zaf(builder, -1), i, (Bundle) null); } }