ShadowParcel.java revision 053f4fe6cc16a60b7c96ad79472274b3c8604ad2
1cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhampackage com.xtremelabs.robolectric.shadows; 2cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham 3cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport android.os.Parcel; 46ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkelimport android.os.Parcelable; 54851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkelimport android.os.Bundle; 6cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.Robolectric; 7cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.internal.Implementation; 8cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhamimport com.xtremelabs.robolectric.internal.Implements; 9053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawalaimport com.xtremelabs.robolectric.internal.RealObject; 10cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham 11e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plissonimport java.util.ArrayList; 12e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plissonimport java.util.List; 13e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson 14cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham@Implements(Parcel.class) 156ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel@SuppressWarnings("unchecked") 16cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowhampublic class ShadowParcel { 177598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz private ArrayList parcelData = new ArrayList(); 187598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz private int index = 0; 197598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 20053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @RealObject 21053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala private Parcel realParcel; 22053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 237598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz @Implementation 247598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public static Parcel obtain() { 257598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return Robolectric.newInstanceOf(Parcel.class); 267598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 277598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 287598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz @Implementation 297598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public void writeString(String str) { 307598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz if (str == null) { 317598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return; 327598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 337598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz parcelData.add(str); 347598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 357598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 367598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz @Implementation 377598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public void writeInt(int i) { 387598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz parcelData.add(i); 397598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 407598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 417598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz @Implementation 42e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson public void writeLong(long i) { 43e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson parcelData.add(i); 44e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson } 454851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel 460fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham @Implementation 47dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeFloat(float f) { 48dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel parcelData.add(f); 49dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 50dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 51dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 52dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeDouble(double f) { 53dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel parcelData.add(f); 54dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 55dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 56dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 570fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham @SuppressWarnings("unchecked") 58053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala public void writeByte(byte b) { 59053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala parcelData.add(b); 600fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham } 61e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson 62e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson @Implementation 637598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public String readString() { 647598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return index < parcelData.size() ? (String) parcelData.get(index++) : null; 657598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 667598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 677598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz @Implementation 687598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public int readInt() { 697598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return index < parcelData.size() ? (Integer) parcelData.get(index++) : 0; 707598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 717598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 72e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson @Implementation 73dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public float readFloat() { 74dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel return index < parcelData.size() ? (Float) parcelData.get(index++) : 0; 75dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 76dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 77dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 78dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public double readDouble() { 79dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel return index < parcelData.size() ? (Double) parcelData.get(index++) : 0; 80dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 81dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 82dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 830fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham public byte readByte() { 844851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel return index < parcelData.size() ? (Byte) parcelData.get(index++) : 0; 850fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham } 864851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel 870fbe55be997150aa5c41faa8276e8b7ab8d826ecadriancowham @Implementation 88e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson public long readLong() { 89e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson return index < parcelData.size() ? (Long) parcelData.get(index++) : 0; 90e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson } 91e1deb33276ab52fe01c4d6a4f0a3d02c29ebdc6aSebastien Plisson 926ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel @Implementation 934851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel public Bundle readBundle() { 944851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel return index < parcelData.size() ? (Bundle) parcelData.get(index++) : null; 954851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel } 964851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel 974851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel @Implementation 984851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel public Bundle readBundle(ClassLoader loader) { 994851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel return readBundle(); 1004851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel } 1014851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel 1024851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel @Implementation 1034851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel public void writeBundle(Bundle bundle) { 1044851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel parcelData.add(bundle); 1054851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel } 1064851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel 1074851b76e6ef185e8588c351cb303eb90f7e765e9Jan Berkel @Implementation 1086ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel public void writeParcelable(Parcelable p, int flags) { 1096ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel parcelData.add(p); 1106ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel } 1116ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel 1126ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel @Implementation 1136ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel public Parcelable readParcelable(ClassLoader cl) { 1146ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel return index < parcelData.size() ? (Parcelable) parcelData.get(index++) : null; 1156ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel } 1166ca1c54a32a83fcc3e347c141a0fc3ba653193b3Jan Berkel 117dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 118dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void readFloatArray(float[] val) { 119dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 120dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel if (val.length != n) throw new RuntimeException("bad array lengths"); 121053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala for (int i = 0; i < val.length; i++) { 122dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel val[i] = readFloat(); 123dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 124dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 125dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 126dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 127dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeFloatArray(float[] val) { 128dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel writeInt(val.length); 129dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel for (float f : val) writeFloat(f); 130dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 131dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 132dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 133dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeDoubleArray(double[] val) { 134dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel writeInt(val.length); 135dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel for (double f : val) writeDouble(f); 136dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 137dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 138dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 139dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void readDoubleArray(double[] val) { 140dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 141dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel if (val.length != n) throw new RuntimeException("bad array lengths"); 142053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala for (int i = 0; i < val.length; i++) { 143dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel val[i] = readDouble(); 144dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 145dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 146dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 147dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 148dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeIntArray(int[] val) { 149dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel writeInt(val.length); 150dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel for (int f : val) writeInt(f); 151dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 152dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 153dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 154dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void readIntArray(int[] val) { 155dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 156dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel if (val.length != n) throw new RuntimeException("bad array lengths"); 157053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala for (int i = 0; i < val.length; i++) { 158dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel val[i] = readInt(); 159dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 160dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 161dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 162dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 163dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeLongArray(long[] val) { 164dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel writeInt(val.length); 165dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel for (long f : val) writeLong(f); 166dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 167dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 168dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 169dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void readLongArray(long[] val) { 170dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 171dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel if (val.length != n) throw new RuntimeException("bad array lengths"); 172053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala for (int i = 0; i < val.length; i++) { 173dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel val[i] = readLong(); 174dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 175dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 176dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 177dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 178dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void writeStringArray(String[] val) { 179dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel writeInt(val.length); 180dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel for (String f : val) writeString(f); 181dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 182dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 183dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel @Implementation 184dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel public void readStringArray(String[] val) { 185dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 186dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel if (val.length != n) throw new RuntimeException("bad array lengths"); 187053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala for (int i = 0; i < val.length; i++) { 188dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel val[i] = readString(); 189dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 190dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 191dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 192053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 193053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala public final ArrayList<String> createStringArrayList() { 194053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = readInt(); 195053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (n < 0) { 196053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return null; 197053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 198053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 199053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ArrayList<String> l = new ArrayList<String>(n); 200053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (n > 0) { 201053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(readString()); 202053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala n--; 203053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 204053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return l; 205053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 206dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 207053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 208053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala public ArrayList createTypedArrayList(Parcelable.Creator c) { 209053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = readInt(); 210053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (n < 0) { 211053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return null; 212053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 213dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 214053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ArrayList l = new ArrayList(n); 215dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 216053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (n > 0) { 217053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (readInt() != 0) { 218053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(c.createFromParcel(realParcel)); 219053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } else { 220053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(null); 221053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 222053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala n--; 223053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 224053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return l; 225053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 226053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 227053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 228053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala public final void writeTypedList(List val) { 229053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (val == null) { 230053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(-1); 231053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return; 232053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 233053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 234053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = val.size(); 235053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int i = 0; 236053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(n); 237053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (i < n) { 238053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala Object item = val.get(i); 239053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (item != null) { 240053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(1); 241053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ((Parcelable) item).writeToParcel(realParcel, 0); 242053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } else { 243053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(0); 244053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 245053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala i++; 246053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 247053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 248dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 2497598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public int getIndex() { 2507598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return index; 2517598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 2527598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 2537598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public List getParcelData() { 2547598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return parcelData; 2557598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 256dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 257cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham} 258