discord-jadx/app/src/main/java/androidx/versionedparcelable/VersionedParcelParcel.java

230 lines
7.4 KiB
Java

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<String, Method> arrayMap, ArrayMap<String, Method> arrayMap2, ArrayMap<String, Class> 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 extends Parcelable> 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);
}
}