package androidx.versionedparcelable; import android.os.Bundle; import android.os.IBinder; import android.os.IInterface; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.SparseIntArray; import androidx.annotation.RestrictTo; import androidx.collection.ArrayMap; import c.d.b.a.a; import java.lang.reflect.Method; @RestrictTo({RestrictTo.Scope.LIBRARY}) public class VersionedParcelParcel extends VersionedParcel { private static final boolean DEBUG = false; private static final String TAG = "VersionedParcelParcel"; private int mCurrentField; private final int mEnd; private int mFieldId; private int mNextRead; private final int mOffset; private final Parcel mParcel; private final SparseIntArray mPositionLookup; private final String mPrefix; public VersionedParcelParcel(Parcel parcel) { this(parcel, parcel.dataPosition(), parcel.dataSize(), "", new ArrayMap(), new ArrayMap(), new ArrayMap()); } private VersionedParcelParcel(Parcel parcel, int i, int i2, String str, ArrayMap arrayMap, ArrayMap arrayMap2, ArrayMap arrayMap3) { super(arrayMap, arrayMap2, arrayMap3); this.mPositionLookup = new SparseIntArray(); this.mCurrentField = -1; this.mNextRead = 0; this.mFieldId = -1; this.mParcel = parcel; this.mOffset = i; this.mEnd = i2; this.mNextRead = i; this.mPrefix = str; } @Override // androidx.versionedparcelable.VersionedParcel public void closeField() { int i = this.mCurrentField; if (i >= 0) { int i2 = this.mPositionLookup.get(i); int dataPosition = this.mParcel.dataPosition(); this.mParcel.setDataPosition(i2); this.mParcel.writeInt(dataPosition - i2); this.mParcel.setDataPosition(dataPosition); } } @Override // androidx.versionedparcelable.VersionedParcel public VersionedParcel createSubParcel() { Parcel parcel = this.mParcel; int dataPosition = parcel.dataPosition(); int i = this.mNextRead; if (i == this.mOffset) { i = this.mEnd; } return new VersionedParcelParcel(parcel, dataPosition, i, a.D(new StringBuilder(), this.mPrefix, " "), this.mReadCache, this.mWriteCache, this.mParcelizerCache); } @Override // androidx.versionedparcelable.VersionedParcel public boolean readBoolean() { return this.mParcel.readInt() != 0; } @Override // androidx.versionedparcelable.VersionedParcel public Bundle readBundle() { return this.mParcel.readBundle(getClass().getClassLoader()); } @Override // androidx.versionedparcelable.VersionedParcel public byte[] readByteArray() { int readInt = this.mParcel.readInt(); if (readInt < 0) { return null; } byte[] bArr = new byte[readInt]; this.mParcel.readByteArray(bArr); return bArr; } @Override // androidx.versionedparcelable.VersionedParcel public CharSequence readCharSequence() { return (CharSequence) TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(this.mParcel); } @Override // androidx.versionedparcelable.VersionedParcel public double readDouble() { return this.mParcel.readDouble(); } @Override // androidx.versionedparcelable.VersionedParcel public boolean readField(int i) { while (this.mNextRead < this.mEnd) { int i2 = this.mFieldId; if (i2 == i) { return true; } if (String.valueOf(i2).compareTo(String.valueOf(i)) > 0) { return false; } this.mParcel.setDataPosition(this.mNextRead); int readInt = this.mParcel.readInt(); this.mFieldId = this.mParcel.readInt(); this.mNextRead += readInt; } return this.mFieldId == i; } @Override // androidx.versionedparcelable.VersionedParcel public float readFloat() { return this.mParcel.readFloat(); } @Override // androidx.versionedparcelable.VersionedParcel public int readInt() { return this.mParcel.readInt(); } @Override // androidx.versionedparcelable.VersionedParcel public long readLong() { return this.mParcel.readLong(); } @Override // androidx.versionedparcelable.VersionedParcel public T readParcelable() { return (T) this.mParcel.readParcelable(getClass().getClassLoader()); } @Override // androidx.versionedparcelable.VersionedParcel public String readString() { return this.mParcel.readString(); } @Override // androidx.versionedparcelable.VersionedParcel public IBinder readStrongBinder() { return this.mParcel.readStrongBinder(); } @Override // androidx.versionedparcelable.VersionedParcel public void setOutputField(int i) { closeField(); this.mCurrentField = i; this.mPositionLookup.put(i, this.mParcel.dataPosition()); writeInt(0); writeInt(i); } @Override // androidx.versionedparcelable.VersionedParcel public void writeBoolean(boolean z2) { this.mParcel.writeInt(z2 ? 1 : 0); } @Override // androidx.versionedparcelable.VersionedParcel public void writeBundle(Bundle bundle) { this.mParcel.writeBundle(bundle); } @Override // androidx.versionedparcelable.VersionedParcel public void writeByteArray(byte[] bArr) { if (bArr != null) { this.mParcel.writeInt(bArr.length); this.mParcel.writeByteArray(bArr); return; } this.mParcel.writeInt(-1); } @Override // androidx.versionedparcelable.VersionedParcel public void writeByteArray(byte[] bArr, int i, int i2) { if (bArr != null) { this.mParcel.writeInt(bArr.length); this.mParcel.writeByteArray(bArr, i, i2); return; } this.mParcel.writeInt(-1); } @Override // androidx.versionedparcelable.VersionedParcel public void writeCharSequence(CharSequence charSequence) { TextUtils.writeToParcel(charSequence, this.mParcel, 0); } @Override // androidx.versionedparcelable.VersionedParcel public void writeDouble(double d) { this.mParcel.writeDouble(d); } @Override // androidx.versionedparcelable.VersionedParcel public void writeFloat(float f) { this.mParcel.writeFloat(f); } @Override // androidx.versionedparcelable.VersionedParcel public void writeInt(int i) { this.mParcel.writeInt(i); } @Override // androidx.versionedparcelable.VersionedParcel public void writeLong(long j) { this.mParcel.writeLong(j); } @Override // androidx.versionedparcelable.VersionedParcel public void writeParcelable(Parcelable parcelable) { this.mParcel.writeParcelable(parcelable, 0); } @Override // androidx.versionedparcelable.VersionedParcel public void writeString(String str) { this.mParcel.writeString(str); } @Override // androidx.versionedparcelable.VersionedParcel public void writeStrongBinder(IBinder iBinder) { this.mParcel.writeStrongBinder(iBinder); } @Override // androidx.versionedparcelable.VersionedParcel public void writeStrongInterface(IInterface iInterface) { this.mParcel.writeStrongInterface(iInterface); } }