19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.location; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashMap; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Locale; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Map; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Set; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A class representing an Address, i.e, a set of Strings describing a location. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The addres format is a simplified version of xAL (eXtensible Address Language) 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.oasis-open.org/committees/ciq/ciq.html#6 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Address implements Parcelable { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Locale mLocale; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mFeatureName; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private HashMap<Integer, String> mAddressLines; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mMaxAddressLineIndex = -1; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mAdminArea; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mSubAdminArea; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mLocality; 44a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru private String mSubLocality; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mThoroughfare; 46a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru private String mSubThoroughfare; 47a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru private String mPremises; 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mPostalCode; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mCountryCode; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mCountryName; 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private double mLatitude; 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private double mLongitude; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mHasLatitude = false; 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mHasLongitude = false; 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mPhone; 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mUrl; 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Bundle mExtras = null; 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new Address object set to the given Locale and with all 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * other fields initialized to null or false. 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Address(Locale locale) { 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLocale = locale; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the Locale associated with this address. 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Locale getLocale() { 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLocale; 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the largest index currently in use to specify an address line. 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If no address lines are specified, -1 is returned. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getMaxAddressLineIndex() { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mMaxAddressLineIndex; 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a line of the address numbered by the given index 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (starting at 0), or null if no such line is present. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException if index < 0 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getAddressLine(int index) { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (index < 0) { 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException("index = " + index + " < 0"); 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mAddressLines == null? null : mAddressLines.get(index); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the line of the address numbered by index (starting at 0) to the 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * given String, which may be null. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException if index < 0 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setAddressLine(int index, String line) { 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (index < 0) { 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException("index = " + index + " < 0"); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mAddressLines == null) { 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAddressLines = new HashMap<Integer, String>(); 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mAddressLines.put(index, line); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (line == null) { 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // We've eliminated a line, recompute the max index 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMaxAddressLineIndex = -1; 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (Integer i : mAddressLines.keySet()) { 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMaxAddressLineIndex = Math.max(mMaxAddressLineIndex, i); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMaxAddressLineIndex = Math.max(mMaxAddressLineIndex, index); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the feature name of the address, for example, "Golden Gate Bridge", or null 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if it is unknown 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getFeatureName() { 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mFeatureName; 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the feature name of the address to the given String, which may be null 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setFeatureName(String featureName) { 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFeatureName = featureName; 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the administrative area name of the address, for example, "CA", or null if 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it is unknown 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getAdminArea() { 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mAdminArea; 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the administrative area name of the address to the given String, which may be null 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setAdminArea(String adminArea) { 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.mAdminArea = adminArea; 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the sub-administrative area name of the address, for example, "Santa Clara County", 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getSubAdminArea() { 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mSubAdminArea; 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the sub-administrative area name of the address to the given String, which may be null 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setSubAdminArea(String subAdminArea) { 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.mSubAdminArea = subAdminArea; 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the locality of the address, for example "Mountain View", or null if it is unknown. 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getLocality() { 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLocality; 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the locality of the address to the given String, which may be null. 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setLocality(String locality) { 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLocality = locality; 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 181a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Returns the sub-locality of the address, or null if it is unknown. 182a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * For example, this may correspond to the neighborhood of the locality. 183a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 184a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public String getSubLocality() { 185a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru return mSubLocality; 186a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 187a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 188a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 189a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Sets the sub-locality of the address to the given String, which may be null. 190a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 191a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public void setSubLocality(String sublocality) { 192a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru mSubLocality = sublocality; 193a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 194a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 195a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the thoroughfare name of the address, for example, "1600 Ampitheater Parkway", 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * which may be null 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getThoroughfare() { 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mThoroughfare; 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the thoroughfare name of the address, which may be null. 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setThoroughfare(String thoroughfare) { 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.mThoroughfare = thoroughfare; 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 211a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Returns the sub-thoroughfare name of the address, which may be null. 212a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * This may correspond to the street number of the address. 213a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 214a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public String getSubThoroughfare() { 215a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru return mSubThoroughfare; 216a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 217a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 218a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 219a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Sets the sub-thoroughfare name of the address, which may be null. 220a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 221a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public void setSubThoroughfare(String subthoroughfare) { 222a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru this.mSubThoroughfare = subthoroughfare; 223a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 224a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 225a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 226a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Returns the premises of the address, or null if it is unknown. 227a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 228a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public String getPremises() { 229a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru return mPremises; 230a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 231a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 232a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 233a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru * Sets the premises of the address to the given String, which may be null. 234a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru */ 235a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru public void setPremises(String premises) { 236a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru mPremises = premises; 237a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru } 238a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru 239a8675f67e33bc7337d148358783b0fd138b501ffJean-Baptiste Queru /** 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the postal code of the address, for example "94110", 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown. 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPostalCode() { 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPostalCode; 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the postal code of the address to the given String, which may 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setPostalCode(String postalCode) { 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPostalCode = postalCode; 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the country code of the address, for example "US", 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown. 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getCountryCode() { 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mCountryCode; 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the country code of the address to the given String, which may 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setCountryCode(String countryCode) { 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCountryCode = countryCode; 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the localized country name of the address, for example "Iceland", 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown. 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getCountryName() { 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mCountryName; 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the country name of the address to the given String, which may 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setCountryName(String countryName) { 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCountryName = countryName; 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if a latitude has been assigned to this Address, 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * false otherwise. 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasLatitude() { 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mHasLatitude; 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the latitude of the address if known. 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalStateException if this Address has not been assigned 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a latitude. 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public double getLatitude() { 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mHasLatitude) { 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLatitude; 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalStateException(); 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the latitude associated with this address. 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setLatitude(double latitude) { 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLatitude = latitude; 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasLatitude = true; 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes any latitude associated with this address. 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clearLatitude() { 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasLatitude = false; 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns true if a longitude has been assigned to this Address, 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * false otherwise. 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasLongitude() { 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mHasLongitude; 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the longitude of the address if known. 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalStateException if this Address has not been assigned 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a longitude. 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public double getLongitude() { 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mHasLongitude) { 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLongitude; 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalStateException(); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the longitude associated with this address. 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setLongitude(double longitude) { 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLongitude = longitude; 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasLongitude = true; 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes any longitude associated with this address. 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clearLongitude() { 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasLongitude = false; 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the phone number of the address if known, 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown. 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalStateException if this Address has not been assigned 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a latitude. 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPhone() { 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPhone; 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the phone number associated with this address. 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setPhone(String phone) { 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPhone = phone; 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the public URL for the address if known, 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if it is unknown. 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getUrl() { 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mUrl; 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the public URL associated with this address. 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUrl(String Url) { 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUrl = Url; 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns additional provider-specific information about the 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * address as a Bundle. The keys and values are determined 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by the provider. If no additional information is available, 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * null is returned. 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <!-- 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> A number of common key/value pairs are listed 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * below. Providers that use any of the keys on this list must 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * provide the corresponding value as described below. 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <ul> 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </ul> 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * --> 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle getExtras() { 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mExtras; 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the extra information associated with this fix to the 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * given Bundle. 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setExtras(Bundle extras) { 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mExtras = (extras == null) ? null : new Bundle(extras); 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuilder sb = new StringBuilder(); 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append("Address[addressLines=["); 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i <= mMaxAddressLineIndex; i++) { 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (i > 0) { 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(','); 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(i); 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(':'); 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String line = mAddressLines.get(i); 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (line == null) { 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append("null"); 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append('\"'); 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(line); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append('\"'); 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(']'); 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",feature="); 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mFeatureName); 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",admin="); 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mAdminArea); 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",sub-admin="); 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mSubAdminArea); 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",locality="); 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mLocality); 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",thoroughfare="); 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mThoroughfare); 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",postalCode="); 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mPostalCode); 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",countryCode="); 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mCountryCode); 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",countryName="); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mCountryName); 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",hasLatitude="); 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mHasLatitude); 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",latitude="); 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mLatitude); 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",hasLongitude="); 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mHasLongitude); 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",longitude="); 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mLongitude); 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",phone="); 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mPhone); 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",url="); 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mUrl); 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(",extras="); 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(mExtras); 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sb.append(']'); 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sb.toString(); 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<Address> CREATOR = 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<Address>() { 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Address createFromParcel(Parcel in) { 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String language = in.readString(); 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String country = in.readString(); 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Locale locale = country.length() > 0 ? 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Locale(language, country) : 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Locale(language); 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Address a = new Address(locale); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = in.readInt(); 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (N > 0) { 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mAddressLines = new HashMap<Integer, String>(N); 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < N; i++) { 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int index = in.readInt(); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String line = in.readString(); 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mAddressLines.put(index, line); 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mMaxAddressLineIndex = 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Math.max(a.mMaxAddressLineIndex, index); 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mAddressLines = null; 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mMaxAddressLineIndex = -1; 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mFeatureName = in.readString(); 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mAdminArea = in.readString(); 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mSubAdminArea = in.readString(); 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mLocality = in.readString(); 503e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts a.mSubLocality = in.readString(); 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mThoroughfare = in.readString(); 505e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts a.mSubThoroughfare = in.readString(); 506e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts a.mPremises = in.readString(); 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mPostalCode = in.readString(); 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mCountryCode = in.readString(); 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mCountryName = in.readString(); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mHasLatitude = in.readInt() == 0 ? false : true; 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (a.mHasLatitude) { 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mLatitude = in.readDouble(); 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mHasLongitude = in.readInt() == 0 ? false : true; 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (a.mHasLongitude) { 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mLongitude = in.readDouble(); 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mPhone = in.readString(); 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mUrl = in.readString(); 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project a.mExtras = in.readBundle(); 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return a; 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Address[] newArray(int size) { 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Address[size]; 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (mExtras != null) ? mExtras.describeContents() : 0; 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mLocale.getLanguage()); 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mLocale.getCountry()); 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mAddressLines == null) { 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeInt(0); 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Set<Map.Entry<Integer, String>> entries = mAddressLines.entrySet(); 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeInt(entries.size()); 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (Map.Entry<Integer, String> e : entries) { 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeInt(e.getKey()); 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(e.getValue()); 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mFeatureName); 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mAdminArea); 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mSubAdminArea); 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mLocality); 550e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts parcel.writeString(mSubLocality); 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mThoroughfare); 552e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts parcel.writeString(mSubThoroughfare); 553e6ec57727e2da14a9027293858d97a84b08768b1Paul Watts parcel.writeString(mPremises); 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mPostalCode); 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mCountryCode); 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mCountryName); 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeInt(mHasLatitude ? 1 : 0); 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mHasLatitude) { 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeDouble(mLatitude); 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeInt(mHasLongitude ? 1 : 0); 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mHasLongitude){ 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeDouble(mLongitude); 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mPhone); 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeString(mUrl); 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project parcel.writeBundle(mExtras); 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 570