public class XMLMapping {
44 static final public Map<String, XMLMapping> contact = new LinkedHashMap<String, XMLMapping>();
45 static final public Map<String, XMLMapping> sms = new LinkedHashMap<String, XMLMapping>();
46 static final public Map<String, XMLMapping> calendar = new LinkedHashMap<String, XMLMapping>();
4748 protected Uri uri;
49 protected String xmlTag;
50 protected String androidName;
51 protected Map<String, String> androidToXml = new HashMap<String, String>();
52 protected Map<String, String> xmlToAndroid = new HashMap<String, String>();
5354 transient protected String[] androidNameCache = null;
5556 public XMLMapping(Uri uri, String xmlTag, String androidName) {
57 this.uri = uri;
58 this.xmlTag = xmlTag;
59 this.androidName = androidName;
60 }
6162 /**
63 * Ajoute un mapping
64 *
65 * @param xmlTag
66 * @param androidName
67 */
68 protected void add(String xmlTag, String androidName) {
69 xmlToAndroid.put(xmlTag, androidName);
70 androidToXml.put(androidName, xmlTag);
71 }
7273 public Uri getUri() {
74 return uri;
75 }
7677 public String getAndroidName() {
78 return androidName;
79 }
8081 public String getXmlTag() {
82 return xmlTag;
83 }
8485 public String[] getAllAndroidName() {
86 if (androidNameCache == null) {
87 androidNameCache =
88 androidToXml.keySet().toArray(new String[androidToXml.size()]);
89 }
90 return androidNameCache;
91 }
9293 public String getAndroidName(String xmlTag) {
94 String result = xmlToAndroid.get(xmlTag);
95 return result;
96 }
9798 public String getXmlTag(String androidName) {
99 String result = androidToXml.get(androidName);
100 return result;
101 }
102103 /**
104 * initialisation des mappings
105 */
106 static {
107 {
108 XMLMapping m = new XMLMapping(ContactsContract.Contacts.CONTENT_URI,
109 "baseinfo", null);
110 contact.put(m.xmlTag, m);
111112 // On met l'id dans l'export pour que si on importe 2 fois le meme
113 // fichier, le deuxieme import echoue. Et qu'on est pas des fiches
114 // dupliquees. (il seront bon de trouver une meilleur solution :))
115 m.add("id", ContactsContract.Contacts._ID);
116 m.add("display_name", ContactsContract.Contacts.DISPLAY_NAME);
117 m.add("last_time_contacted", ContactsContract.Contacts.LAST_TIME_CONTACTED);
118 m.add("starred", ContactsContract.Contacts.STARRED);
119 m.add("times_contacted", ContactsContract.Contacts.TIMES_CONTACTED);
120 m.add("custom_ringtone", ContactsContract.Contacts.CUSTOM_RINGTONE);
121 m.add("send_to_voicemail", ContactsContract.Contacts.SEND_TO_VOICEMAIL);
122123 }
124 // save group TODO
125 {
126 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
127 "name",
128 ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
129 contact.put(m.xmlTag, m);
130131 m.add("prefix", ContactsContract.CommonDataKinds.StructuredName.PREFIX);
132 m.add("given_name", ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME);
133 m.add("middle_name", ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME);
134 m.add("family_name", ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME);
135 m.add("suffix", ContactsContract.CommonDataKinds.StructuredName.SUFFIX);
136 m.add("phonetic_given_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME);
137 m.add("phonetic_middle_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_MIDDLE_NAME);
138 m.add("phonetic_family_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME);
139 }
140
141 {
142 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
143 "nickname",
144 ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
145 contact.put(m.xmlTag, m);
146147 m.add("label", ContactsContract.CommonDataKinds.Nickname.LABEL);
148 m.add("type", ContactsContract.CommonDataKinds.Nickname.TYPE);
149 m.add("data", ContactsContract.CommonDataKinds.Nickname.DATA);
150 }
151 {
152 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
153 "relation",
154 ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE);
155 contact.put(m.xmlTag, m);
156157 m.add("label", ContactsContract.CommonDataKinds.Relation.LABEL);
158 m.add("type", ContactsContract.CommonDataKinds.Relation.TYPE);
159 m.add("data", ContactsContract.CommonDataKinds.Relation.DATA);
160 }
161 {
162 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
163 "phone",
164 ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
165 contact.put(m.xmlTag, m);
166167 m.add("label", ContactsContract.CommonDataKinds.Phone.LABEL);
168 m.add("type", ContactsContract.CommonDataKinds.Phone.TYPE);
169 m.add("data", ContactsContract.CommonDataKinds.Phone.NUMBER);
170 }
171 {
172 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
173 "email",
174 ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
175 contact.put(m.xmlTag, m);
176177 m.add("label", ContactsContract.CommonDataKinds.Email.LABEL);
178 m.add("type", ContactsContract.CommonDataKinds.Email.TYPE);
179 m.add("data", ContactsContract.CommonDataKinds.Email.DATA);
180 }
181 {
182 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
183 "im",
184 ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE);
185 contact.put(m.xmlTag, m);
186187 m.add("label", ContactsContract.CommonDataKinds.Im.LABEL);
188 m.add("type", ContactsContract.CommonDataKinds.Im.TYPE);
189 m.add("data", ContactsContract.CommonDataKinds.Im.DATA);
190 m.add("protocol", ContactsContract.CommonDataKinds.Im.PROTOCOL);
191 m.add("custom_protocol", ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL);
192 }
193 {
194 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
195 "event",
196 ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
197 contact.put(m.xmlTag, m);
198199 m.add("label", ContactsContract.CommonDataKinds.Event.LABEL);
200 m.add("type", ContactsContract.CommonDataKinds.Event.TYPE);
201 m.add("start_date", ContactsContract.CommonDataKinds.Event.START_DATE);
202 }
203 {
204 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
205 "address",
206 ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
207 contact.put(m.xmlTag, m);
208209 m.add("label", ContactsContract.CommonDataKinds.StructuredPostal.LABEL);
210 m.add("type", ContactsContract.CommonDataKinds.StructuredPostal.TYPE);
211 m.add("street", ContactsContract.CommonDataKinds.StructuredPostal.STREET);
212 m.add("pobox", ContactsContract.CommonDataKinds.StructuredPostal.POBOX);
213 m.add("neighborhood", ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD);
214 m.add("postcode", ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE);
215 m.add("city", ContactsContract.CommonDataKinds.StructuredPostal.CITY);
216 m.add("region", ContactsContract.CommonDataKinds.StructuredPostal.REGION);
217 m.add("country", ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY);
218 }
219 {
220 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
221 "organization",
222 ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
223 contact.put(m.xmlTag, m);
224225 m.add("label", ContactsContract.CommonDataKinds.Organization.LABEL);
226 m.add("type", ContactsContract.CommonDataKinds.Organization.TYPE);
227 m.add("company", ContactsContract.CommonDataKinds.Organization.COMPANY);
228 m.add("title", ContactsContract.CommonDataKinds.Organization.TITLE);
229 m.add("department", ContactsContract.CommonDataKinds.Organization.DEPARTMENT);
230 m.add("office_location", ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION);
231 m.add("job_description", ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION);
232 }
233 {
234 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
235 "website",
236 ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);
237 contact.put(m.xmlTag, m);
238239 m.add("label", ContactsContract.CommonDataKinds.Website.LABEL);
240 m.add("type", ContactsContract.CommonDataKinds.Website.TYPE);
241 m.add("data", ContactsContract.CommonDataKinds.Website.DATA);
242 }
243 {
244 XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
245 "note",
246 ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);
247 contact.put(m.xmlTag, m);
248249 m.add("note", ContactsContract.CommonDataKinds.Note.NOTE);
250 }
251 }
252253}