ShadowParcel.java revision 0bf1d6a0ed6c10719f9390cbed31c64142c41ccf
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 1840bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala public void readStringArray(String[] dest) { 185dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel int n = readInt(); 1860bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala if (dest.length != n) throw new RuntimeException("bad array lengths"); 1870bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala for (int i = 0; i < dest.length; i++) { 1880bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala dest[i] = readString(); 1890bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 1900bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 1910bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala 1920bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala @Implementation 1930bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala public void writeStringList(List<String> strings) { 1940bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala if (strings == null) { 1950bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala writeInt(-1); 1960bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala return; 1970bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 1980bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala int count = strings.size(); 1990bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala int i=0; 2000bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala writeInt(count); 2010bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala while (i < count) { 2020bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala writeString(strings.get(i)); 2030bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala i++; 2040bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 2050bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 2060bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala 2070bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala @Implementation 2080bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala public void readStringList(List<String> list) { 2090bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala int listSizeBeforeChange = list.size(); 2100bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala int addCount = readInt(); 2110bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala int i = 0; 2120bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala for (; i < listSizeBeforeChange && i < addCount; i++) { 2130bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala list.set(i, readString()); 2140bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 2150bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala for (; i<addCount; i++) { 2160bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala list.add(readString()); 2170bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala } 2180bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala for (; i<listSizeBeforeChange; i++) { 2190bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala list.remove(addCount); 220dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 221dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel } 222dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 223053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 2240bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala public ArrayList<String> createStringArrayList() { 225053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = readInt(); 226053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (n < 0) { 227053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return null; 228053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 229053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 230053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ArrayList<String> l = new ArrayList<String>(n); 231053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (n > 0) { 232053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(readString()); 233053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala n--; 234053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 235053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return l; 236053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 237dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 238053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 239053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala public ArrayList createTypedArrayList(Parcelable.Creator c) { 240053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = readInt(); 241053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (n < 0) { 242053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return null; 243053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 244dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 245053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ArrayList l = new ArrayList(n); 246dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 247053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (n > 0) { 248053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (readInt() != 0) { 249053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(c.createFromParcel(realParcel)); 250053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } else { 251053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala l.add(null); 252053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 253053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala n--; 254053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 255053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return l; 256053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 257053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 258053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala @Implementation 2590bf1d6a0ed6c10719f9390cbed31c64142c41ccfPhil Goodwin & Rick Kawala public void writeTypedList(List val) { 260053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (val == null) { 261053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(-1); 262053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala return; 263053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 264053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala 265053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int n = val.size(); 266053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala int i = 0; 267053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(n); 268053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala while (i < n) { 269053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala Object item = val.get(i); 270053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala if (item != null) { 271053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(1); 272053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala ((Parcelable) item).writeToParcel(realParcel, 0); 273053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } else { 274053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala writeInt(0); 275053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 276053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala i++; 277053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 278053f4fe6cc16a60b7c96ad79472274b3c8604ad2Phil Goodwin & Rick Kawala } 279dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 2807598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public int getIndex() { 2817598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return index; 2827598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 2837598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 2847598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public List getParcelData() { 2857598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return parcelData; 2867598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 287dab3a74f4697f04455668863c2c62cd14745c230Jan Berkel 288cb6dcc93e483e0537f8c93595bb6687b392a0d2eadriancowham} 289