ContactsContract.java revision 1c1629da30bd1b125c59ab9bbcecff3bb3e74324
1088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar/* 2088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Copyright (C) 2009 The Android Open Source Project 3088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * 4088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Licensed under the Apache License, Version 2.0 (the "License"); 5088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * you may not use this file except in compliance with the License. 6088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * You may obtain a copy of the License at 7088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * 8088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * http://www.apache.org/licenses/LICENSE-2.0 9088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * 10088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Unless required by applicable law or agreed to in writing, software 11088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * distributed under the License is distributed on an "AS IS" BASIS, 12088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * See the License for the specific language governing permissions and 14088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * limitations under the License 15088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 16088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 17088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millarpackage android.provider; 18088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 197b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkeyimport android.accounts.Account; 200f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintanaimport android.content.ContentProviderClient; 210f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintanaimport android.content.ContentProviderOperation; 223c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikovimport android.content.ContentResolver; 233c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikovimport android.content.ContentUris; 249303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikovimport android.content.Context; 257b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkeyimport android.content.Intent; 268a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkeyimport android.content.res.Resources; 273c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikovimport android.database.Cursor; 28088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millarimport android.graphics.BitmapFactory; 29088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millarimport android.net.Uri; 300f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintanaimport android.os.RemoteException; 317b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkeyimport android.provider.ContactsContract.CommonDataKinds.GroupMembership; 329303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikovimport android.text.TextUtils; 33088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 343c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikovimport java.io.ByteArrayInputStream; 353c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikovimport java.io.InputStream; 363c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov 37088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar/** 38088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The contract between the contacts provider and applications. Contains definitions 39088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * for the supported URIs and columns. 40088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * 415f123bdcde61b9fdcd58952882c621c34a727e10Dmitri Plotnikov * @hide 42088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 43088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millarpublic final class ContactsContract { 44088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** The authority for the contacts provider */ 45088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String AUTHORITY = "com.android.contacts"; 46088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** A content:// style uri to the authority for the contacts provider */ 47088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY); 48088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 490f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public interface SyncStateColumns extends SyncStateContract.Columns { 500f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana } 510f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 520f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static final class SyncState { 530f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana /** 540f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana * This utility class cannot be instantiated 550f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana */ 560f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana private SyncState() {} 570f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 580f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static final String CONTENT_DIRECTORY = 590f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana SyncStateContract.Constants.CONTENT_DIRECTORY; 600f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 610f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana /** 620f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana * The content:// style URI for this table 630f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana */ 640f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static final Uri CONTENT_URI = 650f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana Uri.withAppendedPath(AUTHORITY_URI, CONTENT_DIRECTORY); 660f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 670f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana /** 680f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana * @see android.provider.SyncStateContract.Helpers#get 690f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana */ 700f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static byte[] get(ContentProviderClient provider, Account account) 710f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana throws RemoteException { 720f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana return SyncStateContract.Helpers.get(provider, CONTENT_URI, account); 730f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana } 740f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 750f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana /** 760f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana * @see android.provider.SyncStateContract.Helpers#set 770f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana */ 780f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static void set(ContentProviderClient provider, Account account, byte[] data) 790f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana throws RemoteException { 800f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana SyncStateContract.Helpers.set(provider, CONTENT_URI, account, data); 810f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana } 820f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 830f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana /** 840f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana * @see android.provider.SyncStateContract.Helpers#newSetOperation 850f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana */ 860f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana public static ContentProviderOperation newSetOperation(Account account, byte[] data) { 870f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana return SyncStateContract.Helpers.newSetOperation(CONTENT_URI, account, data); 880f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana } 890f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana } 900f4e1ab773d4d52bfb85a9ad2f050ead3b8b4e49Fred Quintana 9191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 9291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * Generic columns for use by sync adapters. The specific functions of 9391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * these columns are private to the sync adapter. Other clients of the API 9491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * should not attempt to either read or write this column. 9591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 9691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov private interface BaseSyncColumns { 9791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 9891e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** Generic column for use by sync adapters. */ 9991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String SYNC1 = "sync1"; 10091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** Generic column for use by sync adapters. */ 10191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String SYNC2 = "sync2"; 10291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** Generic column for use by sync adapters. */ 10391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String SYNC3 = "sync3"; 10491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** Generic column for use by sync adapters. */ 10591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String SYNC4 = "sync4"; 10691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov } 10791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 10891e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 10991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * Columns that appear when each row of a table belongs to a specific 11091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * account, including sync information that an account may need. 11191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 11291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov private interface SyncColumns extends BaseSyncColumns { 11391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 11491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * The name of the account instance to which this row belongs. 11591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * <P>Type: TEXT</P> 11691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 11791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String ACCOUNT_NAME = "account_name"; 11891e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 11991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 12091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * The type of account to which this row belongs, which when paired with 12191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * {@link #ACCOUNT_NAME} identifies a specific account. 12291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * <P>Type: TEXT</P> 12391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 12491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String ACCOUNT_TYPE = "account_type"; 12591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 12691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 12791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * String that uniquely identifies this row to its source account. 12891e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * <P>Type: TEXT</P> 12991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 13091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String SOURCE_ID = "sourceid"; 13191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 13291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 13391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * Version number that is updated whenever this row or its related data 13491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * changes. 13591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * <P>Type: INTEGER</P> 13691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 13791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String VERSION = "version"; 13891e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 13991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 14091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * Flag indicating that {@link #VERSION} has changed, and this row needs 14191e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * to be synchronized by its owning account. 14291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * <P>Type: INTEGER (boolean)</P> 14391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 14491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String DIRTY = "dirty"; 14591e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov } 14691e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 147c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov public interface ContactOptionsColumns { 148088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 149088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The number of times a person has been contacted 150088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: INTEGER</P> 151088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 152088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String TIMES_CONTACTED = "times_contacted"; 153088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 154088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 155088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The last time a person was contacted. 156088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: INTEGER</P> 157088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 158088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String LAST_TIME_CONTACTED = "last_time_contacted"; 159088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 160088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 161088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Is the contact starred? 162088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: INTEGER (boolean)</P> 163088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 164088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String STARRED = "starred"; 165088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 166088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 167693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov * A custom ringtone associated with a person. Not always present. 168693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov * <P>Type: TEXT (URI to the ringtone)</P> 169693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov */ 170693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov public static final String CUSTOM_RINGTONE = "custom_ringtone"; 171693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov 172693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov /** 173693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov * Whether the person should always be sent to voicemail. Not always 174693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov * present. 175693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov * <P>Type: INTEGER (0 for false, 1 for true)</P> 176693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov */ 177693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov public static final String SEND_TO_VOICEMAIL = "send_to_voicemail"; 178c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov } 179c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov 1807cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov private interface ContactsColumns { 181c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov /** 182c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov * The display name for the contact. 183c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov * <P>Type: TEXT</P> 184c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov */ 185c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov public static final String DISPLAY_NAME = "display_name"; 186693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov 187693d50e7aef79f16519bf9786af68124ffaf5cd8Dmitri Plotnikov /** 188088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Reference to the row in the data table holding the photo. 189088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: INTEGER REFERENCES data(_id)</P> 190088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 191088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PHOTO_ID = "photo_id"; 192b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 193b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1948a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Lookup value that reflects the {@link Groups#GROUP_VISIBLE} state of 1957cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * any {@link GroupMembership} for this contact. 196b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 197b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String IN_VISIBLE_GROUP = "in_visible_group"; 19855048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov 19955048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov /** 20055048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov * Contact presence status. See {@link android.provider.Im.CommonPresenceColumns} 20155048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov * for individual status definitions. 20255048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov */ 20355048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov public static final String PRESENCE_STATUS = Presence.PRESENCE_STATUS; 20455048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov 20555048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov /** 206074fbfe62739c45f5eeb343f0053577221f800ecDmitri Plotnikov * An indicator of whether this contact has at least one phone number. "1" if there is 207074fbfe62739c45f5eeb343f0053577221f800ecDmitri Plotnikov * at least one phone number, "0" otherwise. 2088dcd14021c4164f0e75308bcf6bc9d6a1c1f6effDmitri Plotnikov * <P>Type: INTEGER</P> 2098dcd14021c4164f0e75308bcf6bc9d6a1c1f6effDmitri Plotnikov */ 210074fbfe62739c45f5eeb343f0053577221f800ecDmitri Plotnikov public static final String HAS_PHONE_NUMBER = "has_phone_number"; 211088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 212088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 213088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 2147cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Constants for the contacts table, which contains a record per group 2157cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * of raw contact representing the same person. 216088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 21791e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static class Contacts implements BaseColumns, ContactsColumns, 218c9ec66b68b4ec98c9b2acb10ea25cfd7f0f648a2Dmitri Plotnikov ContactOptionsColumns { 219088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 220088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * This utility class cannot be instantiated 221088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 2227cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov private Contacts() {} 223088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 224088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 225088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The content:// style URI for this table 226088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 2277cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "contacts"); 228088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 229088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 230d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The content:// style URI for this table joined with useful data from 23102c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * {@link Data}. 232d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 233d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final Uri CONTENT_SUMMARY_URI = Uri.withAppendedPath(AUTHORITY_URI, 2347cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov "contacts_summary"); 2358a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 236161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 237161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The content:// style URI used for "type-to-filter" functionality on the 2388a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link #CONTENT_SUMMARY_URI} URI. The filter string will be used to match 2397cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * various parts of the contact name. The filter argument should be passed 240161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * as an additional path segment after this URI. 241161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 242161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final Uri CONTENT_SUMMARY_FILTER_URI = Uri.withAppendedPath( 243161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar CONTENT_SUMMARY_URI, "filter"); 2448a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 245dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 246dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The content:// style URI for this table joined with useful data from 2477cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * {@link Data}, filtered to include only starred contacts 2487cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * and the most frequently contacted contacts. 249dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 250dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final Uri CONTENT_SUMMARY_STREQUENT_URI = Uri.withAppendedPath( 251dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar CONTENT_SUMMARY_URI, "strequent"); 2528a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 253dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 254dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The content:// style URI used for "type-to-filter" functionality on the 2558a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link #CONTENT_SUMMARY_STREQUENT_URI} URI. The filter string will be used to match 2567cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * various parts of the contact name. The filter argument should be passed 257dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * as an additional path segment after this URI. 258dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 259dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final Uri CONTENT_SUMMARY_STREQUENT_FILTER_URI = Uri.withAppendedPath( 260dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar CONTENT_SUMMARY_STREQUENT_URI, "filter"); 261d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 262b926375cdabef2e56a8212a9fa1774566f659eaeEvan Millar public static final Uri CONTENT_SUMMARY_GROUP_URI = Uri.withAppendedPath( 263b926375cdabef2e56a8212a9fa1774566f659eaeEvan Millar CONTENT_SUMMARY_URI, "group"); 264d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 265088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The MIME type of {@link #CONTENT_URI} providing a directory of 266088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * people. 267088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 2687cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact"; 269088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 270088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 271088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The MIME type of a {@link #CONTENT_URI} subdirectory of a single 272088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * person. 273088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 2747cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact"; 275088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 276088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 2777cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * A sub-directory of a single contact that contains all of the constituent raw contact 278088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * {@link Data} rows. 279088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 2808851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Data implements BaseColumns, DataColumns { 281088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 282088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * no public constructor since this is a utility class 283088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 284088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Data() {} 285088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 286088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 287088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The directory twig for this sub-table 288088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 289088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_DIRECTORY = "data"; 290088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 2910918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov 2920918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov /** 2930918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov * A sub-directory of a single contact aggregate that contains all aggregation suggestions 2947cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * (other contacts). The aggregation suggestions are computed based on approximate 2957cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * data matches with this contact. 2960918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov */ 2977cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final class AggregationSuggestions implements BaseColumns, ContactsColumns { 2980918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov /** 2990918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov * No public constructor since this is a utility class 3000918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov */ 3010918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov private AggregationSuggestions() {} 3020918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov 3030918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov /** 3040918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov * The directory twig for this sub-table 3050918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov */ 3060918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov public static final String CONTENT_DIRECTORY = "suggestions"; 3070918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov } 3083c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov 3093c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov /** 3103c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * Returns a URI that can be used to retrieve the contact's default photo. 3113c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * 3123c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * @param contactUri the contact whose photo should be used 3133c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov */ 3143c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov public static Uri getPhotoUri(ContentResolver cr, Uri contactUri) { 3153c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov 3161c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov // TODO remove try/catch block as soon as eclair-dev is merged in eclair 3171c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov try { 3181c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov long photoId = -1; 3191c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov Cursor cursor = cr.query(contactUri, new String[] {Contacts.PHOTO_ID}, 3201c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov null, null, null); 3211c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov try { 3221c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov if (!cursor.moveToNext()) { 3231c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov return null; 3241c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov } 3251c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov 3261c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov if (cursor.isNull(0)) { 3271c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov return null; 3281c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov } 3291c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov 3301c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov photoId = cursor.getLong(0); 3311c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov } finally { 3321c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov cursor.close(); 3333c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3343c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov 3351c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, photoId); 3361c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov } catch (Exception e) { 3371c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov return null; 3383c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3393c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3403c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov 3413c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov /** 3423c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * Opens an InputStream for the person's default photo and returns the 3433c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * photo as a Bitmap stream. 3443c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * 3453c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov * @param contactUri the contact whose photo should be used 3463c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov */ 3473c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov public static InputStream openContactPhotoInputStream(ContentResolver cr, Uri contactUri) { 3483c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov Uri photoUri = getPhotoUri(cr, contactUri); 3491c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov if (photoUri == null) { 3501c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov return null; 3511c1629da30bd1b125c59ab9bbcecff3bb3e74324Dmitri Plotnikov } 3523c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov Cursor cursor = cr.query(photoUri, 3533c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov new String[]{ContactsContract.CommonDataKinds.Photo.PHOTO}, null, null, null); 3543c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov try { 3553c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov if (!cursor.moveToNext()) { 3563c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov return null; 3573c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3583c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov byte[] data = cursor.getBlob(0); 3593c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov if (data == null) { 3603c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov return null; 3613c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3623c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov return new ByteArrayInputStream(data); 3633c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } finally { 3643c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov cursor.close(); 3653c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 3663c513ed95cee2e0bcd7208cb7e46307f09c907c9Dmitri Plotnikov } 367088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 368088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 3692365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov private interface RawContactsColumns { 37003d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana /** 3717cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} that this 3727cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * data belongs to. 3738a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: INTEGER</P> 374088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 3757cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTACT_ID = "contact_id"; 376088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 377088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 3782365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov * Flag indicating that this {@link RawContacts} entry and its children has 3798a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * been restricted to specific platform apps. 3808a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: INTEGER (boolean)</P> 3818a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * 3828a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * @hide until finalized in future platform release 3838a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 3848a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String IS_RESTRICTED = "is_restricted"; 3858a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 3868a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 3878a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The aggregation mode for this contact. 3888a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: INTEGER</P> 3898a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 3908a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String AGGREGATION_MODE = "aggregation_mode"; 391d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov 392d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov /** 393d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * The "deleted" flag: "0" by default, "1" if the row has been marked 394d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * for deletion. When {@link android.content.ContentResolver#delete} is 395facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * called on a raw contact, it is marked for deletion and removed from its 3967cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * aggregate contact. The sync adaptor deletes the raw contact on the server and 397d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * then calls ContactResolver.delete once more, this time passing the 3987cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * {@link RawContacts#DELETE_PERMANENTLY} query parameter to finalize the data removal. 399d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * <P>Type: INTEGER</P> 400d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov */ 401d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov public static final String DELETED = "deleted"; 4028a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 4038a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 4048a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 4052365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov * Constants for the raw_contacts table, which contains the base contact 4062365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov * information per sync source. Sync adapters and contact management apps 4072365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov * are the primary consumers of this API. 4088a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 4097cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final class RawContacts implements BaseColumns, RawContactsColumns, 41091e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov ContactOptionsColumns, SyncColumns { 4118a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 4128a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * This utility class cannot be instantiated 4138a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 4142365ded4465332cc1de7fa661e2198854153d6ddDmitri Plotnikov private RawContacts() { 4158a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 4168a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 4178a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 418088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The content:// style URI for this table 419088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 420facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "raw_contacts"); 421088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 422088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 423088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The content:// style URL for filtering people by email address. The 424088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * filter argument should be passed as an additional path segment after 425088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * this URI. 426569277732b4180c07c9f917ff8c3fc3111b10338Dmitri Plotnikov * 427088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * @hide 428088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 429d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov @Deprecated 430dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final Uri CONTENT_FILTER_EMAIL_URI = 431dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar Uri.withAppendedPath(CONTENT_URI, "filter_email"); 432088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 433088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 434088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The MIME type of {@link #CONTENT_URI} providing a directory of 435088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * people. 436088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 4377cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact"; 438088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 439088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 440088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The MIME type of a {@link #CONTENT_URI} subdirectory of a single 441088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * person. 442088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 4437cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/raw_contact"; 444088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 445088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 446d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * Query parameter that can be passed with the {@link #CONTENT_URI} URI 447d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * to the {@link android.content.ContentResolver#delete} method to 448d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * indicate that the raw contact can be deleted physically, rather than 449d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov * merely marked as deleted. 450d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov */ 451d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov public static final String DELETE_PERMANENTLY = "delete_permanently"; 452d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov 453d5f56d1467cb877aa216effd605745f5f22b1917Dmitri Plotnikov /** 454c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov * Aggregation mode: aggregate asynchronously. 455c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov */ 456c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov public static final int AGGREGATION_MODE_DEFAULT = 0; 457c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov 458c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov /** 459facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * Aggregation mode: aggregate at the time the raw contact is inserted/updated. 460c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov */ 461c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov public static final int AGGREGATION_MODE_IMMEDITATE = 1; 462c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov 463c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov /** 464facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * Aggregation mode: never aggregate this raw contact (note that the raw contact will not 465c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov * have a corresponding Aggregate and therefore will not be included in Aggregates 466c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov * query results.) 467c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov */ 468c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov public static final int AGGREGATION_MODE_DISABLED = 2; 469c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov 470c991bfc53ff287c512a8ba567135499cc4157900Dmitri Plotnikov /** 471facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * A sub-directory of a single raw contact that contains all of their {@link Data} rows. 472088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * To access this directory append 473088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 474088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final class Data implements BaseColumns, DataColumns { 475088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 476088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * no public constructor since this is a utility class 477088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 4788a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey private Data() { 4798a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 480088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 481088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 482088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The directory twig for this sub-table 483088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 484088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_DIRECTORY = "data"; 485088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 486088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 487088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 488088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private interface DataColumns { 489088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 4908a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The package name to use when creating {@link Resources} objects for 4918a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * this data row. This value is only designed for use when building user 4928a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * interfaces, and should not be used to infer the owner. 4938a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 4948a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String RES_PACKAGE = "res_package"; 4958a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 4968a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 4978a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The MIME type of the item represented by this row. 498088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 499088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String MIMETYPE = "mimetype"; 500088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 501088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 5027cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * A reference to the {@link RawContacts#_ID} 503569277732b4180c07c9f917ff8c3fc3111b10338Dmitri Plotnikov * that this data belongs to. 504088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 505facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov public static final String RAW_CONTACT_ID = "raw_contact_id"; 506facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov 507ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar /** 5087cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Whether this is the primary entry of its kind for the raw contact it belongs to 509ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar * <P>Type: INTEGER (if set, non-0 means true)</P> 510ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar */ 511ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar public static final String IS_PRIMARY = "is_primary"; 512ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar 513ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar /** 5147cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Whether this is the primary entry of its kind for the aggregate 5157cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * contact it belongs to. Any data record that is "super primary" must 5167cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * also be "primary". 517ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar * <P>Type: INTEGER (if set, non-0 means true)</P> 518ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar */ 519ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar public static final String IS_SUPER_PRIMARY = "is_super_primary"; 520ab5742dd63f4e62ee0f55f786854c024ef8c5bb4Evan Millar 52128b68e5a59289f6947dc799b66a3b503571f876eJeff Sharkey /** 522c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana * The version of this data record. This is a read-only value. The data column is 523c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana * guaranteed to not change without the version going up. This value is monotonically 524c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana * increasing. 525c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana * <P>Type: INTEGER</P> 526c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana */ 527c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana public static final String DATA_VERSION = "data_version"; 528c933fb663e4748c4fa3f92fc63649e5199519a86Fred Quintana 529088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 530088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA1 = "data1"; 531088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 532088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA2 = "data2"; 533088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 534088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA3 = "data3"; 535088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 536088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA4 = "data4"; 537088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 538088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA5 = "data5"; 539088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 540088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA6 = "data6"; 541088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 542088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA7 = "data7"; 543088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 544088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA8 = "data8"; 545088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 546088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA9 = "data9"; 547088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 548088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DATA10 = "data10"; 5498a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 5508a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String DATA11 = "data11"; 5518a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 5528a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String DATA12 = "data12"; 5538a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 5548a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String DATA13 = "data13"; 5558a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 5568a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String DATA14 = "data14"; 5578a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** Generic data column, the meaning is {@link #MIMETYPE} specific */ 5588a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String DATA15 = "data15"; 55991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov 5608851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** Generic column for use by sync adapters. */ 5618851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String SYNC1 = "data_sync1"; 5628851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** Generic column for use by sync adapters. */ 5638851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String SYNC2 = "data_sync2"; 5648851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** Generic column for use by sync adapters. */ 5658851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String SYNC3 = "data_sync3"; 5668851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** Generic column for use by sync adapters. */ 5678851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String SYNC4 = "data_sync4"; 5688851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 56991e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov /** 570507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov * An optional insert, update or delete URI parameter that determines if 571507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov * the corresponding raw contact should be marked as dirty. The default 57291e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov * value is true. 57391e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov */ 57491e4e85752ee60ef4965e5974cc3f62e3d0651fdDmitri Plotnikov public static final String MARK_AS_DIRTY = "mark_as_dirty"; 575088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 576088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 577088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 578facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * Constants for the data table, which contains data points tied to a raw contact. 579088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * For example, a phone number or email address. Each row in this table contains a type 580088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * definition and some generic columns. Each data type can define the meaning for each of 581088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * the generic columns. 582088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 5838851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Data implements BaseColumns, DataColumns { 584088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 585088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * This utility class cannot be instantiated 586088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 587088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Data() {} 588088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 589088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 590088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The content:// style URI for this table 591088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 592088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "data"); 593088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 594088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 595088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The MIME type of {@link #CONTENT_URI} providing a directory of data. 596088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 597088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_TYPE = "vnd.android.cursor.dir/data"; 598088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 599088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 6009303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov private interface PhoneLookupColumns { 6019303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov /** 6029303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * The phone number as the user entered it. 6039303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * <P>Type: TEXT</P> 6049303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov */ 6059303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final String NUMBER = "number"; 6069303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 6079303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov /** 6089303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * The type of phone number, for example Home or Work. 6099303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * <P>Type: INTEGER</P> 6109303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov */ 6119303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final String TYPE = "type"; 6129303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 6139303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov /** 6149303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * The user defined label for the phone number. 6159303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * <P>Type: TEXT</P> 6169303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov */ 6179303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final String LABEL = "label"; 6189303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 6199303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 620088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 6218a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * A table that represents the result of looking up a phone number, for 6229303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * example for caller ID. To perform a lookup you must append the number you 6239303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov * want to find to {@link #CONTENT_FILTER_URI}. 624088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 6259303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final class PhoneLookup implements BaseColumns, PhoneLookupColumns, 6269303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov ContactsColumns, ContactOptionsColumns { 627088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 628088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * This utility class cannot be instantiated 629088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 630088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private PhoneLookup() {} 631088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 632088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 633088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The content:// style URI for this table. Append the phone number you want to lookup 634088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * to this URI and query it to perform a lookup. For example: 635088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * 636088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * {@code 637088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_URI, phoneNumber); 638088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * } 639088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 640d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final Uri CONTENT_FILTER_URI = Uri.withAppendedPath(AUTHORITY_URI, 641d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey "phone_lookup"); 642d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey } 643d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 644d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 645d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * Additional data mixed in with {@link Im.CommonPresenceColumns} to link 6467cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * back to specific {@link ContactsContract.Contacts#_ID} entries. 647d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 648d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey private interface PresenceColumns { 64955048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov 650d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 65155048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov * The unique ID for a row. 65255048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov * <P>Type: INTEGER (long)</P> 65355048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov */ 65455048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov public static final String _ID = "presence_id"; 65555048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov 65655048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov /** 6577cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Reference to the {@link RawContacts#_ID} this presence references. 6588a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: INTEGER</P> 659d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 660d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov public static final String RAW_CONTACT_ID = "presence_raw_contact_id"; 661facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov 662d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 663d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * Reference to the {@link Data#_ID} entry that owns this presence. 6648a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: INTEGER</P> 665d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 666d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov public static final String DATA_ID = "presence_data_id"; 667d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 668d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 669d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The IM service the presence is coming from. Formatted using either 6708a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link CommonDataKinds.Im#encodePredefinedImProtocol(int)} or 6718a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link CommonDataKinds.Im#encodeCustomImProtocol(String)}. 6728a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 673d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 674d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final String IM_PROTOCOL = "im_protocol"; 675d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 676d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 677d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The IM handle the presence item is for. The handle is scoped to the 678d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * {@link #IM_PROTOCOL}. 6798a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 680d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 681d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final String IM_HANDLE = "im_handle"; 682d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 683d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 684d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The IM account for the local user that the presence data came from. 6858a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 686d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 687d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final String IM_ACCOUNT = "im_account"; 688d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey } 689d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 69055048a980e80cddf8d3556f3feaf235759ef24ddDmitri Plotnikov public static final class Presence implements PresenceColumns, Im.CommonPresenceColumns { 691d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 692d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * This utility class cannot be instantiated 693d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 694d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey private Presence() { 695d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey } 696d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 697d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 698d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The content:// style URI for this table 699d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 700d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "presence"); 701d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 702d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 703d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * Gets the resource ID for the proper presence icon. 704d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * 705d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * @param status the status to get the icon for 706d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * @return the resource ID for the proper presence icon 707d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 708d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final int getPresenceIconResourceId(int status) { 709d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey switch (status) { 710d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case AVAILABLE: 711d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey return android.R.drawable.presence_online; 712d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case IDLE: 713d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case AWAY: 714d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey return android.R.drawable.presence_away; 715d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case DO_NOT_DISTURB: 716d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey return android.R.drawable.presence_busy; 717d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case INVISIBLE: 718d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey return android.R.drawable.presence_invisible; 719d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey case OFFLINE: 720d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey default: 721d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey return android.R.drawable.presence_offline; 722d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey } 723d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey } 724d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 725d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 726c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar * Returns the precedence of the status code the higher number being the higher precedence. 727c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar * 728c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar * @param status The status code. 729c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar * @return An integer representing the precedence, 0 being the lowest. 730c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar */ 731c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar public static final int getPresencePrecedence(int status) { 732c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar // Keep this function here incase we want to enforce a different precedence than the 733c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar // natural order of the status constants. 734c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar return status; 735c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar } 736c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar 737c043752ca3cdd71fbee868a351881bd4272c31a7Evan Millar /** 738d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The MIME type of {@link #CONTENT_URI} providing a directory of 739d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * presence details. 740d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 741d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final String CONTENT_TYPE = "vnd.android.cursor.dir/im-presence"; 742d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey 743d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey /** 744d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * The MIME type of a {@link #CONTENT_URI} subdirectory of a single 745d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey * presence detail. 746d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey */ 747d530b3ce850cfa3d61b79eba1aee6f67b04dba15Jeff Sharkey public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/im-presence"; 748088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 749088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 750088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 751088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Container for definitions of common data types stored in the {@link Data} table. 752088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 753088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final class CommonDataKinds { 754088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 7558a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The {@link Data#RES_PACKAGE} value for common data that should be 7568a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * shown using a default style. 757088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 758088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PACKAGE_COMMON = "common"; 759088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 760088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 761088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Columns common across the specific types. 762088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 763088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private interface BaseCommonColumns { 764088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 7658a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The package name to use when creating {@link Resources} objects for 7668a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * this data row. This value is only designed for use when building user 7678a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * interfaces, and should not be used to infer the owner. 768088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 7698a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String RES_PACKAGE = "res_package"; 770088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 771088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 7728a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The MIME type of the item represented by this row. 773088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 774088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String MIMETYPE = "mimetype"; 775088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 776088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 777facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * The {@link RawContacts#_ID} that this data belongs to. 778088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 779facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov public static final String RAW_CONTACT_ID = "raw_contact_id"; 780088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 781088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 782088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 783761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov * The base types that all "Typed" data kinds support. 784761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov */ 785761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public interface BaseTypes { 786761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov 787761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov /** 788761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov * A custom type. The custom label should be supplied by user. 789761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov */ 790761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static int TYPE_CUSTOM = 0; 791761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov } 792761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov 793761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov /** 794088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Columns common across the specific types. 795088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 796761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov private interface CommonColumns extends BaseTypes{ 797088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 798088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The type of data, for example Home or Work. 799088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: INTEGER</P> 800088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 801088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String TYPE = "data1"; 802088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 803088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 804c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The data for the contact method. 805088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 806088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 807c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String DATA = "data2"; 808088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 809088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 810c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The user defined label for the the contact method. 811088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 812088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 813c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String LABEL = "data3"; 814088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 815088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 816088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 817088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Parts of the name. 818088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 8198a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final class StructuredName implements BaseCommonColumns { 820088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private StructuredName() {} 821088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 8228a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 823088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/name"; 824088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 825088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 826c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The given name for the contact. 827c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * <P>Type: TEXT</P> 828088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 829c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String GIVEN_NAME = "data1"; 830088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 831088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 832c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The family name for the contact. 833088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 834088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 835c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String FAMILY_NAME = "data2"; 836088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 837088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 838c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The contact's honorific prefix, e.g. "Sir" 839088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 840088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 841c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String PREFIX = "data3"; 842088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 843088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 844c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The contact's middle name 845088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 846088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 847c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov public static final String MIDDLE_NAME = "data4"; 848088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 849088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 850088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The contact's honorific suffix, e.g. "Jr" 851088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 852088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String SUFFIX = "data5"; 853088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 854088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 855088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The phonetic version of the given name for the contact. 856088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 857088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 858088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PHONETIC_GIVEN_NAME = "data6"; 859088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 860088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 861088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The phonetic version of the additional name for the contact. 862088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 863088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 864088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PHONETIC_MIDDLE_NAME = "data7"; 865088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 866088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 867088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The phonetic version of the family name for the contact. 868088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 869088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 870088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PHONETIC_FAMILY_NAME = "data8"; 871088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 872088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 873088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The name that should be used to display the contact. 87462b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * <i>Unstructured component of the name should be consistent with 87562b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * its structured representation.</i> 87662b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * <p> 87762b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * Type: TEXT 878088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 879088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String DISPLAY_NAME = "data9"; 880088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 881088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 882088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 883088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * A nickname. 884088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 8858a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final class Nickname implements CommonColumns, BaseCommonColumns { 886088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Nickname() {} 887088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 8888a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 889088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/nickname"; 890088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 89178e79ad61bee932a9ce1418a9b9e8a5bae8bf2dfEvan Millar public static final int TYPE_DEFAULT = 1; 89278e79ad61bee932a9ce1418a9b9e8a5bae8bf2dfEvan Millar public static final int TYPE_OTHER_NAME = 2; 89378e79ad61bee932a9ce1418a9b9e8a5bae8bf2dfEvan Millar public static final int TYPE_MAINDEN_NAME = 3; 89478e79ad61bee932a9ce1418a9b9e8a5bae8bf2dfEvan Millar public static final int TYPE_SHORT_NAME = 4; 89578e79ad61bee932a9ce1418a9b9e8a5bae8bf2dfEvan Millar public static final int TYPE_INITIALS = 5; 896088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 897088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 898c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * The name itself 899088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 900761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final String NAME = DATA; 901088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 902088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 903088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 904088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Common data definition for telephone numbers. 905088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 906761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final class Phone implements BaseCommonColumns, CommonColumns { 907088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Phone() {} 908088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 9098a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 910088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone"; 911088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 912161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 913161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The MIME type of {@link #CONTENT_URI} providing a directory of 914161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * phones. 915161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 916161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final String CONTENT_TYPE = "vnd.android.cursor.dir/phone"; 917161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar 918161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 919161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The content:// style URI for all data records of the 9208a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link Phone#CONTENT_ITEM_TYPE} MIME type, combined with the 9217cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * associated raw contact and aggregate contact data. 922161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 923161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final Uri CONTENT_URI = Uri.withAppendedPath(Data.CONTENT_URI, 924161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar "phones"); 925161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar 926161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 927161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The content:// style URI for filtering data records of the 9288a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link Phone#CONTENT_ITEM_TYPE} MIME type, combined with the 9297cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * associated raw contact and aggregate contact data. The filter argument should 9308a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * be passed as an additional path segment after this URI. 931161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 932161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final Uri CONTENT_FILTER_URI = Uri.withAppendedPath(CONTENT_URI, 933161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar "filter"); 934161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar 935088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_HOME = 1; 936088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_MOBILE = 2; 937088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_WORK = 3; 938088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_FAX_WORK = 4; 939088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_FAX_HOME = 5; 940088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_PAGER = 6; 941088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_OTHER = 7; 9423f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_CALLBACK = 8; 9433f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_CAR = 9; 9443f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_COMPANY_MAIN = 10; 9453f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_ISDN = 11; 9463f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_MAIN = 12; 9473f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_OTHER_FAX = 13; 9483f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_RADIO = 14; 9493f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_TELEX = 15; 9503f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_TTY_TDD = 16; 9513f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_WORK_MOBILE = 17; 9523f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_WORK_PAGER = 18; 9533f86715d77f5c3d504aac449755d69d99aecdf51Fred Quintana public static final int TYPE_ASSISTANT = 19; 954088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 955088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 956088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The phone number as the user entered it. 957088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 958088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 959761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final String NUMBER = DATA; 9609303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 9619303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final CharSequence getDisplayLabel(Context context, int type, 9629303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov CharSequence label, CharSequence[] labelArray) { 9639303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov CharSequence display = ""; 9649303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 9659303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov if (type != Phone.TYPE_CUSTOM) { 9669303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov CharSequence[] labels = labelArray != null? labelArray 9679303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov : context.getResources().getTextArray( 9689303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov com.android.internal.R.array.phoneTypes); 9699303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov try { 9709303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov display = labels[type - 1]; 9719303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } catch (ArrayIndexOutOfBoundsException e) { 9729303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov display = labels[Phone.TYPE_CUSTOM]; 9739303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 9749303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } else { 9759303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov if (!TextUtils.isEmpty(label)) { 9769303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov display = label; 9779303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 9789303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 9799303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov return display; 9809303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 9819303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov 9829303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov public static final CharSequence getDisplayLabel(Context context, int type, 9839303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov CharSequence label) { 9849303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov return getDisplayLabel(context, type, label, null); 9859303295e1db08bf73ebabac425bd39728bb2f893Dmitri Plotnikov } 986088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 987088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 988088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 989088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Common data definition for email addresses. 990088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 991761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final class Email implements BaseCommonColumns, CommonColumns { 992088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Email() {} 993088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 9948a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 995088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/email"; 996088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 997d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov /** 998d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * The content:// style URI for all data records of the 999d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * {@link Email#CONTENT_ITEM_TYPE} MIME type, combined with the 1000d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * associated raw contact and aggregate contact data. 1001d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov */ 1002d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov public static final Uri CONTENT_URI = Uri.withAppendedPath(Data.CONTENT_URI, 1003d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov "emails"); 1004d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov 1005d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov /** 1006d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * The content:// style URL for filtering data rows by email address. The 1007d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * filter argument should be passed as an additional path segment after 1008d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov * this URI. 1009d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov */ 1010d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov public static final Uri CONTENT_FILTER_EMAIL_URI = Uri.withAppendedPath(CONTENT_URI, 1011d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov "filter"); 1012d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov 1013088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_HOME = 1; 1014088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_WORK = 2; 1015088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_OTHER = 3; 10168851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 10178851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 10188851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The display name for the email address 10198851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 10208851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 10218851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String DISPLAY_NAME = "data4"; 1022088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1023088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1024088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1025088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Common data definition for postal addresses. 1026088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 10278a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final class StructuredPostal implements BaseCommonColumns, CommonColumns { 10288a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey private StructuredPostal() { 10298a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 1030088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 10318a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1032088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/postal-address"; 1033088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1034161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 1035161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The MIME type of {@link #CONTENT_URI} providing a directory of 1036161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * postal addresses. 1037161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 1038161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final String CONTENT_TYPE = "vnd.android.cursor.dir/postal-address"; 1039161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar 1040161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar /** 1041161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar * The content:// style URI for all data records of the 10428a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link StructuredPostal#CONTENT_ITEM_TYPE} MIME type. 1043161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar */ 1044161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar public static final Uri CONTENT_URI = Uri.withAppendedPath(Data.CONTENT_URI, 1045161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar "postals"); 1046161dd86394a9733fd7ff303c31481cae7e31e7b4Evan Millar 1047088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_HOME = 1; 1048088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_WORK = 2; 1049088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_OTHER = 3; 10508a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10518a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 105262b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * The full, unstructured postal address. <i>This field must be 105362b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * consistent with any structured data.</i> 10548a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 10558a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 10568a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 10578a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String FORMATTED_ADDRESS = DATA; 10588a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10598a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 10608a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The agent who actually receives the mail. Used in work addresses. 10618a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Also for 'in care of' or 'c/o'. 10628a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 10638a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 106462b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * @deprecated since this isn't supported by gd:structuredPostalAddress 10658a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 106662b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey @Deprecated 10678a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String AGENT = "data4"; 10688a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10698a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 10708a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Used in places where houses or buildings have names (and not 10718a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * necessarily numbers), eg. "The Pillars". 10728a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 10738a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 107462b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * @deprecated since this isn't supported by gd:structuredPostalAddress 10758a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 107662b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey @Deprecated 10778a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String HOUSENAME = "data5"; 10788a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10798a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 10808a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Can be street, avenue, road, etc. This element also includes the 10818a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * house number and room/apartment/flat/floor number. 10828a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 10838a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 10848a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 10858a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String STREET = "data6"; 10868a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10878a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 10888a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Covers actual P.O. boxes, drawers, locked bags, etc. This is 10898a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * usually but not always mutually exclusive with street. 10908a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 10918a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 10928a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 10938a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String POBOX = "data7"; 10948a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 10958a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 10968a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * This is used to disambiguate a street address when a city 10978a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * contains more than one street with the same name, or to specify a 10988a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * small place whose mail is routed through a larger postal town. In 10998a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * China it could be a county or a minor city. 11008a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11018a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 11028a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 1103ef348c757d79e1751329db6746dbf846bdea6fc9Jeff Sharkey public static final String NEIGHBORHOOD = "data8"; 11048a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 11058a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 11068a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Can be city, village, town, borough, etc. This is the postal town 11078a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * and not necessarily the place of residence or place of business. 11088a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11098a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 11108a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 11118a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String CITY = "data9"; 11128a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 11138a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 11148a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Handles administrative districts such as U.S. or U.K. counties 11158a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * that are not used for mail addressing purposes. Subregion is not 11168a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * intended for delivery addresses. 11178a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11188a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 111962b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey * @deprecated since this isn't supported by gd:structuredPostalAddress 11208a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 112162b83b7fc4642b71829737494258f12996bc1baaJeff Sharkey @Deprecated 11228a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String SUBREGION = "data10"; 11238a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 11248a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 11258a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * A state, province, county (in Ireland), Land (in Germany), 11268a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * departement (in France), etc. 11278a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11288a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 11298a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 11308a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String REGION = "data11"; 11318a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 11328a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 1133ef348c757d79e1751329db6746dbf846bdea6fc9Jeff Sharkey * Postal code. Usually country-wide, but sometimes specific to the 11348a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * city (e.g. "2" in "Dublin 2, Ireland" addresses). 11358a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11368a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 11378a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 11388a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String POSTCODE = "data12"; 11398a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 11408a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 11418a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The name or code of the country. 11428a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <p> 11438a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Type: TEXT 11448a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 11458a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String COUNTRY = "data13"; 1146088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1147088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 11488851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 11498851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * Common data definition for IM addresses. 11508851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 1151761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final class Im implements BaseCommonColumns, CommonColumns { 1152088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Im() {} 1153088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 11548a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1155088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/im"; 1156088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1157088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_HOME = 1; 1158088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_WORK = 2; 1159088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int TYPE_OTHER = 3; 1160569277732b4180c07c9f917ff8c3fc3111b10338Dmitri Plotnikov 1161088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PROTOCOL = "data5"; 1162569277732b4180c07c9f917ff8c3fc3111b10338Dmitri Plotnikov 1163732da9293ac39bd0f14ed61367b7e76a76df2793Jeff Sharkey public static final String CUSTOM_PROTOCOL = "data6"; 1164732da9293ac39bd0f14ed61367b7e76a76df2793Jeff Sharkey 1165088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1166088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The predefined IM protocol types. The protocol can either be non-present, one 1167088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * of these types, or a free-form string. These cases are encoded in the PROTOCOL 1168088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * column as: 1169c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * <ul> 1170c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * <li>null</li> 1171c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * <li>pre:<an integer, one of the protocols below></li> 1172c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * <li>custom:<a string></li> 1173c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov * </ul> 1174088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1175732da9293ac39bd0f14ed61367b7e76a76df2793Jeff Sharkey public static final int PROTOCOL_CUSTOM = -1; 1176088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_AIM = 0; 1177088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_MSN = 1; 1178088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_YAHOO = 2; 1179088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_SKYPE = 3; 1180088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_QQ = 4; 1181088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_GOOGLE_TALK = 5; 1182088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_ICQ = 6; 1183088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final int PROTOCOL_JABBER = 7; 11848851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int PROTOCOL_NETMEETING = 8; 1185088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1186088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1187088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1188088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Common data definition for organizations. 1189088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1190761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final class Organization implements BaseCommonColumns, CommonColumns { 1191088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Organization() {} 1192088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 11938a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1194088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/organization"; 1195088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1196761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final int TYPE_WORK = 1; 1197761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final int TYPE_OTHER = 2; 1198088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1199088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1200088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The company as the user entered it. 1201088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 1202088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1203761ef2a281a16bade5203db99e204aa303660ac4Dmitri Plotnikov public static final String COMPANY = DATA; 1204088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1205088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1206088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The position title at this company as the user entered it. 1207088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 1208088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1209088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String TITLE = "data4"; 12108851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12118851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12128851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The department at this company as the user entered it. 12138851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12148851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12158851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String DEPARTMENT = "data5"; 12168851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12178851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12188851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The job description at this company as the user entered it. 12198851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12208851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12218851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String JOB_DESCRIPTION = "data6"; 12228851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12238851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12248851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The symbol of this company as the user entered it. 12258851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12268851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12278851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String SYMBOL = "data7"; 12288851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12298851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12308851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The phonetic name of this company as the user entered it. 12318851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12328851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12338851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String PHONETIC_NAME = "data8"; 12348851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana } 12358851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12368851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12378851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * Common data definition for miscellaneous information. 12388851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12398851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Miscellaneous implements BaseCommonColumns { 12408851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana private Miscellaneous() {} 12418851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12428851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** MIME type used when storing this in data table. */ 12438851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/misc"; 12448851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12458851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12468851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The birthday as the user entered it. 12478851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12488851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12498851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String BIRTHDAY = "data1"; 12508851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12518851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12528851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The nickname as the user entered it. 12538851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12548851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12558851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String NICKNAME = "data2"; 12568851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana } 12578851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12588851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12598851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * Common data definition for relations. 12608851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12618851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Relation implements BaseCommonColumns, CommonColumns { 12628851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana private Relation() {} 12638851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12648851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** MIME type used when storing this in data table. */ 12658851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/relation"; 12668851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12678851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_ASSISTANT = 1; 12688851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_BROTHER = 2; 12698851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_CHILD = 3; 12708851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_DOMESTIC_PARTNER = 4; 12718851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_FATHER = 5; 12728851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_FRIEND = 6; 12738851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_MANAGER = 7; 12748851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_MOTHER = 8; 12758851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_PARENT = 9; 12768851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_PARTNER = 10; 12778851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_REFERRED_BY = 11; 12788851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_RELATIVE = 12; 12798851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_SISTER = 13; 12808851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_SPOUSE = 14; 12818851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12828851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12838851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The name of the relative as the user entered it. 12848851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 12858851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12868851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String NAME = DATA; 12878851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana } 12888851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12898851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 12908851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * Common data definition for events. 12918851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 12928851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Event implements BaseCommonColumns, CommonColumns { 12938851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana private Event() {} 12948851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12958851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** MIME type used when storing this in data table. */ 12968851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/event"; 12978851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 12988851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_ANNIVERSARY = 1; 12998851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_OTHER = 2; 1300d4e0b5713add447bbba7d716c112f425d6888f3bDmitri Plotnikov 13018851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana /** 13028851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * The event start date as the user entered it. 13038851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana * <P>Type: TEXT</P> 13048851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana */ 13058851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final String START_DATE = DATA; 1306088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1307088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1308088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1309088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Photo of the contact. 1310088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1311088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final class Photo implements BaseCommonColumns { 1312088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Photo() {} 1313088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 13148a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1315088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/photo"; 1316088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1317088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1318facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov * Thumbnail photo of the raw contact. This is the raw bytes of an image 1319088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * that could be inflated using {@link BitmapFactory}. 1320088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <p> 1321088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Type: BLOB 1322088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1323088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String PHOTO = "data1"; 1324088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1325088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1326088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1327088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * Notes about the contact. 1328088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1329088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final class Note implements BaseCommonColumns { 1330088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar private Note() {} 1331088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 13328a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1333088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/note"; 1334088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar 1335088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar /** 1336088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * The note text. 1337088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar * <P>Type: TEXT</P> 1338088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar */ 1339088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar public static final String NOTE = "data1"; 1340088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar } 1341569277732b4180c07c9f917ff8c3fc3111b10338Dmitri Plotnikov 1342c9260540729d731e22458ce48127ca2ffaef33eeDmitri Plotnikov /** 1343d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana * Group Membership. 1344ceaafa5f1f0504ec85a7d6cdf45381cf748f54aaDmitri Plotnikov */ 1345d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana public static final class GroupMembership implements BaseCommonColumns { 1346d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana private GroupMembership() {} 1347d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana 13488a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 1349d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana public static final String CONTENT_ITEM_TYPE = 1350d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana "vnd.android.cursor.item/group_membership"; 1351d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana 1352d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana /** 1353ffc34c13fb6b420c78fbd317f21363cd97a43db9Fred Quintana * The row id of the group that this group membership refers to. Exactly one of 1354ffc34c13fb6b420c78fbd317f21363cd97a43db9Fred Quintana * this or {@link #GROUP_SOURCE_ID} must be set when inserting a row. 1355d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana * <P>Type: INTEGER</P> 1356d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana */ 1357d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana public static final String GROUP_ROW_ID = "data1"; 1358d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana 1359d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana /** 1360ffc34c13fb6b420c78fbd317f21363cd97a43db9Fred Quintana * The sourceid of the group that this group membership refers to. Exactly one of 1361ffc34c13fb6b420c78fbd317f21363cd97a43db9Fred Quintana * this or {@link #GROUP_ROW_ID} must be set when inserting a row. 13628a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 1363d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana */ 1364ffc34c13fb6b420c78fbd317f21363cd97a43db9Fred Quintana public static final String GROUP_SOURCE_ID = "group_sourceid"; 1365d8dfeb5ee82d679f491cd20e776907a69fb4f27cFred Quintana } 1366435e427d6930f8610191071656dc26528000620bFred Quintana 1367b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 13688a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * Website related to the contact. 1369b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 13708851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final class Website implements BaseCommonColumns, CommonColumns { 13718a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey private Website() {} 1372b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 13738a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** MIME type used when storing this in data table. */ 13748a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/website"; 13758a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 13768851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_HOMEPAGE = 1; 13778851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_BLOG = 2; 13788851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_PROFILE = 3; 13798851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_HOME = 4; 13808851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_WORK = 5; 13818851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_FTP = 6; 13828851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana public static final int TYPE_OTHER = 7; 13838851e163fc5bc17d139bf29cd2ec2f3926d342bcFred Quintana 13848a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 13858a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The website URL string. 13868a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 13878a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 13888a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String URL = "data1"; 13898a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 13908a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 1391b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 13927b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey // TODO: make this private before unhiding 13938a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public interface GroupsColumns { 1394b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1395b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The display title of this group. 1396b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * <p> 1397b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Type: TEXT 1398b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1399b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String TITLE = "title"; 1400b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1401b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 14028a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * The package name to use when creating {@link Resources} objects for 14038a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * this group. This value is only designed for use when building user 14048a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * interfaces, and should not be used to infer the owner. 14058a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey */ 14068a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String RES_PACKAGE = "res_package"; 14078a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey 14088a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey /** 1409b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The display title of this group to load as a resource from 14108a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * {@link #RES_PACKAGE}, which may be localized. 14118a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: TEXT</P> 1412b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 14138a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final String TITLE_RES = "title_res"; 1414b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1415b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 141602c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * Notes about the group. 141702c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * <p> 141802c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * Type: TEXT 141902c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov */ 142002c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov public static final String NOTES = "notes"; 142102c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov 142202c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov /** 142302c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * The ID of this group if it is a System Group, i.e. a group that has a special meaning 142402c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * to the sync adapter, null otherwise. 142502c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * <P>Type: TEXT</P> 142602c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov */ 142702c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov public static final String SYSTEM_ID = "system_id"; 142802c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov 142902c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov /** 14307cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * The total number of {@link Contacts} that have 1431b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * {@link GroupMembership} in this group. Read-only value that is only 1432b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * present when querying {@link Groups#CONTENT_SUMMARY_URI}. 1433b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * <p> 1434b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Type: INTEGER 1435b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1436b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String SUMMARY_COUNT = "summ_count"; 1437b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1438b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 14397cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * The total number of {@link Contacts} that have both 1440b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * {@link GroupMembership} in this group, and also have phone numbers. 1441b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Read-only value that is only present when querying 1442b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * {@link Groups#CONTENT_SUMMARY_URI}. 1443b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * <p> 1444b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Type: INTEGER 1445b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1446b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String SUMMARY_WITH_PHONES = "summ_phones"; 1447b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1448b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1449b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Flag indicating if the contacts belonging to this group should be 1450b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * visible in any user interface. 1451b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * <p> 14527b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Type: INTEGER (boolean) 1453b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1454b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String GROUP_VISIBLE = "group_visible"; 145500c89f6266d1b559538b00000efeb905e00161cdFred Quintana 145600c89f6266d1b559538b00000efeb905e00161cdFred Quintana /** 145700c89f6266d1b559538b00000efeb905e00161cdFred Quintana * The "deleted" flag: "0" by default, "1" if the row has been marked 145800c89f6266d1b559538b00000efeb905e00161cdFred Quintana * for deletion. When {@link android.content.ContentResolver#delete} is 145900c89f6266d1b559538b00000efeb905e00161cdFred Quintana * called on a raw contact, it is marked for deletion and removed from its 146000c89f6266d1b559538b00000efeb905e00161cdFred Quintana * aggregate contact. The sync adaptor deletes the raw contact on the server and 146100c89f6266d1b559538b00000efeb905e00161cdFred Quintana * then calls ContactResolver.delete once more, this time passing the 146200c89f6266d1b559538b00000efeb905e00161cdFred Quintana * {@link RawContacts#DELETE_PERMANENTLY} query parameter to finalize the data removal. 146300c89f6266d1b559538b00000efeb905e00161cdFred Quintana * <P>Type: INTEGER</P> 146400c89f6266d1b559538b00000efeb905e00161cdFred Quintana */ 146500c89f6266d1b559538b00000efeb905e00161cdFred Quintana public static final String DELETED = "deleted"; 1466403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey 1467403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey /** 1468403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey * Whether this group should be synced if the SYNC_EVERYTHING settings 1469403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey * is false for this group's account. 1470403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey * <p> 1471403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey * Type: INTEGER (boolean) 1472403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey */ 1473403d7ac7d14e87ecc7df25a1fbb79649ec5ada90Jeff Sharkey public static final String SHOULD_SYNC = "should_sync"; 1474b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey } 1475b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1476b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1477b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * Constants for the groups table. 1478b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 14798a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey public static final class Groups implements BaseColumns, GroupsColumns, SyncColumns { 1480b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1481b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * This utility class cannot be instantiated 1482b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 14838a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey private Groups() { 14848a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey } 1485b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1486b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1487b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The content:// style URI for this table 1488b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1489b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "groups"); 1490b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1491b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1492b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The content:// style URI for this table joined with details data from 149302c5b45565fd3a933b5dd5a868b7db33455d697cDmitri Plotnikov * {@link Data}. 1494b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1495b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final Uri CONTENT_SUMMARY_URI = Uri.withAppendedPath(AUTHORITY_URI, 1496b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey "groups_summary"); 1497b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1498b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1499b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The MIME type of a directory of groups. 1500b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1501b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String CONTENT_TYPE = "vnd.android.cursor.dir/group"; 1502b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1503b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey /** 1504b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey * The MIME type of a single group. 1505b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey */ 1506b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/group"; 150700c89f6266d1b559538b00000efeb905e00161cdFred Quintana 150800c89f6266d1b559538b00000efeb905e00161cdFred Quintana /** 150900c89f6266d1b559538b00000efeb905e00161cdFred Quintana * Query parameter that can be passed with the {@link #CONTENT_URI} URI 151000c89f6266d1b559538b00000efeb905e00161cdFred Quintana * to the {@link android.content.ContentResolver#delete} method to 151100c89f6266d1b559538b00000efeb905e00161cdFred Quintana * indicate that the raw contact can be deleted physically, rather than 151200c89f6266d1b559538b00000efeb905e00161cdFred Quintana * merely marked as deleted. 151300c89f6266d1b559538b00000efeb905e00161cdFred Quintana */ 151400c89f6266d1b559538b00000efeb905e00161cdFred Quintana public static final String DELETE_PERMANENTLY = "delete_permanently"; 1515507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov 1516507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov /** 1517507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov * An optional update or insert URI parameter that determines if the 1518507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov * group should be marked as dirty. The default value is true. 1519507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov */ 1520507f1607f7f7216c0e66751a30949c9670c57f09Dmitri Plotnikov public static final String MARK_AS_DIRTY = "mark_as_dirty"; 1521b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey } 1522b2909eb9509092f1479ba7883dfaa1f1e7f4cc23Jeff Sharkey 1523435e427d6930f8610191071656dc26528000620bFred Quintana /** 1524435e427d6930f8610191071656dc26528000620bFred Quintana * Constants for the contact aggregation exceptions table, which contains 15259d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov * aggregation rules overriding those used by automatic aggregation. This type only 15269d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov * supports query and update. Neither insert nor delete are supported. 1527435e427d6930f8610191071656dc26528000620bFred Quintana */ 15280918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov public static final class AggregationExceptions implements BaseColumns { 1529435e427d6930f8610191071656dc26528000620bFred Quintana /** 1530435e427d6930f8610191071656dc26528000620bFred Quintana * This utility class cannot be instantiated 1531435e427d6930f8610191071656dc26528000620bFred Quintana */ 1532435e427d6930f8610191071656dc26528000620bFred Quintana private AggregationExceptions() {} 1533435e427d6930f8610191071656dc26528000620bFred Quintana 1534435e427d6930f8610191071656dc26528000620bFred Quintana /** 1535435e427d6930f8610191071656dc26528000620bFred Quintana * The content:// style URI for this table 1536435e427d6930f8610191071656dc26528000620bFred Quintana */ 1537435e427d6930f8610191071656dc26528000620bFred Quintana public static final Uri CONTENT_URI = 1538435e427d6930f8610191071656dc26528000620bFred Quintana Uri.withAppendedPath(AUTHORITY_URI, "aggregation_exceptions"); 1539435e427d6930f8610191071656dc26528000620bFred Quintana 1540435e427d6930f8610191071656dc26528000620bFred Quintana /** 1541435e427d6930f8610191071656dc26528000620bFred Quintana * The MIME type of {@link #CONTENT_URI} providing a directory of data. 1542435e427d6930f8610191071656dc26528000620bFred Quintana */ 1543435e427d6930f8610191071656dc26528000620bFred Quintana public static final String CONTENT_TYPE = "vnd.android.cursor.dir/aggregation_exception"; 1544435e427d6930f8610191071656dc26528000620bFred Quintana 1545435e427d6930f8610191071656dc26528000620bFred Quintana /** 15460918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov * The MIME type of a {@link #CONTENT_URI} subdirectory of an aggregation exception 15470918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov */ 15480918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov public static final String CONTENT_ITEM_TYPE = 15490918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov "vnd.android.cursor.item/aggregation_exception"; 15500918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov 15510918bf06881f32e6e3cf750f713b16c7d65e4012Dmitri Plotnikov /** 15529d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov * The type of exception: {@link #TYPE_KEEP_IN}, {@link #TYPE_KEEP_OUT} or 15539d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov * {@link #TYPE_AUTOMATIC}. 1554435e427d6930f8610191071656dc26528000620bFred Quintana * 1555435e427d6930f8610191071656dc26528000620bFred Quintana * <P>Type: INTEGER</P> 1556435e427d6930f8610191071656dc26528000620bFred Quintana */ 1557435e427d6930f8610191071656dc26528000620bFred Quintana public static final String TYPE = "type"; 1558435e427d6930f8610191071656dc26528000620bFred Quintana 15599d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov /** 15607cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Allows the provider to automatically decide whether the aggregate 15617cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * contact should include a particular raw contact or not. 15629d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov */ 15639d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov public static final int TYPE_AUTOMATIC = 0; 15649d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov 15659d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov /** 15667cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Makes sure that the specified raw contact is included in the 15677cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * specified aggregate contact. 15689d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov */ 15699d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov public static final int TYPE_KEEP_IN = 1; 1570435e427d6930f8610191071656dc26528000620bFred Quintana 1571435e427d6930f8610191071656dc26528000620bFred Quintana /** 15727cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * Makes sure that the specified raw contact is NOT included in the 15737cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * specified aggregate contact. 1574435e427d6930f8610191071656dc26528000620bFred Quintana */ 15759d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov public static final int TYPE_KEEP_OUT = 2; 1576435e427d6930f8610191071656dc26528000620bFred Quintana 1577435e427d6930f8610191071656dc26528000620bFred Quintana /** 15787cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} of the 15797cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * aggregate contact that the rule applies to. 15809d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov */ 15817cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov public static final String CONTACT_ID = "contact_id"; 15829d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov 15839d044514f7777cd42776b7c5251ea83dc4e97931Dmitri Plotnikov /** 15847cca5f83638b019cc68acfaedd533602a97486b0Dmitri Plotnikov * A reference to the {@link RawContacts#_ID} of the raw contact that the rule applies to. 1585435e427d6930f8610191071656dc26528000620bFred Quintana */ 1586facbbb37835020b767f259f0f625386b52b2ad89Dmitri Plotnikov public static final String RAW_CONTACT_ID = "raw_contact_id"; 1587435e427d6930f8610191071656dc26528000620bFred Quintana } 158828b68e5a59289f6947dc799b66a3b503571f876eJeff Sharkey 15897b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey private interface SettingsColumns { 15907b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 15917b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * The name of the account instance to which this row belongs. 15927b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * <P>Type: TEXT</P> 15937b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 15947b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String ACCOUNT_NAME = "account_name"; 15957b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 15967b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 15977b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * The type of account to which this row belongs, which when paired with 15987b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link #ACCOUNT_NAME} identifies a specific account. 15997b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * <P>Type: TEXT</P> 16007b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16017b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String ACCOUNT_TYPE = "account_type"; 16027b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16037b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16047b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Setting to indicate how this source handles {@link #SHOULD_SYNC} and 16057b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link Groups#SHOULD_SYNC} flags. This mode should be one of 16067b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link Settings#SYNC_MODE_EVERYTHING}, 16077b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link Settings#SYNC_MODE_UNGROUPED}, or 16087b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link Settings#SYNC_MODE_UNSUPPORTED}. 16097b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * <p> 16107b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Type: INTEGER 16117b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16127b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String SHOULD_SYNC_MODE = "should_sync_mode"; 16137b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16147b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16157b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * When modes is {@link Settings#SYNC_MODE_EVERYTHING}, this flag 16167b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * overrides any children {@link Groups#SHOULD_SYNC} when set. When mode 16177b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * is {@link Settings#SYNC_MODE_UNGROUPED}, this flag indicates the 16187b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * syncing behavior for contacts not belonging to any group. 16197b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * <p> 16207b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Type: INTEGER (boolean) 16217b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16227b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String SHOULD_SYNC = "should_sync"; 16237b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16247b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 1625a659744041d0b74b4243fdd448a5fa302a581278Jeff Sharkey * Flag indicating if contacts without any {@link GroupMembership} 1626a659744041d0b74b4243fdd448a5fa302a581278Jeff Sharkey * entries should be visible in any user interface. 16277b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * <p> 16287b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Type: INTEGER (boolean) 16297b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16307b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String UNGROUPED_VISIBLE = "ungrouped_visible"; 16317b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey } 16327b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16337b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16347b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Contacts-specific settings for various {@link Account}. 16357b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16367b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final class Settings implements BaseColumns, SettingsColumns { 16377b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16387b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * This utility class cannot be instantiated 16397b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16407b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey private Settings() { 16417b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey } 16427b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16437b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16447b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * The content:// style URI for this table 16457b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16467b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final Uri CONTENT_URI = 16477b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey Uri.withAppendedPath(AUTHORITY_URI, "settings"); 16487b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16497b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16507b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * The MIME-type of {@link #CONTENT_URI} providing a directory of 16517b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * settings. 16527b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16537b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String CONTENT_TYPE = "vnd.android.cursor.dir/setting"; 16547b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16557b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16567b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * The MIME-type of {@link #CONTENT_URI} providing a single setting. 16577b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16587b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/setting"; 16597b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16607b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16617b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Mode for {@link #SHOULD_SYNC_MODE} that indicates this data source 16627b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * doesn't support per-group {@link Groups#SHOULD_SYNC} flags. 16637b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16647b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final int SYNC_MODE_UNSUPPORTED = 0; 16657b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16667b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16677b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Mode for {@link #SHOULD_SYNC_MODE} that indicates this data source 16687b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * fully supports per-group {@link Groups#SHOULD_SYNC} flags and assumes 16697b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * that {@link #SHOULD_SYNC} refers to contacts without any 16707b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * {@link GroupMembership}. 16717b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16727b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final int SYNC_MODE_UNGROUPED = 1; 16737b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 16747b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey /** 16757b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * Mode for {@link #SHOULD_SYNC_MODE} that indicates this data source 16767b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * fully supports per-group {@link Groups#SHOULD_SYNC} flags but assumes 16777b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey * that {@link #SHOULD_SYNC} overrides per-group flags when set. 16787b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey */ 16797b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey public static final int SYNC_MODE_EVERYTHING = 2; 16807b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey } 16817b6771a97b9abe821e1cc6c126990fe960278f3aJeff Sharkey 1682dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1683dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Contains helper classes used to create or manage {@link android.content.Intent Intents} 1684dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * that involve contacts. 1685dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1686dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final class Intents { 1687dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1688dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * This is the intent that is fired when a search suggestion is clicked on. 1689dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1690dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SEARCH_SUGGESTION_CLICKED = 1691dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "android.provider.Contacts.SEARCH_SUGGESTION_CLICKED"; 1692dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1693dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1694dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * This is the intent that is fired when a search suggestion for dialing a number 1695dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * is clicked on. 1696dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1697dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = 1698dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED"; 1699dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1700dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1701dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * This is the intent that is fired when a search suggestion for creating a contact 1702dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * is clicked on. 1703dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1704dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = 1705dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED"; 1706dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1707dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1708dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Starts an Activity that lets the user pick a contact to attach an image to. 1709dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * After picking the contact it launches the image cropper in face detection mode. 1710dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1711dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String ATTACH_IMAGE = 1712dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.ATTACH_IMAGE"; 1713dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1714dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1715dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Takes as input a data URI with a mailto: or tel: scheme. If a single 1716dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * contact exists with the given data it will be shown. If no contact 1717dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * exists, a dialog will ask the user if they want to create a new 1718dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * contact with the provided details filled in. If multiple contacts 1719dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * share the data the user will be prompted to pick which contact they 1720dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * want to view. 1721dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1722dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * For <code>mailto:</code> URIs, the scheme specific portion must be a 1723dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * raw email address, such as one built using 1724dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link Uri#fromParts(String, String, String)}. 1725dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1726dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * For <code>tel:</code> URIs, the scheme specific portion is compared 1727dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * to existing numbers using the standard caller ID lookup algorithm. 1728dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The number must be properly encoded, for example using 1729dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link Uri#fromParts(String, String, String)}. 1730dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1731dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Any extras from the {@link Insert} class will be passed along to the 1732dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * create activity if there are no contacts to show. 1733dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1734dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Passing true for the {@link #EXTRA_FORCE_CREATE} extra will skip 1735dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * prompting the user when the contact doesn't exist. 1736dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1737dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SHOW_OR_CREATE_CONTACT = 1738dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.SHOW_OR_CREATE_CONTACT"; 1739dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1740dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1741dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Used with {@link #SHOW_OR_CREATE_CONTACT} to force creating a new 1742dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * contact if no matching contact found. Otherwise, default behavior is 1743dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * to prompt user with dialog before creating. 1744dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1745dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Type: BOOLEAN 1746dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1747dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String EXTRA_FORCE_CREATE = 1748dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.FORCE_CREATE"; 1749dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1750dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1751dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Used with {@link #SHOW_OR_CREATE_CONTACT} to specify an exact 1752dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * description to be shown when prompting user about creating a new 1753dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * contact. 1754dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1755dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Type: STRING 1756dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1757dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String EXTRA_CREATE_DESCRIPTION = 1758dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.CREATE_DESCRIPTION"; 1759dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1760dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 17611132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey * Optional extra used with {@link #SHOW_OR_CREATE_CONTACT} to specify a 17621132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey * dialog location using screen coordinates. When not specified, the 17631132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey * dialog will be centered. 17641132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey */ 17651132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey public static final String EXTRA_TARGET_RECT = "target_rect"; 17661132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey 17671132200fa1f545a34f700d6000ded8c8c56134e4Jeff Sharkey /** 17686bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * Optional extra used with {@link #SHOW_OR_CREATE_CONTACT} to specify a 17696bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * desired dialog style, usually a variation on size. One of 17706bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * {@link #MODE_SMALL}, {@link #MODE_MEDIUM}, or {@link #MODE_LARGE}. 17716bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey */ 17726bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey public static final String EXTRA_MODE = "mode"; 17736bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey 17746bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey /** 17756bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * Value for {@link #EXTRA_MODE} to show a small-sized dialog. 17766bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey */ 17776bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey public static final int MODE_SMALL = 1; 17786bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey 17796bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey /** 17806bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * Value for {@link #EXTRA_MODE} to show a medium-sized dialog. 17816bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey */ 17826bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey public static final int MODE_MEDIUM = 2; 17836bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey 17846bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey /** 17856bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey * Value for {@link #EXTRA_MODE} to show a large-sized dialog. 17866bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey */ 17876bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey public static final int MODE_LARGE = 3; 17886bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey 17896bfe14dea21deec4c90ceea79b8f810164f88031Jeff Sharkey /** 1790dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Intents related to the Contacts app UI. 1791dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1792dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final class UI { 1793dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1794dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the default contacts list tab. 1795dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1796dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_DEFAULT = 1797dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_DEFAULT"; 1798dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1799dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1800dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the contacts list tab. 1801dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1802dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_GROUP_ACTION = 1803dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_GROUP"; 1804dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1805dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1806dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * When in LIST_GROUP_ACTION mode, this is the group to display. 1807dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1808dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP"; 1809dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1810dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1811dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the all contacts list tab. 1812dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1813dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_ALL_CONTACTS_ACTION = 1814dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_ALL_CONTACTS"; 1815dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1816dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1817dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the contacts with phone numbers list tab. 1818dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1819dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_CONTACTS_WITH_PHONES_ACTION = 1820dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES"; 1821dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1822dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1823dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the starred contacts list tab. 1824dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1825dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_STARRED_ACTION = 1826dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_STARRED"; 1827dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1828dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1829dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the frequent contacts list tab. 1830dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1831dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_FREQUENT_ACTION = 1832dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_FREQUENT"; 1833dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1834dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1835dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The action for the "strequent" contacts list tab. It first lists the starred 1836dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * contacts in alphabetical order and then the frequent contacts in descending 1837dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * order of the number of times they have been contacted. 1838dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1839dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String LIST_STREQUENT_ACTION = 1840dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.LIST_STREQUENT"; 1841dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1842dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1843dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * A key for to be used as an intent extra to set the activity 1844dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * title to a custom String value. 1845dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1846dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String TITLE_EXTRA_KEY = 1847dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.extra.TITLE_EXTRA"; 1848dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1849dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1850dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Activity Action: Display a filtered list of contacts 1851dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1852dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Input: Extra field {@link #FILTER_TEXT_EXTRA_KEY} is the text to use for 1853dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * filtering 1854dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <p> 1855dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Output: Nothing. 1856dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1857dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String FILTER_CONTACTS_ACTION = 1858dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.action.FILTER_CONTACTS"; 1859dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1860dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1861dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Used as an int extra field in {@link #FILTER_CONTACTS_ACTION} 1862dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * intents to supply the text on which to filter. 1863dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1864dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String FILTER_TEXT_EXTRA_KEY = 1865dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar "com.android.contacts.extra.FILTER_TEXT"; 1866dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar } 1867dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1868dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1869dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * Convenience class that contains string constants used 1870dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * to create contact {@link android.content.Intent Intents}. 1871dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1872dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final class Insert { 1873dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** The action code to use when adding a contact */ 1874dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String ACTION = Intent.ACTION_INSERT; 1875dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1876dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1877dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * If present, forces a bypass of quick insert mode. 1878dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1879dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String FULL_MODE = "full_mode"; 1880dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1881dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1882dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact name. 1883dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1884dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1885dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String NAME = "name"; 1886dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1887dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar // TODO add structured name values here. 1888dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1889dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1890dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact phonetic name. 1891dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1892dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1893dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String PHONETIC_NAME = "phonetic_name"; 1894dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1895dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1896dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact company. 1897dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1898dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1899dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String COMPANY = "company"; 1900dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1901dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1902dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact job title. 1903dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1904dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1905dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String JOB_TITLE = "job_title"; 1906dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1907dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1908dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact notes. 1909dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1910dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1911dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String NOTES = "notes"; 1912dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1913dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1914dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact phone number. 1915dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1916dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1917dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String PHONE = "phone"; 1918dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1919dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1920dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact phone number type. 1921dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 1922dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, 1923dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 1924dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1925dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String PHONE_TYPE = "phone_type"; 1926dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1927dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1928dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the phone isprimary flag. 1929dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: boolean</P> 1930dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1931dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String PHONE_ISPRIMARY = "phone_isprimary"; 1932dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1933dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1934dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional second contact phone number. 1935dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1936dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1937dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SECONDARY_PHONE = "secondary_phone"; 1938dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1939dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1940dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional second contact phone number type. 1941dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 1942dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, 1943dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 1944dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1945dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type"; 1946dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1947dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1948dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional third contact phone number. 1949dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1950dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1951dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String TERTIARY_PHONE = "tertiary_phone"; 1952dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1953dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1954dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional third contact phone number type. 1955dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 1956dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, 1957dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 1958dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1959dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type"; 1960dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1961dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1962dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact email address. 1963dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1964dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1965dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String EMAIL = "email"; 1966dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1967dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1968dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact email type. 1969dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 1970dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} 1971dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 1972dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1973dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String EMAIL_TYPE = "email_type"; 1974dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1975dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1976dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the email isprimary flag. 1977dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: boolean</P> 1978dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1979dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String EMAIL_ISPRIMARY = "email_isprimary"; 1980dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1981dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1982dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional second contact email address. 1983dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1984dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1985dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SECONDARY_EMAIL = "secondary_email"; 1986dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1987dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1988dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional second contact email type. 1989dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 1990dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} 1991dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 1992dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1993dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type"; 1994dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 1995dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 1996dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional third contact email address. 1997dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 1998dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 1999dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String TERTIARY_EMAIL = "tertiary_email"; 2000dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2001dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2002dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an optional third contact email type. 2003dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 2004dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} 2005dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 2006dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2007dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type"; 2008dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2009dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2010dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact postal address. 2011dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 2012dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2013dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String POSTAL = "postal"; 2014dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2015dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2016dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the contact postal address type. 2017dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: Either an integer value from 2018dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} 2019dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * or a string specifying a custom label.</P> 2020dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2021dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String POSTAL_TYPE = "postal_type"; 2022dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2023dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2024dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the postal isprimary flag. 2025dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: boolean</P> 2026dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2027dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String POSTAL_ISPRIMARY = "postal_isprimary"; 2028dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2029dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2030dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for an IM handle. 2031dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: String</P> 2032dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2033dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String IM_HANDLE = "im_handle"; 2034dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2035dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2036dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the IM protocol 20378a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * <P>Type: the result of {@link CommonDataKinds.Im#encodePredefinedImProtocol(int)} 20388a0193e4ca1522b9a817ebd399812b6e2f1b0cdcJeff Sharkey * or {@link CommonDataKinds.Im#encodeCustomImProtocol(String)}.</P> 2039dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2040dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String IM_PROTOCOL = "im_protocol"; 2041dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2042dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar /** 2043dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * The extra field for the IM isprimary flag. 2044dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar * <P>Type: boolean</P> 2045dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar */ 2046dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar public static final String IM_ISPRIMARY = "im_isprimary"; 2047dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar } 2048dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar } 2049dc2da5fd922fc8de0ffcb22df3622b57ed777732Evan Millar 2050088b2918423ef79b92c0b0433f2f59a1fd0f7c1bEvan Millar} 2051