789 lines
23 KiB
Java
789 lines
23 KiB
Java
package com.google.android.gms.common.internal.safeparcel;
|
|
|
|
import android.app.PendingIntent;
|
|
import android.os.Bundle;
|
|
import android.os.IBinder;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.util.SparseArray;
|
|
import android.util.SparseBooleanArray;
|
|
import android.util.SparseIntArray;
|
|
import android.util.SparseLongArray;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigInteger;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class SafeParcelWriter {
|
|
public static int beginObjectHeader(Parcel parcel) {
|
|
return zza(parcel, 20293);
|
|
}
|
|
|
|
public static void finishObjectHeader(Parcel parcel, int i) {
|
|
zzb(parcel, i);
|
|
}
|
|
|
|
public static void writeBigDecimal(Parcel parcel, int i, BigDecimal bigDecimal, boolean z) {
|
|
if (bigDecimal == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeByteArray(bigDecimal.unscaledValue().toByteArray());
|
|
parcel.writeInt(bigDecimal.scale());
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeBigDecimalArray(Parcel parcel, int i, BigDecimal[] bigDecimalArr, boolean z) {
|
|
if (bigDecimalArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int length = bigDecimalArr.length;
|
|
parcel.writeInt(length);
|
|
for (int i2 = 0; i2 < length; i2++) {
|
|
parcel.writeByteArray(bigDecimalArr[i2].unscaledValue().toByteArray());
|
|
parcel.writeInt(bigDecimalArr[i2].scale());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeBigInteger(Parcel parcel, int i, BigInteger bigInteger, boolean z) {
|
|
if (bigInteger == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeByteArray(bigInteger.toByteArray());
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeBigIntegerArray(Parcel parcel, int i, BigInteger[] bigIntegerArr, boolean z) {
|
|
if (bigIntegerArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
parcel.writeInt(bigIntegerArr.length);
|
|
for (BigInteger bigInteger : bigIntegerArr) {
|
|
parcel.writeByteArray(bigInteger.toByteArray());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeBoolean(Parcel parcel, int i, boolean z) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(z ? 1 : 0);
|
|
}
|
|
|
|
public static void writeBooleanArray(Parcel parcel, int i, boolean[] zArr, boolean z) {
|
|
if (zArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeBooleanArray(zArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeBooleanList(Parcel parcel, int i, List<Boolean> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(list.get(i2).booleanValue() ? 1 : 0);
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeBooleanObject(Parcel parcel, int i, Boolean bool, boolean z) {
|
|
if (bool != null) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(bool.booleanValue() ? 1 : 0);
|
|
} else if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
}
|
|
|
|
public static void writeBundle(Parcel parcel, int i, Bundle bundle, boolean z) {
|
|
if (bundle == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeBundle(bundle);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeByte(Parcel parcel, int i, byte b) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(b);
|
|
}
|
|
|
|
public static void writeByteArray(Parcel parcel, int i, byte[] bArr, boolean z) {
|
|
if (bArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeByteArray(bArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeByteArrayArray(Parcel parcel, int i, byte[][] bArr, boolean z) {
|
|
if (bArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
parcel.writeInt(bArr.length);
|
|
for (byte[] bArr2 : bArr) {
|
|
parcel.writeByteArray(bArr2);
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeByteArraySparseArray(Parcel parcel, int i, SparseArray<byte[]> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
parcel.writeByteArray(sparseArray.valueAt(i2));
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeChar(Parcel parcel, int i, char c) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(c);
|
|
}
|
|
|
|
public static void writeCharArray(Parcel parcel, int i, char[] cArr, boolean z) {
|
|
if (cArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeCharArray(cArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeDouble(Parcel parcel, int i, double d) {
|
|
zzc(parcel, i, 8);
|
|
parcel.writeDouble(d);
|
|
}
|
|
|
|
public static void writeDoubleArray(Parcel parcel, int i, double[] dArr, boolean z) {
|
|
if (dArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeDoubleArray(dArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeDoubleList(Parcel parcel, int i, List<Double> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeDouble(list.get(i2).doubleValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeDoubleObject(Parcel parcel, int i, Double d, boolean z) {
|
|
if (d != null) {
|
|
zzc(parcel, i, 8);
|
|
parcel.writeDouble(d.doubleValue());
|
|
} else if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
}
|
|
|
|
public static void writeDoubleSparseArray(Parcel parcel, int i, SparseArray<Double> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
parcel.writeDouble(sparseArray.valueAt(i2).doubleValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeFloat(Parcel parcel, int i, float f) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeFloat(f);
|
|
}
|
|
|
|
public static void writeFloatArray(Parcel parcel, int i, float[] fArr, boolean z) {
|
|
if (fArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeFloatArray(fArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeFloatList(Parcel parcel, int i, List<Float> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeFloat(list.get(i2).floatValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeFloatObject(Parcel parcel, int i, Float f, boolean z) {
|
|
if (f != null) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeFloat(f.floatValue());
|
|
} else if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
}
|
|
|
|
public static void writeFloatSparseArray(Parcel parcel, int i, SparseArray<Float> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
parcel.writeFloat(sparseArray.valueAt(i2).floatValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeIBinder(Parcel parcel, int i, IBinder iBinder, boolean z) {
|
|
if (iBinder == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeStrongBinder(iBinder);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeIBinderArray(Parcel parcel, int i, IBinder[] iBinderArr, boolean z) {
|
|
if (iBinderArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeBinderArray(iBinderArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeIBinderList(Parcel parcel, int i, List<IBinder> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeBinderList(list);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeIBinderSparseArray(Parcel parcel, int i, SparseArray<IBinder> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
parcel.writeStrongBinder(sparseArray.valueAt(i2));
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeInt(Parcel parcel, int i, int i2) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(i2);
|
|
}
|
|
|
|
public static void writeIntArray(Parcel parcel, int i, int[] iArr, boolean z) {
|
|
if (iArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeIntArray(iArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeIntegerList(Parcel parcel, int i, List<Integer> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(list.get(i2).intValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeIntegerObject(Parcel parcel, int i, Integer num, boolean z) {
|
|
if (num != null) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(num.intValue());
|
|
} else if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
}
|
|
|
|
public static void writeList(Parcel parcel, int i, List list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeList(list);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeLong(Parcel parcel, int i, long j) {
|
|
zzc(parcel, i, 8);
|
|
parcel.writeLong(j);
|
|
}
|
|
|
|
public static void writeLongArray(Parcel parcel, int i, long[] jArr, boolean z) {
|
|
if (jArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeLongArray(jArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeLongList(Parcel parcel, int i, List<Long> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeLong(list.get(i2).longValue());
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeLongObject(Parcel parcel, int i, Long l, boolean z) {
|
|
if (l != null) {
|
|
zzc(parcel, i, 8);
|
|
parcel.writeLong(l.longValue());
|
|
} else if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
}
|
|
|
|
public static void writeParcel(Parcel parcel, int i, Parcel parcel2, boolean z) {
|
|
if (parcel2 == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.appendFrom(parcel2, 0, parcel2.dataSize());
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeParcelArray(Parcel parcel, int i, Parcel[] parcelArr, boolean z) {
|
|
if (parcelArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
parcel.writeInt(parcelArr.length);
|
|
for (Parcel parcel2 : parcelArr) {
|
|
if (parcel2 != null) {
|
|
parcel.writeInt(parcel2.dataSize());
|
|
parcel.appendFrom(parcel2, 0, parcel2.dataSize());
|
|
} else {
|
|
parcel.writeInt(0);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeParcelList(Parcel parcel, int i, List<Parcel> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
Parcel parcel2 = list.get(i2);
|
|
if (parcel2 != null) {
|
|
parcel.writeInt(parcel2.dataSize());
|
|
parcel.appendFrom(parcel2, 0, parcel2.dataSize());
|
|
} else {
|
|
parcel.writeInt(0);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeParcelSparseArray(Parcel parcel, int i, SparseArray<Parcel> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
Parcel valueAt = sparseArray.valueAt(i2);
|
|
if (valueAt != null) {
|
|
parcel.writeInt(valueAt.dataSize());
|
|
parcel.appendFrom(valueAt, 0, valueAt.dataSize());
|
|
} else {
|
|
parcel.writeInt(0);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeParcelable(Parcel parcel, int i, Parcelable parcelable, int i2, boolean z) {
|
|
if (parcelable == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcelable.writeToParcel(parcel, i2);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writePendingIntent(Parcel parcel, int i, PendingIntent pendingIntent, boolean z) {
|
|
if (pendingIntent == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
PendingIntent.writePendingIntentOrNullToParcel(pendingIntent, parcel);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeShort(Parcel parcel, int i, short s) {
|
|
zzc(parcel, i, 4);
|
|
parcel.writeInt(s);
|
|
}
|
|
|
|
public static void writeSparseBooleanArray(Parcel parcel, int i, SparseBooleanArray sparseBooleanArray, boolean z) {
|
|
if (sparseBooleanArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeSparseBooleanArray(sparseBooleanArray);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeSparseIntArray(Parcel parcel, int i, SparseIntArray sparseIntArray, boolean z) {
|
|
if (sparseIntArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseIntArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseIntArray.keyAt(i2));
|
|
parcel.writeInt(sparseIntArray.valueAt(i2));
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeSparseLongArray(Parcel parcel, int i, SparseLongArray sparseLongArray, boolean z) {
|
|
if (sparseLongArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseLongArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseLongArray.keyAt(i2));
|
|
parcel.writeLong(sparseLongArray.valueAt(i2));
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static void writeString(Parcel parcel, int i, String str, boolean z) {
|
|
if (str == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeString(str);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeStringArray(Parcel parcel, int i, String[] strArr, boolean z) {
|
|
if (strArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeStringArray(strArr);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeStringList(Parcel parcel, int i, List<String> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
}
|
|
} else {
|
|
int zza = zza(parcel, i);
|
|
parcel.writeStringList(list);
|
|
zzb(parcel, zza);
|
|
}
|
|
}
|
|
|
|
public static void writeStringSparseArray(Parcel parcel, int i, SparseArray<String> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
parcel.writeString(sparseArray.valueAt(i2));
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static <T extends Parcelable> void writeTypedArray(Parcel parcel, int i, T[] tArr, int i2, boolean z) {
|
|
if (tArr == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
parcel.writeInt(tArr.length);
|
|
for (T t : tArr) {
|
|
if (t == null) {
|
|
parcel.writeInt(0);
|
|
} else {
|
|
zzd(parcel, t, i2);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static <T extends Parcelable> void writeTypedList(Parcel parcel, int i, List<T> list, boolean z) {
|
|
if (list == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = list.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
T t = list.get(i2);
|
|
if (t == null) {
|
|
parcel.writeInt(0);
|
|
} else {
|
|
zzd(parcel, t, 0);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
public static <T extends Parcelable> void writeTypedSparseArray(Parcel parcel, int i, SparseArray<T> sparseArray, boolean z) {
|
|
if (sparseArray == null) {
|
|
if (z) {
|
|
zzc(parcel, i, 0);
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
int zza = zza(parcel, i);
|
|
int size = sparseArray.size();
|
|
parcel.writeInt(size);
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
parcel.writeInt(sparseArray.keyAt(i2));
|
|
T valueAt = sparseArray.valueAt(i2);
|
|
if (valueAt == null) {
|
|
parcel.writeInt(0);
|
|
} else {
|
|
zzd(parcel, valueAt, 0);
|
|
}
|
|
}
|
|
zzb(parcel, zza);
|
|
}
|
|
|
|
private static int zza(Parcel parcel, int i) {
|
|
parcel.writeInt(i | (-65536));
|
|
parcel.writeInt(0);
|
|
return parcel.dataPosition();
|
|
}
|
|
|
|
private static void zzb(Parcel parcel, int i) {
|
|
int dataPosition = parcel.dataPosition();
|
|
parcel.setDataPosition(i - 4);
|
|
parcel.writeInt(dataPosition - i);
|
|
parcel.setDataPosition(dataPosition);
|
|
}
|
|
|
|
private static void zzc(Parcel parcel, int i, int i2) {
|
|
parcel.writeInt(i | (i2 << 16));
|
|
}
|
|
|
|
private static void zzd(Parcel parcel, Parcelable parcelable, int i) {
|
|
int dataPosition = parcel.dataPosition();
|
|
parcel.writeInt(1);
|
|
int dataPosition2 = parcel.dataPosition();
|
|
parcelable.writeToParcel(parcel, i);
|
|
int dataPosition3 = parcel.dataPosition();
|
|
parcel.setDataPosition(dataPosition);
|
|
parcel.writeInt(dataPosition3 - dataPosition2);
|
|
parcel.setDataPosition(dataPosition3);
|
|
}
|
|
|
|
private SafeParcelWriter() {
|
|
}
|
|
}
|