public Address createFromParcel(Parcel in) { String language = in.readString(); String country = in.readString(); Locale locale = country.length() > 0 ? new Locale(language, country) : new Locale(language); Address a = new Address(locale); int N = in.readInt(); if (N > 0) { a.mAddressLines = new HashMap<Integer, String>(N); for (int i = 0; i < N; i++) { int index = in.readInt(); String line = in.readString(); a.mAddressLines.put(index, line); a.mMaxAddressLineIndex = Math.max(a.mMaxAddressLineIndex, index); } } else { a.mAddressLines = null; a.mMaxAddressLineIndex = -1; } a.mFeatureName = in.readString(); a.mAdminArea = in.readString(); a.mSubAdminArea = in.readString(); a.mLocality = in.readString(); a.mSubLocality = in.readString(); a.mThoroughfare = in.readString(); a.mSubThoroughfare = in.readString(); a.mPremises = in.readString(); a.mPostalCode = in.readString(); a.mCountryCode = in.readString(); a.mCountryName = in.readString(); a.mHasLatitude = in.readInt() == 0 ? false : true; if (a.mHasLatitude) { a.mLatitude = in.readDouble(); } a.mHasLongitude = in.readInt() == 0 ? false : true; if (a.mHasLongitude) { a.mLongitude = in.readDouble(); } a.mPhone = in.readString(); a.mUrl = in.readString(); a.mExtras = in.readBundle(); return a; }