140
141
Contacts.ContactMethods.PERSON_ID,
141
142
Contacts.ContactMethods.DATA,
142
143
Contacts.ContactMethods.KIND,
143
}, Contacts.ContactMethods.KIND + " IN( ?, ? )", new String[] {
144
}, Contacts.ContactMethods.KIND + " IN( ?, ? )",
144
146
"" + Contacts.KIND_EMAIL,
145
147
"" + Contacts.KIND_POSTAL,
146
148
}, Contacts.ContactMethods.ISPRIMARY + " DESC" );
195
public Long addContact( String name )
197
public Long addContact( String name ) throws ContactCreationException
197
199
ContentValues values = new ContentValues();
198
values.put( Contacts.People.NAME, name );
201
values.put( Contacts.People.NAME, name );
199
202
Uri contact_uri = _activity.getContentResolver().insert(
200
203
Contacts.People.CONTENT_URI, values );
201
204
Long id = ContentUris.parseId( contact_uri );
202
if( id == 0 ) id = null;
206
throw new ContactCreationException();
204
208
// try to add them to the "My Contacts" group
207
Contacts.People.addToMyContactsGroup(
208
_activity.getContentResolver(), id );
210
catch( IllegalStateException e ) {
211
// ignore any failure
210
Contacts.People.addToMyContactsGroup(
211
_activity.getContentResolver(), id );
213
catch( IllegalStateException e ) {
214
// ignore any failure
220
private int convertTypeToBackendType( Class< ? > cls, int type )
221
throws ContactCreationException
223
if( cls == Contacts.Phones.class )
227
case ContactData.TYPE_HOME:
228
return Contacts.Phones.TYPE_HOME;
229
case ContactData.TYPE_WORK:
230
return Contacts.Phones.TYPE_WORK;
231
case ContactData.TYPE_MOBILE:
232
return Contacts.Phones.TYPE_MOBILE;
233
case ContactData.TYPE_FAX_HOME:
234
return Contacts.Phones.TYPE_FAX_HOME;
235
case ContactData.TYPE_FAX_WORK:
236
return Contacts.Phones.TYPE_FAX_WORK;
237
case ContactData.TYPE_PAGER:
238
return Contacts.Phones.TYPE_PAGER;
241
else if( cls == Contacts.ContactMethods.class )
245
case ContactData.TYPE_HOME:
246
return Contacts.ContactMethods.TYPE_HOME;
247
case ContactData.TYPE_WORK:
248
return Contacts.ContactMethods.TYPE_WORK;
253
throw new ContactCreationException();
219
257
public void addContactPhone( Long id, String number,
220
ContactData.PreferredDetail data )
258
ContactData.PreferredDetail data ) throws ContactCreationException
222
260
Uri contact_phones_uri = Uri.withAppendedPath(
223
261
ContentUris.withAppendedId( Contacts.People.CONTENT_URI, id ),
224
262
Contacts.People.Phones.CONTENT_DIRECTORY );
226
264
ContentValues values = new ContentValues();
227
values.put( Contacts.Phones.TYPE, data.getType() );
265
values.put( Contacts.Phones.TYPE,
266
convertTypeToBackendType( Contacts.Phones.class,
228
268
values.put( Contacts.Phones.NUMBER, number );
229
269
if( data.isPreferred() )
230
270
values.put( Contacts.Phones.ISPRIMARY, 1 );
243
283
ContentValues values = new ContentValues();
244
284
values.put( Contacts.ContactMethods.KIND, Contacts.KIND_EMAIL );
245
285
values.put( Contacts.ContactMethods.DATA, email );
246
values.put( Contacts.ContactMethods.TYPE, data.getType() );
286
values.put( Contacts.ContactMethods.TYPE,
287
convertTypeToBackendType( Contacts.ContactMethods.class,
247
289
if( data.isPreferred() )
248
290
values.put( Contacts.ContactMethods.ISPRIMARY, 1 );
262
304
ContentValues values = new ContentValues();
263
305
values.put( Contacts.ContactMethods.KIND, Contacts.KIND_POSTAL );
264
306
values.put( Contacts.ContactMethods.DATA, address );
265
values.put( Contacts.ContactMethods.TYPE, data.getType() );
307
values.put( Contacts.ContactMethods.TYPE,
308
convertTypeToBackendType( Contacts.ContactMethods.class,
267
311
_activity.getContentResolver().insert( contact_contact_methods_uri,