blob: 42d5ce168fa9b2024c51edbdf660fcdab65fb586 [file] [log] [blame]
Rahul Ravikumar05336002019-10-14 15:04:32 -07001/*
2 * Copyright (C) 2006 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.provider;
18
19import com.android.internal.R;
20
21import android.annotation.SdkConstant;
22import android.annotation.SdkConstant.SdkConstantType;
23import android.content.ContentResolver;
24import android.content.ContentUris;
25import android.content.ContentValues;
26import android.content.Context;
27import android.database.Cursor;
28import android.graphics.Bitmap;
29import android.graphics.BitmapFactory;
30import android.net.Uri;
31import android.text.TextUtils;
32import android.util.Log;
33import android.widget.ImageView;
34
35import java.io.ByteArrayInputStream;
36import java.io.InputStream;
37
38/**
39 * The Contacts provider stores all information about contacts.
40 *
41 * @deprecated The APIs have been superseded by {@link ContactsContract}. The newer APIs allow
42 * access multiple accounts and support aggregation of similar contacts. These APIs continue to
43 * work but will only return data for the first Google account created, which matches the original
44 * behavior.
45 */
46@Deprecated
47public class Contacts {
48 private static final String TAG = "Contacts";
49
50 /**
51 * @deprecated see {@link android.provider.ContactsContract}
52 */
53 @Deprecated
54 public static final String AUTHORITY = "contacts";
55
56 /**
57 * The content:// style URL for this provider
58 * @deprecated see {@link android.provider.ContactsContract}
59 */
60 @Deprecated
61 public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
62
63 /**
64 * Signifies an email address row that is stored in the ContactMethods table
65 * @deprecated see {@link android.provider.ContactsContract}
66 */
67 @Deprecated
68 public static final int KIND_EMAIL = 1;
69 /**
70 * Signifies a postal address row that is stored in the ContactMethods table
71 * @deprecated see {@link android.provider.ContactsContract}
72 */
73 @Deprecated
74 public static final int KIND_POSTAL = 2;
75 /**
76 * Signifies an IM address row that is stored in the ContactMethods table
77 * @deprecated see {@link android.provider.ContactsContract}
78 */
79 @Deprecated
80 public static final int KIND_IM = 3;
81 /**
82 * Signifies an Organization row that is stored in the Organizations table
83 * @deprecated see {@link android.provider.ContactsContract}
84 */
85 @Deprecated
86 public static final int KIND_ORGANIZATION = 4;
87 /**
88 * Signifies a Phone row that is stored in the Phones table
89 * @deprecated see {@link android.provider.ContactsContract}
90 */
91 @Deprecated
92 public static final int KIND_PHONE = 5;
93
94 /**
95 * no public constructor since this is a utility class
96 */
97 private Contacts() {}
98
99 /**
100 * Columns from the Settings table that other columns join into themselves.
101 * @deprecated see {@link android.provider.ContactsContract}
102 */
103 @Deprecated
104 public interface SettingsColumns {
105 /**
106 * The _SYNC_ACCOUNT to which this setting corresponds. This may be null.
107 * <P>Type: TEXT</P>
108 * @deprecated see {@link android.provider.ContactsContract}
109 */
110 @Deprecated
111 public static final String _SYNC_ACCOUNT = "_sync_account";
112
113 /**
114 * The _SYNC_ACCOUNT_TYPE to which this setting corresponds. This may be null.
115 * <P>Type: TEXT</P>
116 * @deprecated see {@link android.provider.ContactsContract}
117 */
118 @Deprecated
119 public static final String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
120
121 /**
122 * The key of this setting.
123 * <P>Type: TEXT</P>
124 * @deprecated see {@link android.provider.ContactsContract}
125 */
126 @Deprecated
127 public static final String KEY = "key";
128
129 /**
130 * The value of this setting.
131 * <P>Type: TEXT</P>
132 * @deprecated see {@link android.provider.ContactsContract}
133 */
134 @Deprecated
135 public static final String VALUE = "value";
136 }
137
138 /**
139 * The settings over all of the people
140 * @deprecated see {@link android.provider.ContactsContract}
141 */
142 @Deprecated
143 public static final class Settings implements BaseColumns, SettingsColumns {
144 /**
145 * no public constructor since this is a utility class
146 */
147 private Settings() {}
148
149 /**
150 * The content:// style URL for this table
151 * @deprecated see {@link android.provider.ContactsContract}
152 */
153 @Deprecated
154 public static final Uri CONTENT_URI =
155 Uri.parse("content://contacts/settings");
156
157 /**
158 * The directory twig for this sub-table
159 * @deprecated see {@link android.provider.ContactsContract}
160 */
161 @Deprecated
162 public static final String CONTENT_DIRECTORY = "settings";
163
164 /**
165 * The default sort order for this table
166 * @deprecated see {@link android.provider.ContactsContract}
167 */
168 @Deprecated
169 public static final String DEFAULT_SORT_ORDER = "key ASC";
170
171 /**
172 * A setting that is used to indicate if we should sync down all groups for the
173 * specified account. For this setting the _SYNC_ACCOUNT column must be set.
174 * If this isn't set then we will only sync the groups whose SHOULD_SYNC column
175 * is set to true.
176 * <p>
177 * This is a boolean setting. It is true if it is set and it is anything other than the
178 * emptry string or "0".
179 * @deprecated see {@link android.provider.ContactsContract}
180 */
181 @Deprecated
182 public static final String SYNC_EVERYTHING = "syncEverything";
183
184 /**
185 * @deprecated see {@link android.provider.ContactsContract}
186 */
187 @Deprecated
188 public static String getSetting(ContentResolver cr, String account, String key) {
189 // For now we only support a single account and the UI doesn't know what
190 // the account name is, so we're using a global setting for SYNC_EVERYTHING.
191 // Some day when we add multiple accounts to the UI this should honor the account
192 // that was asked for.
193 String selectString;
194 String[] selectArgs;
195 if (false) {
196 selectString = (account == null)
197 ? "_sync_account is null AND key=?"
198 : "_sync_account=? AND key=?";
199// : "_sync_account=? AND _sync_account_type=? AND key=?";
200 selectArgs = (account == null)
201 ? new String[]{key}
202 : new String[]{account, key};
203 } else {
204 selectString = "key=?";
205 selectArgs = new String[] {key};
206 }
207 Cursor cursor = cr.query(Settings.CONTENT_URI, new String[]{VALUE},
208 selectString, selectArgs, null);
209 try {
210 if (!cursor.moveToNext()) return null;
211 return cursor.getString(0);
212 } finally {
213 cursor.close();
214 }
215 }
216
217 /**
218 * @deprecated see {@link android.provider.ContactsContract}
219 */
220 @Deprecated
221 public static void setSetting(ContentResolver cr, String account, String key,
222 String value) {
223 ContentValues values = new ContentValues();
224 // For now we only support a single account and the UI doesn't know what
225 // the account name is, so we're using a global setting for SYNC_EVERYTHING.
226 // Some day when we add multiple accounts to the UI this should honor the account
227 // that was asked for.
228 //values.put(_SYNC_ACCOUNT, account.mName);
229 //values.put(_SYNC_ACCOUNT_TYPE, account.mType);
230 values.put(KEY, key);
231 values.put(VALUE, value);
232 cr.update(Settings.CONTENT_URI, values, null, null);
233 }
234 }
235
236 /**
237 * Columns from the People table that other tables join into themselves.
238 * @deprecated see {@link android.provider.ContactsContract}
239 */
240 @Deprecated
241 public interface PeopleColumns {
242 /**
243 * The person's name.
244 * <P>Type: TEXT</P>
245 * @deprecated see {@link android.provider.ContactsContract}
246 */
247 @Deprecated
248 public static final String NAME = "name";
249
250 /**
251 * Phonetic equivalent of the person's name, in a locale-dependent
252 * character set (e.g. hiragana for Japanese).
253 * Used for pronunciation and/or collation in some languages.
254 * <p>Type: TEXT</P>
255 * @deprecated see {@link android.provider.ContactsContract}
256 */
257 @Deprecated
258 public static final String PHONETIC_NAME = "phonetic_name";
259
260 /**
261 * The display name. If name is not null name, else if number is not null number,
262 * else if email is not null email.
263 * <P>Type: TEXT</P>
264 * @deprecated see {@link android.provider.ContactsContract}
265 */
266 @Deprecated
267 public static final String DISPLAY_NAME = "display_name";
268
269 /**
270 * The field for sorting list phonetically. The content of this field
271 * may not be human readable but phonetically sortable.
272 * <P>Type: TEXT</p>
273 * @hide Used only in Contacts application for now.
274 * @deprecated see {@link android.provider.ContactsContract}
275 */
276 @Deprecated
277 public static final String SORT_STRING = "sort_string";
278
279 /**
280 * Notes about the person.
281 * <P>Type: TEXT</P>
282 * @deprecated see {@link android.provider.ContactsContract}
283 */
284 @Deprecated
285 public static final String NOTES = "notes";
286
287 /**
288 * The number of times a person has been contacted
289 * <P>Type: INTEGER</P>
290 * @deprecated see {@link android.provider.ContactsContract}
291 */
292 @Deprecated
293 public static final String TIMES_CONTACTED = "times_contacted";
294
295 /**
296 * The last time a person was contacted.
297 * <P>Type: INTEGER</P>
298 * @deprecated see {@link android.provider.ContactsContract}
299 */
300 @Deprecated
301 public static final String LAST_TIME_CONTACTED = "last_time_contacted";
302
303 /**
304 * A custom ringtone associated with a person. Not always present.
305 * <P>Type: TEXT (URI to the ringtone)</P>
306 * @deprecated see {@link android.provider.ContactsContract}
307 */
308 @Deprecated
309 public static final String CUSTOM_RINGTONE = "custom_ringtone";
310
311 /**
312 * Whether the person should always be sent to voicemail. Not always
313 * present.
314 * <P>Type: INTEGER (0 for false, 1 for true)</P>
315 * @deprecated see {@link android.provider.ContactsContract}
316 */
317 @Deprecated
318 public static final String SEND_TO_VOICEMAIL = "send_to_voicemail";
319
320 /**
321 * Is the contact starred?
322 * <P>Type: INTEGER (boolean)</P>
323 * @deprecated see {@link android.provider.ContactsContract}
324 */
325 @Deprecated
326 public static final String STARRED = "starred";
327
328 /**
329 * The server version of the photo
330 * <P>Type: TEXT (the version number portion of the photo URI)</P>
331 * @deprecated see {@link android.provider.ContactsContract}
332 */
333 @Deprecated
334 public static final String PHOTO_VERSION = "photo_version";
335 }
336
337 /**
338 * This table contains people.
339 * @deprecated see {@link android.provider.ContactsContract}
340 */
341 @Deprecated
342 public static final class People implements BaseColumns, PeopleColumns,
343 PhonesColumns, PresenceColumns {
344 /**
345 * no public constructor since this is a utility class
346 * @deprecated see {@link android.provider.ContactsContract}
347 */
348 @Deprecated
349 private People() {}
350
351 /**
352 * The content:// style URL for this table
353 * @deprecated see {@link android.provider.ContactsContract}
354 */
355 @Deprecated
356 public static final Uri CONTENT_URI =
357 Uri.parse("content://contacts/people");
358
359 /**
360 * The content:// style URL for filtering people by name. The filter
361 * argument should be passed as an additional path segment after this URI.
362 * @deprecated see {@link android.provider.ContactsContract}
363 */
364 @Deprecated
365 public static final Uri CONTENT_FILTER_URI =
366 Uri.parse("content://contacts/people/filter");
367
368 /**
369 * The content:// style URL for the table that holds the deleted
370 * contacts.
371 * @deprecated see {@link android.provider.ContactsContract}
372 */
373 @Deprecated
374 public static final Uri DELETED_CONTENT_URI =
375 Uri.parse("content://contacts/deleted_people");
376
377 /**
378 * The content:// style URL for filtering people that have a specific
379 * E-mail or IM address. The filter argument should be passed as an
380 * additional path segment after this URI. This matches any people with
381 * at least one E-mail or IM {@link ContactMethods} that match the
382 * filter.
383 *
384 * Not exposed because we expect significant changes in the contacts
385 * schema and do not want to have to support this.
386 * @hide
387 * @deprecated see {@link android.provider.ContactsContract}
388 */
389 @Deprecated
390 public static final Uri WITH_EMAIL_OR_IM_FILTER_URI =
391 Uri.parse("content://contacts/people/with_email_or_im_filter");
392
393 /**
394 * The MIME type of {@link #CONTENT_URI} providing a directory of
395 * people.
396 * @deprecated see {@link android.provider.ContactsContract}
397 */
398 @Deprecated
399 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/person";
400
401 /**
402 * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
403 * person.
404 * @deprecated see {@link android.provider.ContactsContract}
405 */
406 @Deprecated
407 public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/person";
408
409 /**
410 * The default sort order for this table
411 * @deprecated see {@link android.provider.ContactsContract}
412 */
413 @Deprecated
414 public static final String DEFAULT_SORT_ORDER = People.NAME + " ASC";
415
416 /**
417 * The ID of the persons preferred phone number.
418 * <P>Type: INTEGER (foreign key to phones table on the _ID field)</P>
419 * @deprecated see {@link android.provider.ContactsContract}
420 */
421 @Deprecated
422 public static final String PRIMARY_PHONE_ID = "primary_phone";
423
424 /**
425 * The ID of the persons preferred email.
426 * <P>Type: INTEGER (foreign key to contact_methods table on the
427 * _ID field)</P>
428 * @deprecated see {@link android.provider.ContactsContract}
429 */
430 @Deprecated
431 public static final String PRIMARY_EMAIL_ID = "primary_email";
432
433 /**
434 * The ID of the persons preferred organization.
435 * <P>Type: INTEGER (foreign key to organizations table on the
436 * _ID field)</P>
437 * @deprecated see {@link android.provider.ContactsContract}
438 */
439 @Deprecated
440 public static final String PRIMARY_ORGANIZATION_ID = "primary_organization";
441
442 /**
443 * This API is no longer supported as of O.
444 */
445 @Deprecated
446 public static void markAsContacted(ContentResolver resolver, long personId) {
447 // No longer supported.
448 }
449
450 /**
451 * @hide Used in vCard parser code.
452 * @deprecated see {@link android.provider.ContactsContract}
453 */
454 @Deprecated
455 public static long tryGetMyContactsGroupId(ContentResolver resolver) {
456 Cursor groupsCursor = resolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
457 Groups.SYSTEM_ID + "='" + Groups.GROUP_MY_CONTACTS + "'", null, null);
458 if (groupsCursor != null) {
459 try {
460 if (groupsCursor.moveToFirst()) {
461 return groupsCursor.getLong(0);
462 }
463 } finally {
464 groupsCursor.close();
465 }
466 }
467 return 0;
468 }
469
470 /**
471 * Adds a person to the My Contacts group.
472 *
473 * @param resolver the resolver to use
474 * @param personId the person to add to the group
475 * @return the URI of the group membership row
476 * @throws IllegalStateException if the My Contacts group can't be found
477 * @deprecated see {@link android.provider.ContactsContract}
478 */
479 @Deprecated
480 public static Uri addToMyContactsGroup(ContentResolver resolver, long personId) {
481 long groupId = tryGetMyContactsGroupId(resolver);
482 if (groupId == 0) {
483 throw new IllegalStateException("Failed to find the My Contacts group");
484 }
485
486 return addToGroup(resolver, personId, groupId);
487 }
488
489 /**
490 * Adds a person to a group referred to by name.
491 *
492 * @param resolver the resolver to use
493 * @param personId the person to add to the group
494 * @param groupName the name of the group to add the contact to
495 * @return the URI of the group membership row
496 * @throws IllegalStateException if the group can't be found
497 * @deprecated see {@link android.provider.ContactsContract}
498 */
499 @Deprecated
500 public static Uri addToGroup(ContentResolver resolver, long personId, String groupName) {
501 long groupId = 0;
502 Cursor groupsCursor = resolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
503 Groups.NAME + "=?", new String[] { groupName }, null);
504 if (groupsCursor != null) {
505 try {
506 if (groupsCursor.moveToFirst()) {
507 groupId = groupsCursor.getLong(0);
508 }
509 } finally {
510 groupsCursor.close();
511 }
512 }
513
514 if (groupId == 0) {
515 throw new IllegalStateException("Failed to find the My Contacts group");
516 }
517
518 return addToGroup(resolver, personId, groupId);
519 }
520
521 /**
522 * Adds a person to a group.
523 *
524 * @param resolver the resolver to use
525 * @param personId the person to add to the group
526 * @param groupId the group to add the person to
527 * @return the URI of the group membership row
528 * @deprecated see {@link android.provider.ContactsContract}
529 */
530 @Deprecated
531 public static Uri addToGroup(ContentResolver resolver, long personId, long groupId) {
532 ContentValues values = new ContentValues();
533 values.put(GroupMembership.PERSON_ID, personId);
534 values.put(GroupMembership.GROUP_ID, groupId);
535 return resolver.insert(GroupMembership.CONTENT_URI, values);
536 }
537
538 private static final String[] GROUPS_PROJECTION = new String[] {
539 Groups._ID,
540 };
541
542 /**
543 * Creates a new contacts and adds it to the "My Contacts" group.
544 *
545 * @param resolver the ContentResolver to use
546 * @param values the values to use when creating the contact
547 * @return the URI of the contact, or null if the operation fails
548 * @deprecated see {@link android.provider.ContactsContract}
549 */
550 @Deprecated
551 public static Uri createPersonInMyContactsGroup(ContentResolver resolver,
552 ContentValues values) {
553
554 Uri contactUri = resolver.insert(People.CONTENT_URI, values);
555 if (contactUri == null) {
556 Log.e(TAG, "Failed to create the contact");
557 return null;
558 }
559
560 if (addToMyContactsGroup(resolver, ContentUris.parseId(contactUri)) == null) {
561 resolver.delete(contactUri, null, null);
562 return null;
563 }
564 return contactUri;
565 }
566
567 /**
568 * @deprecated see {@link android.provider.ContactsContract}
569 */
570 @Deprecated
571 public static Cursor queryGroups(ContentResolver resolver, long person) {
572 return resolver.query(GroupMembership.CONTENT_URI, null, "person=?",
573 new String[]{String.valueOf(person)}, Groups.DEFAULT_SORT_ORDER);
574 }
575
576 /**
577 * Set the photo for this person. data may be null
578 * @param cr the ContentResolver to use
579 * @param person the Uri of the person whose photo is to be updated
580 * @param data the byte[] that represents the photo
581 * @deprecated see {@link android.provider.ContactsContract}
582 */
583 @Deprecated
584 public static void setPhotoData(ContentResolver cr, Uri person, byte[] data) {
585 Uri photoUri = Uri.withAppendedPath(person, Contacts.Photos.CONTENT_DIRECTORY);
586 ContentValues values = new ContentValues();
587 values.put(Photos.DATA, data);
588 cr.update(photoUri, values, null, null);
589 }
590
591 /**
592 * Opens an InputStream for the person's photo and returns the photo as a Bitmap.
593 * If the person's photo isn't present returns the placeholderImageResource instead.
594 * @param person the person whose photo should be used
595 * @deprecated see {@link android.provider.ContactsContract}
596 */
597 @Deprecated
598 public static InputStream openContactPhotoInputStream(ContentResolver cr, Uri person) {
599 Uri photoUri = Uri.withAppendedPath(person, Contacts.Photos.CONTENT_DIRECTORY);
600 Cursor cursor = cr.query(photoUri, new String[]{Photos.DATA}, null, null, null);
601 try {
602 if (cursor == null || !cursor.moveToNext()) {
603 return null;
604 }
605 byte[] data = cursor.getBlob(0);
606 if (data == null) {
607 return null;
608 }
609 return new ByteArrayInputStream(data);
610 } finally {
611 if (cursor != null) cursor.close();
612 }
613 }
614
615 /**
616 * Opens an InputStream for the person's photo and returns the photo as a Bitmap.
617 * If the person's photo isn't present returns the placeholderImageResource instead.
618 * @param context the Context
619 * @param person the person whose photo should be used
620 * @param placeholderImageResource the image resource to use if the person doesn't
621 * have a photo
622 * @param options the decoding options, can be set to null
623 * @deprecated see {@link android.provider.ContactsContract}
624 */
625 @Deprecated
626 public static Bitmap loadContactPhoto(Context context, Uri person,
627 int placeholderImageResource, BitmapFactory.Options options) {
628 if (person == null) {
629 return loadPlaceholderPhoto(placeholderImageResource, context, options);
630 }
631
632 InputStream stream = openContactPhotoInputStream(context.getContentResolver(), person);
633 Bitmap bm = stream != null ? BitmapFactory.decodeStream(stream, null, options) : null;
634 if (bm == null) {
635 bm = loadPlaceholderPhoto(placeholderImageResource, context, options);
636 }
637 return bm;
638 }
639
640 private static Bitmap loadPlaceholderPhoto(int placeholderImageResource, Context context,
641 BitmapFactory.Options options) {
642 if (placeholderImageResource == 0) {
643 return null;
644 }
645 return BitmapFactory.decodeResource(context.getResources(),
646 placeholderImageResource, options);
647 }
648
649 /**
650 * A sub directory of a single person that contains all of their Phones.
651 * @deprecated see {@link android.provider.ContactsContract}
652 */
653 @Deprecated
654 public static final class Phones implements BaseColumns, PhonesColumns,
655 PeopleColumns {
656 /**
657 * no public constructor since this is a utility class
658 */
659 private Phones() {}
660
661 /**
662 * The directory twig for this sub-table
663 * @deprecated see {@link android.provider.ContactsContract}
664 */
665 @Deprecated
666 public static final String CONTENT_DIRECTORY = "phones";
667
668 /**
669 * The default sort order for this table
670 * @deprecated see {@link android.provider.ContactsContract}
671 */
672 @Deprecated
673 public static final String DEFAULT_SORT_ORDER = "number ASC";
674 }
675
676 /**
677 * A subdirectory of a single person that contains all of their
678 * ContactMethods.
679 * @deprecated see {@link android.provider.ContactsContract}
680 */
681 @Deprecated
682 public static final class ContactMethods
683 implements BaseColumns, ContactMethodsColumns, PeopleColumns {
684 /**
685 * no public constructor since this is a utility class
686 */
687 private ContactMethods() {}
688
689 /**
690 * The directory twig for this sub-table
691 * @deprecated see {@link android.provider.ContactsContract}
692 */
693 @Deprecated
694 public static final String CONTENT_DIRECTORY = "contact_methods";
695
696 /**
697 * The default sort order for this table
698 * @deprecated see {@link android.provider.ContactsContract}
699 */
700 @Deprecated
701 public static final String DEFAULT_SORT_ORDER = "data ASC";
702 }
703
704 /**
705 * The extensions for a person
706 * @deprecated see {@link android.provider.ContactsContract}
707 */
708 @Deprecated
709 public static class Extensions implements BaseColumns, ExtensionsColumns {
710 /**
711 * no public constructor since this is a utility class
712 * @deprecated see {@link android.provider.ContactsContract}
713 */
714 @Deprecated
715 private Extensions() {}
716
717 /**
718 * The directory twig for this sub-table
719 * @deprecated see {@link android.provider.ContactsContract}
720 */
721 @Deprecated
722 public static final String CONTENT_DIRECTORY = "extensions";
723
724 /**
725 * The default sort order for this table
726 * @deprecated see {@link android.provider.ContactsContract}
727 */
728 @Deprecated
729 public static final String DEFAULT_SORT_ORDER = "name ASC";
730
731 /**
732 * The ID of the person this phone number is assigned to.
733 * <P>Type: INTEGER (long)</P>
734 * @deprecated see {@link android.provider.ContactsContract}
735 */
736 @Deprecated
737 public static final String PERSON_ID = "person";
738 }
739 }
740
741 /**
742 * Columns from the groups table.
743 * @deprecated see {@link android.provider.ContactsContract}
744 */
745 @Deprecated
746 public interface GroupsColumns {
747 /**
748 * The group name.
749 * <P>Type: TEXT</P>
750 * @deprecated see {@link android.provider.ContactsContract}
751 */
752 @Deprecated
753 public static final String NAME = "name";
754
755 /**
756 * Notes about the group.
757 * <P>Type: TEXT</P>
758 * @deprecated see {@link android.provider.ContactsContract}
759 */
760 @Deprecated
761 public static final String NOTES = "notes";
762
763 /**
764 * Whether this group should be synced if the SYNC_EVERYTHING settings is false
765 * for this group's account.
766 * <P>Type: INTEGER (boolean)</P>
767 * @deprecated see {@link android.provider.ContactsContract}
768 */
769 @Deprecated
770 public static final String SHOULD_SYNC = "should_sync";
771
772 /**
773 * The ID of this group if it is a System Group, null otherwise.
774 * <P>Type: TEXT</P>
775 * @deprecated see {@link android.provider.ContactsContract}
776 */
777 @Deprecated
778 public static final String SYSTEM_ID = "system_id";
779 }
780
781 /**
782 * This table contains the groups for an account.
783 * @deprecated see {@link android.provider.ContactsContract}
784 */
785 @Deprecated
786 public static final class Groups
787 implements BaseColumns, GroupsColumns {
788 /**
789 * no public constructor since this is a utility class
790 */
791 private Groups() {}
792
793 /**
794 * The content:// style URL for this table
795 * @deprecated see {@link android.provider.ContactsContract}
796 */
797 @Deprecated
798 public static final Uri CONTENT_URI =
799 Uri.parse("content://contacts/groups");
800
801 /**
802 * The content:// style URL for the table that holds the deleted
803 * groups.
804 * @deprecated see {@link android.provider.ContactsContract}
805 */
806 @Deprecated
807 public static final Uri DELETED_CONTENT_URI =
808 Uri.parse("content://contacts/deleted_groups");
809
810 /**
811 * The MIME type of {@link #CONTENT_URI} providing a directory of
812 * groups.
813 * @deprecated see {@link android.provider.ContactsContract}
814 */
815 @Deprecated
816 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroup";
817
818 /**
819 * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
820 * group.
821 * @deprecated see {@link android.provider.ContactsContract}
822 */
823 @Deprecated
824 public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroup";
825
826 /**
827 * The default sort order for this table
828 * @deprecated see {@link android.provider.ContactsContract}
829 */
830 @Deprecated
831 public static final String DEFAULT_SORT_ORDER = NAME + " ASC";
832
833 /**
834 * @deprecated see {@link android.provider.ContactsContract}
835 */
836 @Deprecated
837 public static final String GROUP_ANDROID_STARRED = "Starred in Android";
838
839 /**
840 * The "My Contacts" system group.
841 * @deprecated see {@link android.provider.ContactsContract}
842 */
843 @Deprecated
844 public static final String GROUP_MY_CONTACTS = "Contacts";
845 }
846
847 /**
848 * Columns from the Phones table that other columns join into themselves.
849 * @deprecated see {@link android.provider.ContactsContract}
850 */
851 @Deprecated
852 public interface PhonesColumns {
853 /**
854 * The type of the the phone number.
855 * <P>Type: INTEGER (one of the constants below)</P>
856 * @deprecated see {@link android.provider.ContactsContract}
857 */
858 @Deprecated
859 public static final String TYPE = "type";
860
861 /**
862 * @deprecated see {@link android.provider.ContactsContract}
863 */
864 @Deprecated
865 public static final int TYPE_CUSTOM = 0;
866 /**
867 * @deprecated see {@link android.provider.ContactsContract}
868 */
869 @Deprecated
870 public static final int TYPE_HOME = 1;
871 /**
872 * @deprecated see {@link android.provider.ContactsContract}
873 */
874 @Deprecated
875 public static final int TYPE_MOBILE = 2;
876 /**
877 * @deprecated see {@link android.provider.ContactsContract}
878 */
879 @Deprecated
880 public static final int TYPE_WORK = 3;
881 /**
882 * @deprecated see {@link android.provider.ContactsContract}
883 */
884 @Deprecated
885 public static final int TYPE_FAX_WORK = 4;
886 /**
887 * @deprecated see {@link android.provider.ContactsContract}
888 */
889 @Deprecated
890 public static final int TYPE_FAX_HOME = 5;
891 /**
892 * @deprecated see {@link android.provider.ContactsContract}
893 */
894 @Deprecated
895 public static final int TYPE_PAGER = 6;
896 /**
897 * @deprecated see {@link android.provider.ContactsContract}
898 */
899 @Deprecated
900 public static final int TYPE_OTHER = 7;
901
902 /**
903 * The user provided label for the phone number, only used if TYPE is TYPE_CUSTOM.
904 * <P>Type: TEXT</P>
905 * @deprecated see {@link android.provider.ContactsContract}
906 */
907 @Deprecated
908 public static final String LABEL = "label";
909
910 /**
911 * The phone number as the user entered it.
912 * <P>Type: TEXT</P>
913 * @deprecated see {@link android.provider.ContactsContract}
914 */
915 @Deprecated
916 public static final String NUMBER = "number";
917
918 /**
919 * The normalized phone number
920 * <P>Type: TEXT</P>
921 * @deprecated see {@link android.provider.ContactsContract}
922 */
923 @Deprecated
924 public static final String NUMBER_KEY = "number_key";
925
926 /**
927 * Whether this is the primary phone number
928 * <P>Type: INTEGER (if set, non-0 means true)</P>
929 * @deprecated see {@link android.provider.ContactsContract}
930 */
931 @Deprecated
932 public static final String ISPRIMARY = "isprimary";
933 }
934
935 /**
936 * This table stores phone numbers and a reference to the person that the
937 * contact method belongs to. Phone numbers are stored separately from
938 * other contact methods to make caller ID lookup more efficient.
939 * @deprecated see {@link android.provider.ContactsContract}
940 */
941 @Deprecated
942 public static final class Phones
943 implements BaseColumns, PhonesColumns, PeopleColumns {
944 /**
945 * no public constructor since this is a utility class
946 */
947 private Phones() {}
948
949 /**
950 * @deprecated see {@link android.provider.ContactsContract}
951 */
952 @Deprecated
953 public static final CharSequence getDisplayLabel(Context context, int type,
954 CharSequence label, CharSequence[] labelArray) {
955 CharSequence display = "";
956
957 if (type != People.Phones.TYPE_CUSTOM) {
958 CharSequence[] labels = labelArray != null? labelArray
959 : context.getResources().getTextArray(
960 com.android.internal.R.array.phoneTypes);
961 try {
962 display = labels[type - 1];
963 } catch (ArrayIndexOutOfBoundsException e) {
964 display = labels[People.Phones.TYPE_HOME - 1];
965 }
966 } else {
967 if (!TextUtils.isEmpty(label)) {
968 display = label;
969 }
970 }
971 return display;
972 }
973
974 /**
975 * @deprecated see {@link android.provider.ContactsContract}
976 */
977 @Deprecated
978 public static final CharSequence getDisplayLabel(Context context, int type,
979 CharSequence label) {
980 return getDisplayLabel(context, type, label, null);
981 }
982
983 /**
984 * The content:// style URL for this table
985 * @deprecated see {@link android.provider.ContactsContract}
986 */
987 @Deprecated
988 public static final Uri CONTENT_URI =
989 Uri.parse("content://contacts/phones");
990
991 /**
992 * The content:// style URL for filtering phone numbers
993 * @deprecated see {@link android.provider.ContactsContract}
994 */
995 @Deprecated
996 public static final Uri CONTENT_FILTER_URL =
997 Uri.parse("content://contacts/phones/filter");
998
999 /**
1000 * The MIME type of {@link #CONTENT_URI} providing a directory of
1001 * phones.
1002 * @deprecated see {@link android.provider.ContactsContract}
1003 */
1004 @Deprecated
1005 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/phone";
1006
1007 /**
1008 * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
1009 * phone.
1010 * @deprecated see {@link android.provider.ContactsContract}
1011 */
1012 @Deprecated
1013 public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone";
1014
1015 /**
1016 * The default sort order for this table
1017 * @deprecated see {@link android.provider.ContactsContract}
1018 */
1019 @Deprecated
1020 public static final String DEFAULT_SORT_ORDER = "name ASC";
1021
1022 /**
1023 * The ID of the person this phone number is assigned to.
1024 * <P>Type: INTEGER (long)</P>
1025 * @deprecated see {@link android.provider.ContactsContract}
1026 */
1027 @Deprecated
1028 public static final String PERSON_ID = "person";
1029 }
1030
1031 /**
1032 * @deprecated see {@link android.provider.ContactsContract}
1033 */
1034 @Deprecated
1035 public static final class GroupMembership implements BaseColumns, GroupsColumns {
1036 /**
1037 * no public constructor since this is a utility class
1038 */
1039 private GroupMembership() {}
1040
1041 /**
1042 * The content:// style URL for this table
1043 * @deprecated see {@link android.provider.ContactsContract}
1044 */
1045 @Deprecated
1046 public static final Uri CONTENT_URI =
1047 Uri.parse("content://contacts/groupmembership");
1048
1049 /**
1050 * The content:// style URL for this table
1051 * @deprecated see {@link android.provider.ContactsContract}
1052 */
1053 @Deprecated
1054 public static final Uri RAW_CONTENT_URI =
1055 Uri.parse("content://contacts/groupmembershipraw");
1056
1057 /**
1058 * The directory twig for this sub-table
1059 * @deprecated see {@link android.provider.ContactsContract}
1060 */
1061 @Deprecated
1062 public static final String CONTENT_DIRECTORY = "groupmembership";
1063
1064 /**
1065 * The MIME type of {@link #CONTENT_URI} providing a directory of all
1066 * person groups.
1067 * @deprecated see {@link android.provider.ContactsContract}
1068 */
1069 @Deprecated
1070 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroupmembership";
1071
1072 /**
1073 * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
1074 * person group.
1075 * @deprecated see {@link android.provider.ContactsContract}
1076 */
1077 @Deprecated
1078 public static final String CONTENT_ITEM_TYPE =
1079 "vnd.android.cursor.item/contactsgroupmembership";
1080
1081 /**
1082 * The default sort order for this table
1083 * @deprecated see {@link android.provider.ContactsContract}
1084 */
1085 @Deprecated
1086 public static final String DEFAULT_SORT_ORDER = "group_id ASC";
1087
1088 /**
1089 * The row id of the accounts group.
1090 * <P>Type: TEXT</P>
1091 * @deprecated see {@link android.provider.ContactsContract}
1092 */
1093 @Deprecated
1094 public static final String GROUP_ID = "group_id";
1095
1096 /**
1097 * The sync id of the group.
1098 * <P>Type: TEXT</P>
1099 * @deprecated see {@link android.provider.ContactsContract}
1100 */
1101 @Deprecated
1102 public static final String GROUP_SYNC_ID = "group_sync_id";
1103
1104 /**
1105 * The account of the group.
1106 * <P>Type: TEXT</P>
1107 * @deprecated see {@link android.provider.ContactsContract}
1108 */
1109 @Deprecated
1110 public static final String GROUP_SYNC_ACCOUNT = "group_sync_account";
1111
1112 /**
1113 * The account type of the group.
1114 * <P>Type: TEXT</P>
1115 * @deprecated see {@link android.provider.ContactsContract}
1116 */
1117 @Deprecated
1118 public static final String GROUP_SYNC_ACCOUNT_TYPE = "group_sync_account_type";
1119
1120 /**
1121 * The row id of the person.
1122 * <P>Type: TEXT</P>
1123 * @deprecated see {@link android.provider.ContactsContract}
1124 */
1125 @Deprecated
1126 public static final String PERSON_ID = "person";
1127 }
1128
1129 /**
1130 * Columns from the ContactMethods table that other tables join into
1131 * themseleves.
1132 * @deprecated see {@link android.provider.ContactsContract}
1133 */
1134 @Deprecated
1135 public interface ContactMethodsColumns {
1136 /**
1137 * The kind of the the contact method. For example, email address,
1138 * postal address, etc.
1139 * <P>Type: INTEGER (one of the values below)</P>
1140 * @deprecated see {@link android.provider.ContactsContract}
1141 */
1142 @Deprecated
1143 public static final String KIND = "kind";
1144
1145 /**
1146 * The type of the contact method, must be one of the types below.
1147 * <P>Type: INTEGER (one of the values below)</P>
1148 * @deprecated see {@link android.provider.ContactsContract}
1149 */
1150 @Deprecated
1151 public static final String TYPE = "type";
1152 /**
1153 * @deprecated see {@link android.provider.ContactsContract}
1154 */
1155 @Deprecated
1156 public static final int TYPE_CUSTOM = 0;
1157 /**
1158 * @deprecated see {@link android.provider.ContactsContract}
1159 */
1160 @Deprecated
1161 public static final int TYPE_HOME = 1;
1162 /**
1163 * @deprecated see {@link android.provider.ContactsContract}
1164 */
1165 @Deprecated
1166 public static final int TYPE_WORK = 2;
1167 /**
1168 * @deprecated see {@link android.provider.ContactsContract}
1169 */
1170 @Deprecated
1171 public static final int TYPE_OTHER = 3;
1172
1173 /**
1174 * @hide This is temporal. TYPE_MOBILE should be added to TYPE in the future.
1175 * @deprecated see {@link android.provider.ContactsContract}
1176 */
1177 @Deprecated
1178 public static final int MOBILE_EMAIL_TYPE_INDEX = 2;
1179
1180 /**
1181 * @hide This is temporal. TYPE_MOBILE should be added to TYPE in the future.
1182 * This is not "mobile" but "CELL" since vCard uses it for identifying mobile phone.
1183 * @deprecated see {@link android.provider.ContactsContract}
1184 */
1185 @Deprecated
1186 public static final String MOBILE_EMAIL_TYPE_NAME = "_AUTO_CELL";
1187
1188 /**
1189 * The user defined label for the the contact method.
1190 * <P>Type: TEXT</P>
1191 * @deprecated see {@link android.provider.ContactsContract}
1192 */
1193 @Deprecated
1194 public static final String LABEL = "label";
1195
1196 /**
1197 * The data for the contact method.
1198 * <P>Type: TEXT</P>
1199 * @deprecated see {@link android.provider.ContactsContract}
1200 */
1201 @Deprecated
1202 public static final String DATA = "data";
1203
1204 /**
1205 * Auxiliary data for the contact method.
1206 * <P>Type: TEXT</P>
1207 * @deprecated see {@link android.provider.ContactsContract}
1208 */
1209 @Deprecated
1210 public static final String AUX_DATA = "aux_data";
1211
1212 /**
1213 * Whether this is the primary organization
1214 * <P>Type: INTEGER (if set, non-0 means true)</P>
1215 * @deprecated see {@link android.provider.ContactsContract}
1216 */
1217 @Deprecated
1218 public static final String ISPRIMARY = "isprimary";
1219 }
1220
1221 /**
1222 * This table stores all non-phone contact methods and a reference to the
1223 * person that the contact method belongs to.
1224 * @deprecated see {@link android.provider.ContactsContract}
1225 */
1226 @Deprecated
1227 public static final class ContactMethods
1228 implements BaseColumns, ContactMethodsColumns, PeopleColumns {
1229 /**
1230 * The column with latitude data for postal locations
1231 * <P>Type: REAL</P>
1232 * @deprecated see {@link android.provider.ContactsContract}
1233 */
1234 @Deprecated
1235 public static final String POSTAL_LOCATION_LATITUDE = DATA;
1236
1237 /**
1238 * The column with longitude data for postal locations
1239 * <P>Type: REAL</P>
1240 * @deprecated see {@link android.provider.ContactsContract}
1241 */
1242 @Deprecated
1243 public static final String POSTAL_LOCATION_LONGITUDE = AUX_DATA;
1244
1245 /**
1246 * The predefined IM protocol types. The protocol can either be non-present, one
1247 * of these types, or a free-form string. These cases are encoded in the AUX_DATA
1248 * column as:
1249 * - null
1250 * - pre:<an integer, one of the protocols below>
1251 * - custom:<a string>
1252 * @deprecated see {@link android.provider.ContactsContract}
1253 */
1254 @Deprecated
1255 public static final int PROTOCOL_AIM = 0;
1256 /**
1257 * @deprecated see {@link android.provider.ContactsContract}
1258 */
1259 @Deprecated
1260 public static final int PROTOCOL_MSN = 1;
1261 /**
1262 * @deprecated see {@link android.provider.ContactsContract}
1263 */
1264 @Deprecated
1265 public static final int PROTOCOL_YAHOO = 2;
1266 /**
1267 * @deprecated see {@link android.provider.ContactsContract}
1268 */
1269 @Deprecated
1270 public static final int PROTOCOL_SKYPE = 3;
1271 /**
1272 * @deprecated see {@link android.provider.ContactsContract}
1273 */
1274 @Deprecated
1275 public static final int PROTOCOL_QQ = 4;
1276 /**
1277 * @deprecated see {@link android.provider.ContactsContract}
1278 */
1279 @Deprecated
1280 public static final int PROTOCOL_GOOGLE_TALK = 5;
1281 /**
1282 * @deprecated see {@link android.provider.ContactsContract}
1283 */
1284 @Deprecated
1285 public static final int PROTOCOL_ICQ = 6;
1286 /**
1287 * @deprecated see {@link android.provider.ContactsContract}
1288 */
1289 @Deprecated
1290 public static final int PROTOCOL_JABBER = 7;
1291
1292 /**
1293 * @deprecated see {@link android.provider.ContactsContract}
1294 */
1295 @Deprecated
1296 public static String encodePredefinedImProtocol(int protocol) {
1297 return "pre:" + protocol;
1298 }
1299
1300 /**
1301 * @deprecated see {@link android.provider.ContactsContract}
1302 */
1303 @Deprecated
1304 public static String encodeCustomImProtocol(String protocolString) {
1305 return "custom:" + protocolString;
1306 }
1307
1308 /**
1309 * @deprecated see {@link android.provider.ContactsContract}
1310 */
1311 @Deprecated
1312 public static Object decodeImProtocol(String encodedString) {
1313 if (encodedString == null) {
1314 return null;
1315 }
1316
1317 if (encodedString.startsWith("pre:")) {
1318 return Integer.parseInt(encodedString.substring(4));
1319 }
1320
1321 if (encodedString.startsWith("custom:")) {
1322 return encodedString.substring(7);
1323 }
1324
1325 throw new IllegalArgumentException(
1326 "the value is not a valid encoded protocol, " + encodedString);
1327 }
1328
1329 /**
1330 * TODO find a place to put the canonical version of these.
1331 */
1332 interface ProviderNames {
1333 //
1334 //NOTE: update Contacts.java with new providers when they're added.
1335 //
1336 String YAHOO = "Yahoo";
1337 String GTALK = "GTalk";
1338 String MSN = "MSN";
1339 String ICQ = "ICQ";
1340 String AIM = "AIM";
1341 String XMPP = "XMPP";
1342 String JABBER = "JABBER";
1343 String SKYPE = "SKYPE";
1344 String QQ = "QQ";
1345 }
1346
1347 /**
1348 * This looks up the provider name defined in
1349 * from the predefined IM protocol id.
1350 * This is used for interacting with the IM application.
1351 *
1352 * @param protocol the protocol ID
1353 * @return the provider name the IM app uses for the given protocol, or null if no
1354 * provider is defined for the given protocol
1355 * @deprecated see {@link android.provider.ContactsContract}
1356 * @hide
1357 */
1358 @Deprecated
1359 public static String lookupProviderNameFromId(int protocol) {
1360 switch (protocol) {
1361 case PROTOCOL_GOOGLE_TALK:
1362 return ProviderNames.GTALK;
1363 case PROTOCOL_AIM:
1364 return ProviderNames.AIM;
1365 case PROTOCOL_MSN:
1366 return ProviderNames.MSN;
1367 case PROTOCOL_YAHOO:
1368 return ProviderNames.YAHOO;
1369 case PROTOCOL_ICQ:
1370 return ProviderNames.ICQ;
1371 case PROTOCOL_JABBER:
1372 return ProviderNames.JABBER;
1373 case PROTOCOL_SKYPE:
1374 return ProviderNames.SKYPE;
1375 case PROTOCOL_QQ:
1376 return ProviderNames.QQ;
1377 }
1378 return null;
1379 }
1380
1381 /**
1382 * no public constructor since this is a utility class
1383 */
1384 private ContactMethods() {}
1385
1386 /**
1387 * @deprecated see {@link android.provider.ContactsContract}
1388 */
1389 @Deprecated
1390 public static final CharSequence getDisplayLabel(Context context, int kind,
1391 int type, CharSequence label) {
1392 CharSequence display = "";
1393 switch (kind) {
1394 case KIND_EMAIL: {
1395 if (type != People.ContactMethods.TYPE_CUSTOM) {
1396 CharSequence[] labels = context.getResources().getTextArray(
1397 com.android.internal.R.array.emailAddressTypes);
1398 try {
1399 display = labels[type - 1];
1400 } catch (ArrayIndexOutOfBoundsException e) {
1401 display = labels[ContactMethods.TYPE_HOME - 1];
1402 }
1403 } else {
1404 if (!TextUtils.isEmpty(label)) {
1405 display = label;
1406 }
1407 }
1408 break;
1409 }
1410
1411 case KIND_POSTAL: {
1412 if (type != People.ContactMethods.TYPE_CUSTOM) {
1413 CharSequence[] labels = context.getResources().getTextArray(
1414 com.android.internal.R.array.postalAddressTypes);
1415 try {
1416 display = labels[type - 1];
1417 } catch (ArrayIndexOutOfBoundsException e) {
1418 display = labels[ContactMethods.TYPE_HOME - 1];
1419 }
1420 } else {
1421 if (!TextUtils.isEmpty(label)) {
1422 display = label;
1423 }
1424 }
1425 break;
1426 }
1427
1428 default:
1429 display = context.getString(R.string.untitled);
1430 }
1431 return display;
1432 }
1433
1434 /**
1435 * Add a longitude and latitude location to a postal address.
1436 *
1437 * @param context the context to use when updating the database
1438 * @param postalId the address to update
1439 * @param latitude the latitude for the address
1440 * @param longitude the longitude for the address
1441 * @deprecated see {@link android.provider.ContactsContract}
1442 */
1443 @Deprecated
1444 public void addPostalLocation(Context context, long postalId,
1445 double latitude, double longitude) {
1446 final ContentResolver resolver = context.getContentResolver();
1447 // Insert the location
1448 ContentValues values = new ContentValues(2);
1449 values.put(POSTAL_LOCATION_LATITUDE, latitude);
1450 values.put(POSTAL_LOCATION_LONGITUDE, longitude);
1451 Uri loc = resolver.insert(CONTENT_URI, values);
1452 long locId = ContentUris.parseId(loc);
1453
1454 // Update the postal address
1455 values.clear();
1456 values.put(AUX_DATA, locId);
1457 resolver.update(ContentUris.withAppendedId(CONTENT_URI, postalId), values, null, null);
1458 }
1459
1460 /**
1461 * The content:// style URL for this table
1462 * @deprecated see {@link android.provider.ContactsContract}
1463 */
1464 @Deprecated
1465 public static final Uri CONTENT_URI =
1466 Uri.parse("content://contacts/contact_methods");
1467
1468 /**
1469 * The content:// style URL for sub-directory of e-mail addresses.
1470 * @deprecated see {@link android.provider.ContactsContract}
1471 */
1472 @Deprecated
1473 public static final Uri CONTENT_EMAIL_URI =
1474 Uri.parse("content://contacts/contact_methods/email");
1475
1476 /**
1477 * The MIME type of {@link #CONTENT_URI} providing a directory of
1478 * @deprecated see {@link android.provider.ContactsContract}
1479 * phones.
1480 */
1481 @Deprecated
1482 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact-methods";
1483
1484 /**
1485 * The MIME type of a {@link #CONTENT_EMAIL_URI} sub-directory of
1486 * multiple {@link Contacts#KIND_EMAIL} entries.
1487 * @deprecated see {@link android.provider.ContactsContract}
1488 */
1489 @Deprecated
1490 public static final String CONTENT_EMAIL_TYPE = "vnd.android.cursor.dir/email";
1491
1492 /**
1493 * The MIME type of a {@link #CONTENT_EMAIL_URI} sub-directory of
1494 * multiple {@link Contacts#KIND_POSTAL} entries.
1495 * @deprecated see {@link android.provider.ContactsContract}
1496 */
1497 @Deprecated
1498 public static final String CONTENT_POSTAL_TYPE = "vnd.android.cursor.dir/postal-address";
1499
1500 /**
1501 * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
1502 * {@link Contacts#KIND_EMAIL} entry.
1503 * @deprecated see {@link android.provider.ContactsContract}
1504 */
1505 @Deprecated
1506 public static final String CONTENT_EMAIL_ITEM_TYPE = "vnd.android.cursor.item/email";
1507
1508 /**
1509 * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
1510 * {@link Contacts#KIND_POSTAL} entry.
1511 * @deprecated see {@link android.provider.ContactsContract}
1512 */
1513 @Deprecated
1514 public static final String CONTENT_POSTAL_ITEM_TYPE
1515 = "vnd.android.cursor.item/postal-address";
1516
1517 /**
1518 * The MIME type of a {@link #CONTENT_URI} sub-directory of a single
1519 * {@link Contacts#KIND_IM} entry.
1520 * @deprecated see {@link android.provider.ContactsContract}
1521 */
1522 @Deprecated
1523 public static final String CONTENT_IM_ITEM_TYPE = "vnd.android.cursor.item/jabber-im";
1524
1525 /**
1526 * The default sort order for this table
1527 * @deprecated see {@link android.provider.ContactsContract}
1528 */
1529 @Deprecated
1530 public static final String DEFAULT_SORT_ORDER = "name ASC";
1531
1532 /**
1533 * The ID of the person this contact method is assigned to.
1534 * <P>Type: INTEGER (long)</P>
1535 * @deprecated see {@link android.provider.ContactsContract}
1536 */
1537 @Deprecated
1538 public static final String PERSON_ID = "person";
1539 }
1540
1541 /**
1542 * The IM presence columns with some contacts specific columns mixed in.
1543 * @deprecated see {@link android.provider.ContactsContract}
1544 */
1545 @Deprecated
1546 public interface PresenceColumns {
1547 /**
1548 * The priority, an integer, used by XMPP presence
1549 * <P>Type: INTEGER</P>
1550 */
1551 String PRIORITY = "priority";
1552
1553 /**
1554 * The server defined status.
1555 * <P>Type: INTEGER (one of the values below)</P>
1556 */
1557 String PRESENCE_STATUS = ContactsContract.StatusUpdates.PRESENCE;
1558
1559 /**
1560 * Presence Status definition
1561 */
1562 int OFFLINE = ContactsContract.StatusUpdates.OFFLINE;
1563 int INVISIBLE = ContactsContract.StatusUpdates.INVISIBLE;
1564 int AWAY = ContactsContract.StatusUpdates.AWAY;
1565 int IDLE = ContactsContract.StatusUpdates.IDLE;
1566 int DO_NOT_DISTURB = ContactsContract.StatusUpdates.DO_NOT_DISTURB;
1567 int AVAILABLE = ContactsContract.StatusUpdates.AVAILABLE;
1568
1569 /**
1570 * The user defined status line.
1571 * <P>Type: TEXT</P>
1572 */
1573 String PRESENCE_CUSTOM_STATUS = ContactsContract.StatusUpdates.STATUS;
1574
1575 /**
1576 * The IM service the presence is coming from. Formatted using either
1577 * {@link Contacts.ContactMethods#encodePredefinedImProtocol} or
1578 * {@link Contacts.ContactMethods#encodeCustomImProtocol}.
1579 * <P>Type: STRING</P>
1580 * @deprecated see {@link android.provider.ContactsContract}
1581 */
1582 @Deprecated
1583 public static final String IM_PROTOCOL = "im_protocol";
1584
1585 /**
1586 * The IM handle the presence item is for. The handle is scoped to
1587 * the {@link #IM_PROTOCOL}.
1588 * <P>Type: STRING</P>
1589 * @deprecated see {@link android.provider.ContactsContract}
1590 */
1591 @Deprecated
1592 public static final String IM_HANDLE = "im_handle";
1593
1594 /**
1595 * The IM account for the local user that the presence data came from.
1596 * <P>Type: STRING</P>
1597 * @deprecated see {@link android.provider.ContactsContract}
1598 */
1599 @Deprecated
1600 public static final String IM_ACCOUNT = "im_account";
1601 }
1602
1603 /**
1604 * Contains presence information about contacts.
1605 * @hide
1606 * @deprecated see {@link android.provider.ContactsContract}
1607 */
1608 @Deprecated
1609 public static final class Presence
1610 implements BaseColumns, PresenceColumns, PeopleColumns {
1611 /**
1612 * The content:// style URL for this table
1613 * @deprecated see {@link android.provider.ContactsContract}
1614 */
1615 @Deprecated
1616 public static final Uri CONTENT_URI =
1617 Uri.parse("content://contacts/presence");
1618
1619 /**
1620 * The ID of the person this presence item is assigned to.
1621 * <P>Type: INTEGER (long)</P>
1622 * @deprecated see {@link android.provider.ContactsContract}
1623 */
1624 @Deprecated
1625 public static final String PERSON_ID = "person";
1626
1627 /**
1628 * Gets the resource ID for the proper presence icon.
1629 *
1630 * @param status the status to get the icon for
1631 * @return the resource ID for the proper presence icon
1632 * @deprecated see {@link android.provider.ContactsContract}
1633 */
1634 @Deprecated
1635 public static final int getPresenceIconResourceId(int status) {
1636 switch (status) {
1637 case Contacts.People.AVAILABLE:
1638 return com.android.internal.R.drawable.presence_online;
1639
1640 case Contacts.People.IDLE:
1641 case Contacts.People.AWAY:
1642 return com.android.internal.R.drawable.presence_away;
1643
1644 case Contacts.People.DO_NOT_DISTURB:
1645 return com.android.internal.R.drawable.presence_busy;
1646
1647 case Contacts.People.INVISIBLE:
1648 return com.android.internal.R.drawable.presence_invisible;
1649
1650 case Contacts.People.OFFLINE:
1651 default:
1652 return com.android.internal.R.drawable.presence_offline;
1653 }
1654 }
1655
1656 /**
1657 * Sets a presence icon to the proper graphic
1658 *
1659 * @param icon the icon to to set
1660 * @param serverStatus that status
1661 * @deprecated see {@link android.provider.ContactsContract}
1662 */
1663 @Deprecated
1664 public static final void setPresenceIcon(ImageView icon, int serverStatus) {
1665 icon.setImageResource(getPresenceIconResourceId(serverStatus));
1666 }
1667 }
1668
1669 /**
1670 * Columns from the Organizations table that other columns join into themselves.
1671 * @deprecated see {@link android.provider.ContactsContract}
1672 */
1673 @Deprecated
1674 public interface OrganizationColumns {
1675 /**
1676 * The type of the organizations.
1677 * <P>Type: INTEGER (one of the constants below)</P>
1678 * @deprecated see {@link android.provider.ContactsContract}
1679 */
1680 @Deprecated
1681 public static final String TYPE = "type";
1682
1683 /**
1684 * @deprecated see {@link android.provider.ContactsContract}
1685 */
1686 @Deprecated
1687 public static final int TYPE_CUSTOM = 0;
1688 /**
1689 * @deprecated see {@link android.provider.ContactsContract}
1690 */
1691 @Deprecated
1692 public static final int TYPE_WORK = 1;
1693 /**
1694 * @deprecated see {@link android.provider.ContactsContract}
1695 */
1696 @Deprecated
1697 public static final int TYPE_OTHER = 2;
1698
1699 /**
1700 * The user provided label, only used if TYPE is TYPE_CUSTOM.
1701 * <P>Type: TEXT</P>
1702 * @deprecated see {@link android.provider.ContactsContract}
1703 */
1704 @Deprecated
1705 public static final String LABEL = "label";
1706
1707 /**
1708 * The name of the company for this organization.
1709 * <P>Type: TEXT</P>
1710 * @deprecated see {@link android.provider.ContactsContract}
1711 */
1712 @Deprecated
1713 public static final String COMPANY = "company";
1714
1715 /**
1716 * The title within this organization.
1717 * <P>Type: TEXT</P>
1718 * @deprecated see {@link android.provider.ContactsContract}
1719 */
1720 @Deprecated
1721 public static final String TITLE = "title";
1722
1723 /**
1724 * The person this organization is tied to.
1725 * <P>Type: TEXT</P>
1726 * @deprecated see {@link android.provider.ContactsContract}
1727 */
1728 @Deprecated
1729 public static final String PERSON_ID = "person";
1730
1731 /**
1732 * Whether this is the primary organization
1733 * <P>Type: INTEGER (if set, non-0 means true)</P>
1734 * @deprecated see {@link android.provider.ContactsContract}
1735 */
1736 @Deprecated
1737 public static final String ISPRIMARY = "isprimary";
1738 }
1739
1740 /**
1741 * A sub directory of a single person that contains all of their Phones.
1742 * @deprecated see {@link android.provider.ContactsContract}
1743 */
1744 @Deprecated
1745 public static final class Organizations implements BaseColumns, OrganizationColumns {
1746 /**
1747 * no public constructor since this is a utility class
1748 */
1749 private Organizations() {}
1750
1751 /**
1752 * @deprecated see {@link android.provider.ContactsContract}
1753 */
1754 @Deprecated
1755 public static final CharSequence getDisplayLabel(Context context, int type,
1756 CharSequence label) {
1757 CharSequence display = "";
1758
1759 if (type != TYPE_CUSTOM) {
1760 CharSequence[] labels = context.getResources().getTextArray(
1761 com.android.internal.R.array.organizationTypes);
1762 try {
1763 display = labels[type - 1];
1764 } catch (ArrayIndexOutOfBoundsException e) {
1765 display = labels[Organizations.TYPE_WORK - 1];
1766 }
1767 } else {
1768 if (!TextUtils.isEmpty(label)) {
1769 display = label;
1770 }
1771 }
1772 return display;
1773 }
1774
1775 /**
1776 * The content:// style URL for this table
1777 * @deprecated see {@link android.provider.ContactsContract}
1778 */
1779 @Deprecated
1780 public static final Uri CONTENT_URI =
1781 Uri.parse("content://contacts/organizations");
1782
1783 /**
1784 * The directory twig for this sub-table
1785 * @deprecated see {@link android.provider.ContactsContract}
1786 */
1787 @Deprecated
1788 public static final String CONTENT_DIRECTORY = "organizations";
1789
1790 /**
1791 * The default sort order for this table
1792 * @deprecated see {@link android.provider.ContactsContract}
1793 */
1794 @Deprecated
1795 public static final String DEFAULT_SORT_ORDER = "company, title, isprimary ASC";
1796 }
1797
1798 /**
1799 * Columns from the Photos table that other columns join into themselves.
1800 * @deprecated see {@link android.provider.ContactsContract}
1801 */
1802 @Deprecated
1803 public interface PhotosColumns {
1804 /**
1805 * The _SYNC_VERSION of the photo that was last downloaded
1806 * <P>Type: TEXT</P>
1807 * @deprecated see {@link android.provider.ContactsContract}
1808 */
1809 @Deprecated
1810 public static final String LOCAL_VERSION = "local_version";
1811
1812 /**
1813 * The person this photo is associated with.
1814 * <P>Type: TEXT</P>
1815 * @deprecated see {@link android.provider.ContactsContract}
1816 */
1817 @Deprecated
1818 public static final String PERSON_ID = "person";
1819
1820 /**
1821 * non-zero if a download is required and the photo isn't marked as a bad resource.
1822 * You must specify this in the columns in order to use it in the where clause.
1823 * <P>Type: INTEGER(boolean)</P>
1824 * @deprecated see {@link android.provider.ContactsContract}
1825 */
1826 @Deprecated
1827 public static final String DOWNLOAD_REQUIRED = "download_required";
1828
1829 /**
1830 * non-zero if this photo is known to exist on the server
1831 * <P>Type: INTEGER(boolean)</P>
1832 * @deprecated see {@link android.provider.ContactsContract}
1833 */
1834 @Deprecated
1835 public static final String EXISTS_ON_SERVER = "exists_on_server";
1836
1837 /**
1838 * Contains the description of the upload or download error from
1839 * the previous attempt. If null then the previous attempt succeeded.
1840 * <P>Type: TEXT</P>
1841 * @deprecated see {@link android.provider.ContactsContract}
1842 */
1843 @Deprecated
1844 public static final String SYNC_ERROR = "sync_error";
1845
1846 /**
1847 * The image data, or null if there is no image.
1848 * <P>Type: BLOB</P>
1849 * @deprecated see {@link android.provider.ContactsContract}
1850 */
1851 @Deprecated
1852 public static final String DATA = "data";
1853
1854 }
1855
1856 /**
1857 * The photos over all of the people
1858 * @deprecated see {@link android.provider.ContactsContract}
1859 */
1860 @Deprecated
1861 public static final class Photos implements BaseColumns, PhotosColumns {
1862 /**
1863 * no public constructor since this is a utility class
1864 */
1865 private Photos() {}
1866
1867 /**
1868 * The content:// style URL for this table
1869 * @deprecated see {@link android.provider.ContactsContract}
1870 */
1871 @Deprecated
1872 public static final Uri CONTENT_URI = Uri.parse("content://contacts/photos");
1873
1874 /**
1875 * The directory twig for this sub-table
1876 * @deprecated see {@link android.provider.ContactsContract}
1877 */
1878 @Deprecated
1879 public static final String CONTENT_DIRECTORY = "photo";
1880
1881 /**
1882 * The default sort order for this table
1883 * @deprecated see {@link android.provider.ContactsContract}
1884 */
1885 @Deprecated
1886 public static final String DEFAULT_SORT_ORDER = "person ASC";
1887 }
1888
1889 /**
1890 * @deprecated see {@link android.provider.ContactsContract}
1891 */
1892 @Deprecated
1893 public interface ExtensionsColumns {
1894 /**
1895 * The name of this extension. May not be null. There may be at most one row for each name.
1896 * <P>Type: TEXT</P>
1897 * @deprecated see {@link android.provider.ContactsContract}
1898 */
1899 @Deprecated
1900 public static final String NAME = "name";
1901
1902 /**
1903 * The value of this extension. May not be null.
1904 * <P>Type: TEXT</P>
1905 * @deprecated see {@link android.provider.ContactsContract}
1906 */
1907 @Deprecated
1908 public static final String VALUE = "value";
1909 }
1910
1911 /**
1912 * The extensions for a person
1913 * @deprecated see {@link android.provider.ContactsContract}
1914 */
1915 @Deprecated
1916 public static final class Extensions implements BaseColumns, ExtensionsColumns {
1917 /**
1918 * no public constructor since this is a utility class
1919 */
1920 private Extensions() {}
1921
1922 /**
1923 * The content:// style URL for this table
1924 * @deprecated see {@link android.provider.ContactsContract}
1925 */
1926 @Deprecated
1927 public static final Uri CONTENT_URI =
1928 Uri.parse("content://contacts/extensions");
1929
1930 /**
1931 * The MIME type of {@link #CONTENT_URI} providing a directory of
1932 * phones.
1933 * @deprecated see {@link android.provider.ContactsContract}
1934 */
1935 @Deprecated
1936 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_extensions";
1937
1938 /**
1939 * The MIME type of a {@link #CONTENT_URI} subdirectory of a single
1940 * phone.
1941 * @deprecated see {@link android.provider.ContactsContract}
1942 */
1943 @Deprecated
1944 public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_extensions";
1945
1946 /**
1947 * The default sort order for this table
1948 * @deprecated see {@link android.provider.ContactsContract}
1949 */
1950 @Deprecated
1951 public static final String DEFAULT_SORT_ORDER = "person, name ASC";
1952
1953 /**
1954 * The ID of the person this phone number is assigned to.
1955 * <P>Type: INTEGER (long)</P>
1956 * @deprecated see {@link android.provider.ContactsContract}
1957 */
1958 @Deprecated
1959 public static final String PERSON_ID = "person";
1960 }
1961
1962 /**
1963 * Contains helper classes used to create or manage {@link android.content.Intent Intents}
1964 * that involve contacts.
1965 * @deprecated see {@link android.provider.ContactsContract}
1966 */
1967 @Deprecated
1968 public static final class Intents {
1969 /**
1970 * @deprecated see {@link android.provider.ContactsContract}
1971 */
1972 @Deprecated
1973 public Intents() {
1974 }
1975
1976 /**
1977 * This is the intent that is fired when a search suggestion is clicked on.
1978 * @deprecated see {@link android.provider.ContactsContract}
1979 */
1980 @Deprecated
1981 public static final String SEARCH_SUGGESTION_CLICKED =
1982 ContactsContract.Intents.SEARCH_SUGGESTION_CLICKED;
1983
1984 /**
1985 * This is the intent that is fired when a search suggestion for dialing a number
1986 * is clicked on.
1987 * @deprecated see {@link android.provider.ContactsContract}
1988 */
1989 @Deprecated
1990 public static final String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED =
1991 ContactsContract.Intents.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED;
1992
1993 /**
1994 * This is the intent that is fired when a search suggestion for creating a contact
1995 * is clicked on.
1996 * @deprecated see {@link android.provider.ContactsContract}
1997 */
1998 @Deprecated
1999 public static final String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED =
2000 ContactsContract.Intents.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED;
2001
2002 /**
2003 * Starts an Activity that lets the user pick a contact to attach an image to.
2004 * After picking the contact it launches the image cropper in face detection mode.
2005 * @deprecated see {@link android.provider.ContactsContract}
2006 */
2007 @Deprecated
2008 public static final String ATTACH_IMAGE = ContactsContract.Intents.ATTACH_IMAGE;
2009
2010 /**
2011 * Takes as input a data URI with a mailto: or tel: scheme. If a single
2012 * contact exists with the given data it will be shown. If no contact
2013 * exists, a dialog will ask the user if they want to create a new
2014 * contact with the provided details filled in. If multiple contacts
2015 * share the data the user will be prompted to pick which contact they
2016 * want to view.
2017 * <p>
2018 * For <code>mailto:</code> URIs, the scheme specific portion must be a
2019 * raw email address, such as one built using
2020 * {@link Uri#fromParts(String, String, String)}.
2021 * <p>
2022 * For <code>tel:</code> URIs, the scheme specific portion is compared
2023 * to existing numbers using the standard caller ID lookup algorithm.
2024 * The number must be properly encoded, for example using
2025 * {@link Uri#fromParts(String, String, String)}.
2026 * <p>
2027 * Any extras from the {@link Insert} class will be passed along to the
2028 * create activity if there are no contacts to show.
2029 * <p>
2030 * Passing true for the {@link #EXTRA_FORCE_CREATE} extra will skip
2031 * prompting the user when the contact doesn't exist.
2032 * @deprecated see {@link android.provider.ContactsContract}
2033 */
2034 @Deprecated
2035 public static final String SHOW_OR_CREATE_CONTACT =
2036 ContactsContract.Intents.SHOW_OR_CREATE_CONTACT;
2037
2038 /**
2039 * Used with {@link #SHOW_OR_CREATE_CONTACT} to force creating a new
2040 * contact if no matching contact found. Otherwise, default behavior is
2041 * to prompt user with dialog before creating.
2042 * <p>
2043 * Type: BOOLEAN
2044 * @deprecated see {@link android.provider.ContactsContract}
2045 */
2046 @Deprecated
2047 public static final String EXTRA_FORCE_CREATE = ContactsContract.Intents.EXTRA_FORCE_CREATE;
2048
2049 /**
2050 * Used with {@link #SHOW_OR_CREATE_CONTACT} to specify an exact
2051 * description to be shown when prompting user about creating a new
2052 * contact.
2053 * <p>
2054 * Type: STRING
2055 * @deprecated see {@link android.provider.ContactsContract}
2056 */
2057 @Deprecated
2058 public static final String EXTRA_CREATE_DESCRIPTION =
2059 ContactsContract.Intents.EXTRA_CREATE_DESCRIPTION;
2060
2061 /**
2062 * Optional extra used with {@link #SHOW_OR_CREATE_CONTACT} to specify a
2063 * dialog location using screen coordinates. When not specified, the
2064 * dialog will be centered.
2065 *
2066 * @hide pending API council review
2067 * @deprecated see {@link android.provider.ContactsContract}
2068 */
2069 @Deprecated
2070 public static final String EXTRA_TARGET_RECT = ContactsContract.Intents.EXTRA_TARGET_RECT;
2071
2072 /**
2073 * Intents related to the Contacts app UI.
2074 * @deprecated Do not use. This is not supported.
2075 */
2076 @Deprecated
2077 public static final class UI {
2078 /**
2079 * @deprecated Do not use. This is not supported.
2080 */
2081 @Deprecated
2082 public UI() {
2083 }
2084
2085 /**
2086 * The action for the default contacts list tab.
2087 * @deprecated Do not use. This is not supported.
2088 */
2089 @Deprecated
2090 public static final String LIST_DEFAULT
2091 = "com.android.contacts.action.LIST_DEFAULT";
2092
2093 /**
2094 * The action for the contacts list tab.
2095 * @deprecated Do not use. This is not supported.
2096 */
2097 @Deprecated
2098 public static final String LIST_GROUP_ACTION =
2099 "com.android.contacts.action.LIST_GROUP";
2100
2101 /**
2102 * When in LIST_GROUP_ACTION mode, this is the group to display.
2103 * @deprecated Do not use. This is not supported.
2104 */
2105 @Deprecated
2106 public static final String GROUP_NAME_EXTRA_KEY =
2107 "com.android.contacts.extra.GROUP";
2108 /**
2109 * The action for the all contacts list tab.
2110 * @deprecated Do not use. This is not supported.
2111 */
2112 @Deprecated
2113 public static final String LIST_ALL_CONTACTS_ACTION =
2114 "com.android.contacts.action.LIST_ALL_CONTACTS";
2115
2116 /**
2117 * The action for the contacts with phone numbers list tab.
2118 * @deprecated Do not use. This is not supported.
2119 */
2120 @Deprecated
2121 public static final String LIST_CONTACTS_WITH_PHONES_ACTION =
2122 "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
2123
2124 /**
2125 * The action for the starred contacts list tab.
2126 * @deprecated Do not use. This is not supported.
2127 */
2128 @Deprecated
2129 public static final String LIST_STARRED_ACTION =
2130 "com.android.contacts.action.LIST_STARRED";
2131
2132 /**
2133 * The action for the frequent contacts list tab.
2134 * @deprecated Do not use. This is not supported.
2135 */
2136 @Deprecated
2137 public static final String LIST_FREQUENT_ACTION =
2138 "com.android.contacts.action.LIST_FREQUENT";
2139
2140 /**
2141 * The action for the "strequent" contacts list tab. It first lists the starred
2142 * contacts in alphabetical order and then the frequent contacts in descending
2143 * order of the number of times they have been contacted.
2144 * @deprecated Do not use. This is not supported.
2145 */
2146 @Deprecated
2147 public static final String LIST_STREQUENT_ACTION =
2148 "com.android.contacts.action.LIST_STREQUENT";
2149
2150 /**
2151 * A key for to be used as an intent extra to set the activity
2152 * title to a custom String value.
2153 * @deprecated Do not use. This is not supported.
2154 */
2155 @Deprecated
2156 public static final String TITLE_EXTRA_KEY =
2157 "com.android.contacts.extra.TITLE_EXTRA";
2158
2159 /**
2160 * Activity Action: Display a filtered list of contacts
2161 * <p>
2162 * Input: Extra field {@link #FILTER_TEXT_EXTRA_KEY} is the text to use for
2163 * filtering
2164 * <p>
2165 * Output: Nothing.
2166 * @deprecated Do not use. This is not supported.
2167 */
2168 @Deprecated
2169 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2170 public static final String FILTER_CONTACTS_ACTION =
2171 "com.android.contacts.action.FILTER_CONTACTS";
2172
2173 /**
2174 * Used as an int extra field in {@link #FILTER_CONTACTS_ACTION}
2175 * intents to supply the text on which to filter.
2176 * @deprecated Do not use. This is not supported.
2177 */
2178 @Deprecated
2179 public static final String FILTER_TEXT_EXTRA_KEY =
2180 "com.android.contacts.extra.FILTER_TEXT";
2181 }
2182
2183 /**
2184 * Convenience class that contains string constants used
2185 * to create contact {@link android.content.Intent Intents}.
2186 * @deprecated see {@link android.provider.ContactsContract}
2187 */
2188 @Deprecated
2189 public static final class Insert {
2190 /**
2191 * @deprecated see {@link android.provider.ContactsContract}
2192 */
2193 @Deprecated
2194 public Insert() {
2195 }
2196
2197 /** The action code to use when adding a contact
2198 * @deprecated see {@link android.provider.ContactsContract}
2199 */
2200 @Deprecated
2201 public static final String ACTION = ContactsContract.Intents.Insert.ACTION;
2202
2203 /**
2204 * If present, forces a bypass of quick insert mode.
2205 * @deprecated see {@link android.provider.ContactsContract}
2206 */
2207 @Deprecated
2208 public static final String FULL_MODE = ContactsContract.Intents.Insert.FULL_MODE;
2209
2210 /**
2211 * The extra field for the contact name.
2212 * <P>Type: String</P>
2213 * @deprecated see {@link android.provider.ContactsContract}
2214 */
2215 @Deprecated
2216 public static final String NAME = ContactsContract.Intents.Insert.NAME;
2217
2218 /**
2219 * The extra field for the contact phonetic name.
2220 * <P>Type: String</P>
2221 * @deprecated see {@link android.provider.ContactsContract}
2222 */
2223 @Deprecated
2224 public static final String PHONETIC_NAME =
2225 ContactsContract.Intents.Insert.PHONETIC_NAME;
2226
2227 /**
2228 * The extra field for the contact company.
2229 * <P>Type: String</P>
2230 * @deprecated see {@link android.provider.ContactsContract}
2231 */
2232 @Deprecated
2233 public static final String COMPANY = ContactsContract.Intents.Insert.COMPANY;
2234
2235 /**
2236 * The extra field for the contact job title.
2237 * <P>Type: String</P>
2238 * @deprecated see {@link android.provider.ContactsContract}
2239 */
2240 @Deprecated
2241 public static final String JOB_TITLE = ContactsContract.Intents.Insert.JOB_TITLE;
2242
2243 /**
2244 * The extra field for the contact notes.
2245 * <P>Type: String</P>
2246 * @deprecated see {@link android.provider.ContactsContract}
2247 */
2248 @Deprecated
2249 public static final String NOTES = ContactsContract.Intents.Insert.NOTES;
2250
2251 /**
2252 * The extra field for the contact phone number.
2253 * <P>Type: String</P>
2254 * @deprecated see {@link android.provider.ContactsContract}
2255 */
2256 @Deprecated
2257 public static final String PHONE = ContactsContract.Intents.Insert.PHONE;
2258
2259 /**
2260 * The extra field for the contact phone number type.
2261 * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
2262 * or a string specifying a custom label.</P>
2263 * @deprecated see {@link android.provider.ContactsContract}
2264 */
2265 @Deprecated
2266 public static final String PHONE_TYPE = ContactsContract.Intents.Insert.PHONE_TYPE;
2267
2268 /**
2269 * The extra field for the phone isprimary flag.
2270 * <P>Type: boolean</P>
2271 * @deprecated see {@link android.provider.ContactsContract}
2272 */
2273 @Deprecated
2274 public static final String PHONE_ISPRIMARY =
2275 ContactsContract.Intents.Insert.PHONE_ISPRIMARY;
2276
2277 /**
2278 * The extra field for an optional second contact phone number.
2279 * <P>Type: String</P>
2280 * @deprecated see {@link android.provider.ContactsContract}
2281 */
2282 @Deprecated
2283 public static final String SECONDARY_PHONE =
2284 ContactsContract.Intents.Insert.SECONDARY_PHONE;
2285
2286 /**
2287 * The extra field for an optional second contact phone number type.
2288 * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
2289 * or a string specifying a custom label.</P>
2290 * @deprecated see {@link android.provider.ContactsContract}
2291 */
2292 @Deprecated
2293 public static final String SECONDARY_PHONE_TYPE =
2294 ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE;
2295
2296 /**
2297 * The extra field for an optional third contact phone number.
2298 * <P>Type: String</P>
2299 * @deprecated see {@link android.provider.ContactsContract}
2300 */
2301 @Deprecated
2302 public static final String TERTIARY_PHONE =
2303 ContactsContract.Intents.Insert.TERTIARY_PHONE;
2304
2305 /**
2306 * The extra field for an optional third contact phone number type.
2307 * <P>Type: Either an integer value from {@link android.provider.Contacts.PhonesColumns PhonesColumns},
2308 * or a string specifying a custom label.</P>
2309 * @deprecated see {@link android.provider.ContactsContract}
2310 */
2311 @Deprecated
2312 public static final String TERTIARY_PHONE_TYPE =
2313 ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE;
2314
2315 /**
2316 * The extra field for the contact email address.
2317 * <P>Type: String</P>
2318 * @deprecated see {@link android.provider.ContactsContract}
2319 */
2320 @Deprecated
2321 public static final String EMAIL = ContactsContract.Intents.Insert.EMAIL;
2322
2323 /**
2324 * The extra field for the contact email type.
2325 * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
2326 * or a string specifying a custom label.</P>
2327 * @deprecated see {@link android.provider.ContactsContract}
2328 */
2329 @Deprecated
2330 public static final String EMAIL_TYPE = ContactsContract.Intents.Insert.EMAIL_TYPE;
2331
2332 /**
2333 * The extra field for the email isprimary flag.
2334 * <P>Type: boolean</P>
2335 * @deprecated see {@link android.provider.ContactsContract}
2336 */
2337 @Deprecated
2338 public static final String EMAIL_ISPRIMARY =
2339 ContactsContract.Intents.Insert.EMAIL_ISPRIMARY;
2340
2341 /**
2342 * The extra field for an optional second contact email address.
2343 * <P>Type: String</P>
2344 * @deprecated see {@link android.provider.ContactsContract}
2345 */
2346 @Deprecated
2347 public static final String SECONDARY_EMAIL =
2348 ContactsContract.Intents.Insert.SECONDARY_EMAIL;
2349
2350 /**
2351 * The extra field for an optional second contact email type.
2352 * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
2353 * or a string specifying a custom label.</P>
2354 * @deprecated see {@link android.provider.ContactsContract}
2355 */
2356 @Deprecated
2357 public static final String SECONDARY_EMAIL_TYPE =
2358 ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE;
2359
2360 /**
2361 * The extra field for an optional third contact email address.
2362 * <P>Type: String</P>
2363 * @deprecated see {@link android.provider.ContactsContract}
2364 */
2365 @Deprecated
2366 public static final String TERTIARY_EMAIL =
2367 ContactsContract.Intents.Insert.TERTIARY_EMAIL;
2368
2369 /**
2370 * The extra field for an optional third contact email type.
2371 * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
2372 * or a string specifying a custom label.</P>
2373 * @deprecated see {@link android.provider.ContactsContract}
2374 */
2375 @Deprecated
2376 public static final String TERTIARY_EMAIL_TYPE =
2377 ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE;
2378
2379 /**
2380 * The extra field for the contact postal address.
2381 * <P>Type: String</P>
2382 * @deprecated see {@link android.provider.ContactsContract}
2383 */
2384 @Deprecated
2385 public static final String POSTAL = ContactsContract.Intents.Insert.POSTAL;
2386
2387 /**
2388 * The extra field for the contact postal address type.
2389 * <P>Type: Either an integer value from {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns}
2390 * or a string specifying a custom label.</P>
2391 * @deprecated see {@link android.provider.ContactsContract}
2392 */
2393 @Deprecated
2394 public static final String POSTAL_TYPE = ContactsContract.Intents.Insert.POSTAL_TYPE;
2395
2396 /**
2397 * The extra field for the postal isprimary flag.
2398 * <P>Type: boolean</P>
2399 * @deprecated see {@link android.provider.ContactsContract}
2400 */
2401 @Deprecated
2402 public static final String POSTAL_ISPRIMARY = ContactsContract.Intents.Insert.POSTAL_ISPRIMARY;
2403
2404 /**
2405 * The extra field for an IM handle.
2406 * <P>Type: String</P>
2407 * @deprecated see {@link android.provider.ContactsContract}
2408 */
2409 @Deprecated
2410 public static final String IM_HANDLE = ContactsContract.Intents.Insert.IM_HANDLE;
2411
2412 /**
2413 * The extra field for the IM protocol
2414 * <P>Type: the result of {@link Contacts.ContactMethods#encodePredefinedImProtocol}
2415 * or {@link Contacts.ContactMethods#encodeCustomImProtocol}.</P>
2416 * @deprecated see {@link android.provider.ContactsContract}
2417 */
2418 @Deprecated
2419 public static final String IM_PROTOCOL = ContactsContract.Intents.Insert.IM_PROTOCOL;
2420
2421 /**
2422 * The extra field for the IM isprimary flag.
2423 * <P>Type: boolean</P>
2424 * @deprecated see {@link android.provider.ContactsContract}
2425 */
2426 @Deprecated
2427 public static final String IM_ISPRIMARY = ContactsContract.Intents.Insert.IM_ISPRIMARY;
2428 }
2429 }
2430}