131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov/* 231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project 331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * 431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License"); 531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * you may not use this file except in compliance with the License. 631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * You may obtain a copy of the License at 731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * 831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * http://www.apache.org/licenses/LICENSE-2.0 931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * 1031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software 1131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS, 1231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * See the License for the specific language governing permissions and 1431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * limitations under the License. 1531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov */ 1631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 1731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovpackage com.android.contacts.tests.allintents; 1831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 19b5a6a925e44225748c915672ff9e2120164af657Flavio Lerdaimport android.accounts.Account; 2031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.app.ListActivity; 2131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.app.SearchManager; 2231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.ComponentName; 2331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.ContentUris; 2479bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.content.ContentValues; 2531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.Intent; 2631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.database.Cursor; 2731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.net.Uri; 2831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.os.Bundle; 29a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerdaimport android.provider.CallLog.Calls; 3031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.ContactMethods; 3131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.People; 3231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.Phones; 3379bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Email; 3479bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Organization; 3531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Phone; 3631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 3727834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.Contacts; 3879bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.Data; 3927834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.Intents; 4031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.Intents.Insert; 4131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.Intents.UI; 4227834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.RawContacts; 4331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.view.View; 4431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.widget.ArrayAdapter; 4531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.widget.ListView; 4665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmannimport android.widget.Toast; 4731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 48e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.tests.R; 49e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.google.common.collect.Lists; 50e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Cheng 5131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov/** 5231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * An activity that provides access to various modes of the contacts application. 5331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * Useful for manual and scripted tests. 54b5a6a925e44225748c915672ff9e2120164af657Flavio Lerda * <p> 55b5a6a925e44225748c915672ff9e2120164af657Flavio Lerda * Note: this class cannot depend (directly on indirectly) on anything outside the test package. 5631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov */ 5731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov@SuppressWarnings("deprecation") 582013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmannpublic class AllIntentsActivity extends ListActivity 592013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann implements SelectAccountDialogFragment.Listener { 6031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 61a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda /** The name of the package of the contacts application. */ 6231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final String ANDROID_CONTACTS_PACKAGE = "com.android.contacts"; 6331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 64b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private static final String CONTACT_LIST_ACTIVITY_CLASS_NAME = 655e684a424e7036ba3d379221d1889b4dd7265021Dave Santoro "com.android.contacts.activities.PeopleActivity"; 6631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 67fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov public enum ContactsIntent { 68fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_DEFAULT, 69fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_ALL_CONTACTS_ACTION, 70fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_CONTACTS_WITH_PHONES_ACTION, 71fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_STARRED_ACTION, 72fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_FREQUENT_ACTION, 73fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov LIST_STREQUENT_ACTION, 74ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki LIST_GROUP_ACTION, 75f0c4681ee4191e47103f8699dd1bf9cf7fc8b669Daisuke Miyakawa VIEW_CONTACT_WITHOUT_ID, 76fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_CONTACT, 77fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_CONTACT_LEGACY, 78fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_PHONE, 79fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_PHONE_LEGACY, 80fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_POSTAL, 81fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_PICK_POSTAL_LEGACY, 82c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann ACTION_PICK_EMAIL, 83fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_CREATE_SHORTCUT_CONTACT, 84fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_CREATE_SHORTCUT_DIAL, 85fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_CREATE_SHORTCUT_MESSAGE, 86fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_CONTACT, 87fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_CONTACT_LEGACY, 88fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_PHONE, 89fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_PHONE_LEGACY, 90fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_POSTAL, 91fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_GET_CONTENT_POSTAL_LEGACY, 92fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_INSERT_OR_EDIT, 93ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki ACTION_INSERT_OR_EDIT_PHONE_NUMBER, 94ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki ACTION_INSERT_OR_EDIT_EMAIL_ADDRESS, 95fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_SEARCH_CALL, 96fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_SEARCH_CONTACT, 97fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_SEARCH_EMAIL, 98fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov ACTION_SEARCH_PHONE, 99fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov SEARCH_SUGGESTION_CLICKED_CONTACT, 100fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov JOIN_CONTACT, 101fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_CONTACT, 102fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_CONTACT_LOOKUP, 103fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_CONTACT_LOOKUP_ID, 104fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_RAW_CONTACT, 105fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_LEGACY, 106fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_CONTACT, 107fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_CONTACT_WITH_DATA, 108fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_CONTACT_FOR_ACCOUNT, 109fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA, 110fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_RAW_CONTACT, 111fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov EDIT_NEW_LEGACY, 112fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_CONTACT, 113fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_CONTACT_LOOKUP, 114fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_CONTACT_LOOKUP_ID, 115fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_RAW_CONTACT, 116fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_LEGACY, 117fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov DIAL, 118fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov DIAL_phone, 119fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov DIAL_person, 120fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov DIAL_voicemail, 121fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov CALL_BUTTON, 122fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov DIAL_tel, 123fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov VIEW_tel, 124a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda VIEW_calllog, 125a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda VIEW_calllog_entry, 126a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda LEGACY_CALL_DETAILS_ACTIVITY, 127a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda LEGACY_CALL_LOG_ACTIVITY; 128fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov 129fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov public static ContactsIntent get(int ordinal) { 130fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov return values()[ordinal]; 131fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov } 132fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov } 133e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 13431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 13531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onCreate(Bundle savedInstanceState) { 13631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onCreate(savedInstanceState); 13731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov setListAdapter(new ArrayAdapter<String>(this, R.layout.intent_list_item, 13831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov getResources().getStringArray(R.array.allIntents))); 13931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 14031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 14131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 14231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onListItemClick(ListView l, View v, int position, long id) { 14331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onListItemClick(l, v, position, id); 14431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 145fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov switch (ContactsIntent.get(position)) { 14631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_DEFAULT: { 147b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 148ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki new Intent(UI.LIST_DEFAULT, Contacts.CONTENT_URI)); 14931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_ALL_CONTACTS_ACTION: { 152b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_ALL_CONTACTS_ACTION, Contacts.CONTENT_URI)); 15431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_CONTACTS_WITH_PHONES_ACTION: { 157b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_CONTACTS_WITH_PHONES_ACTION, Contacts.CONTENT_URI)); 15931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STARRED_ACTION: { 162b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 16331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STARRED_ACTION, Contacts.CONTENT_URI)); 16431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_FREQUENT_ACTION: { 167b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 16831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_FREQUENT_ACTION, Contacts.CONTENT_URI)); 16931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 17031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 17131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STREQUENT_ACTION: { 172b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 17331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STREQUENT_ACTION, Contacts.CONTENT_URI)); 174ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki break; 175ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki } 176ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki case LIST_GROUP_ACTION: { 177ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki startContactListActivity( 178ea14605e56c98fcaa93f2f1e4186ce9db5e2f159Makoto Onuki new Intent(UI.LIST_GROUP_ACTION, Contacts.CONTENT_URI)); 17931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT: { 182b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 18331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI)); 18431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT_LEGACY: { 187b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 18831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, People.CONTENT_URI)); 18931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE: { 192b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 19331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI)); 19431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE_LEGACY: { 197b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 19831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI)); 19931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL: { 202b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 20331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, StructuredPostal.CONTENT_URI)); 20431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL_LEGACY: { 20731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_PICK); 20831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_TYPE); 209b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 21031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 21131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 212c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann case ACTION_PICK_EMAIL: { 213c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann startContactSelectionActivityForResult( 214c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann new Intent(Intent.ACTION_PICK, Email.CONTENT_URI)); 215c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann break; 216c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 21731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_CONTACT: { 21831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 219b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 22031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_DIAL: { 22331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 224a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda bindIntentToClass(intent, "alias.DialShortcut"); 22531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 22631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_MESSAGE: { 22931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 230a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda bindIntentToClass(intent, "alias.MessageShortcut"); 23131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 23231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 23331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 23431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT: { 23531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 23631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 237b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 23831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 23931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_LEGACY: { 24131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 24231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(People.CONTENT_ITEM_TYPE); 243b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 24431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 24531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE: { 24731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 24831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phone.CONTENT_ITEM_TYPE); 249b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 25031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 25231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE_LEGACY: { 25331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 25431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phones.CONTENT_ITEM_TYPE); 255b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 25631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 25831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL: { 25931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(StructuredPostal.CONTENT_ITEM_TYPE); 261b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 26231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 26331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 26431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL_LEGACY: { 26531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_ITEM_TYPE); 267b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 26831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 26931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 27031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_INSERT_OR_EDIT: { 27131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 27286092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 27386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 27486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov startActivity(intent); 27531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 27631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 277ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki case ACTION_INSERT_OR_EDIT_PHONE_NUMBER: { 278ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 279ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki intent.setType(Contacts.CONTENT_ITEM_TYPE); 280ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki intent.putExtra(Insert.PHONE, "5123456789"); 281ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki startActivity(intent); 282ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki break; 283ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki } 284ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki case ACTION_INSERT_OR_EDIT_EMAIL_ADDRESS: { 285ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 286ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki intent.setType(Contacts.CONTENT_ITEM_TYPE); 287ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki intent.putExtra(Insert.EMAIL, "android@android.com"); 288ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki startActivity(intent); 289ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki break; 290ac71b5305d49614f5560519509fa41ce9276a3f7Makoto Onuki } 29131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CALL: { 29231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 29331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.ACTION_MSG, "call"); 29431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "800-4664-411"); 29531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 29631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 29731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 29831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CONTACT: { 29931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 30031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "a"); 3017b8f74678640b571196557d64dd712dc4a109c49Dmitri Plotnikov intent.setType(Contacts.CONTENT_TYPE); 30231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 30331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 30431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 30531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_EMAIL: { 3061ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan Intent intent = new Intent(Intent.ACTION_SEARCH); 3071ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan intent.putExtra(Insert.EMAIL, "a"); 3081ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan startSearchResultActivity(intent); 30931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 31031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 31131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_PHONE: { 3121ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan Intent intent = new Intent(Intent.ACTION_SEARCH); 3131ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan intent.putExtra(Insert.PHONE, "800"); 3141ce53ffde8023fc1a8531c63b459d294912bccc7Katherine Kuan startSearchResultActivity(intent); 31531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 31631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 31731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CLICKED_CONTACT: { 31831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov long contactId = findArbitraryContactWithPhoneNumber(); 31931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (contactId != -1) { 32031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 32131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED); 32231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(contactUri); 323b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 32431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 32531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 32631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 32731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case JOIN_CONTACT: { 32831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov // TODO 32931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 33031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 33165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT: { 33265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 33365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 33465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 33565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 33665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 33765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 33865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP: { 33965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 34065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 34165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 34265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 34365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 34465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann lookupKey); 34565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupWithoutIdUri); 34665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 34765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 34865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 34965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP_ID: { 35065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 35165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 35265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 35365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupUri); 35465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 35565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 35665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 35765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_RAW_CONTACT: { 35865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 35965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 36065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 36165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 36265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 36365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 36465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 36565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_LEGACY: { 36665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 36765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 36865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 36965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 37065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 37165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 37265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 37365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 37465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_CONTACT: { 37565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI)); 37665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 37765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 37879bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov case EDIT_NEW_CONTACT_WITH_DATA: { 37979bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 38079bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 38186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 38279bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 38379bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov startActivity(intent); 38479bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov break; 38579bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov } 3862013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: 3872013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 3882013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(); 3892013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.setArguments(SelectAccountDialogFragment.createBundle(position)); 3902013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG); 3912013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 3922013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 39365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_RAW_CONTACT: { 39465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, RawContacts.CONTENT_URI)); 39565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 39665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 39765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_LEGACY: { 39865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 39965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, legacyContentUri)); 40065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 40165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 4023b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT: { 4033b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4043b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4053b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4063b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4073b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4083b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 409f0c4681ee4191e47103f8699dd1bf9cf7fc8b669Daisuke Miyakawa case VIEW_CONTACT_WITHOUT_ID: { 410f0c4681ee4191e47103f8699dd1bf9cf7fc8b669Daisuke Miyakawa startActivity(new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI)); 411f0c4681ee4191e47103f8699dd1bf9cf7fc8b669Daisuke Miyakawa break; 412f0c4681ee4191e47103f8699dd1bf9cf7fc8b669Daisuke Miyakawa } 4133b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP: { 4143b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4153b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4163b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4173b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 4183b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 4193b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann lookupKey); 4203b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupWithoutIdUri); 4213b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4223b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4233b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4243b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP_ID: { 4253b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4263b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4273b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4283b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupUri); 4293b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4303b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4313b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4323b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_RAW_CONTACT: { 4333b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4343b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 4353b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 4363b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4373b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4383b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4393b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4403b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_LEGACY: { 4413b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 4423b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4433b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 4443b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 4453b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4463b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4473b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4483b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 449e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL: { 450e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL)); 451e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 452e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 453e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_phone: { 454e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a phone data item) 455e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long dataId = findArbitraryPhoneDataId(); 456e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (dataId != -1) { 457e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/phones"); 458e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, dataId); 459e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 460e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 461e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 462e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 463e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_person: { 464e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a person) 465e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 466e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (contactId != -1) { 467e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 468e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 469e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 470e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 471e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 472e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 473e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 474e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_voicemail: { 475e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("voicemail:"))); 476e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 477e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 478e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case CALL_BUTTON: { 479e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_CALL_BUTTON)); 480e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 481e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 482e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_tel: { 483e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-123-4567"))); 484e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 485e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 486e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case VIEW_tel: { 487e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:555-123-4567"))); 488e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 489e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 490a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann case VIEW_calllog: { 491a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, null); 492a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann intent.setType("vnd.android.cursor.dir/calls"); 493a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann startActivity(intent); 494a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann break; 495a126cddda7a8df442a1c4d63b4412d50c83725a6Daniel Lehmann } 496a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda case VIEW_calllog_entry: { 497a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Uri uri = getCallLogUri(); 498a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda if (uri == null) { 499a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Toast.makeText(this, "Call log is empty", Toast.LENGTH_LONG).show(); 500a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda break; 501a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 502a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda final Intent intent = new Intent(Intent.ACTION_VIEW); 503a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda intent.setData(uri); 504a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda startActivity(intent); 505a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda break; 506a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 507a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda case LEGACY_CALL_DETAILS_ACTIVITY: { 508a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Uri uri = getCallLogUri(); 509a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda if (uri == null) { 510a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Toast.makeText(this, "Call log is empty", Toast.LENGTH_LONG).show(); 511a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda break; 512a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 513a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda final Intent intent = new Intent("android.intent.action.VIEW"); 514a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda intent.setData(uri); 515a2180f32d3c5d6842c421adb5aa2f85c69caccfbChiao Cheng bindIntentToClass(intent, "com.android.dialer.CallDetailActivity"); 516a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda startActivity(intent); 517a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda break; 518a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 519a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda case LEGACY_CALL_LOG_ACTIVITY: { 520bc2497a8afc5587098b2f6c50b4fc422235ee33cFlavio Lerda startActivity(bindIntentToClass(new Intent(), 521bc2497a8afc5587098b2f6c50b4fc422235ee33cFlavio Lerda "com.android.contacts.activities.CallLogActivity")); 522a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda break; 523a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 524a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda 52565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann default: { 52665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann Toast.makeText(this, "Sorry, we forgot to write this...", Toast.LENGTH_LONG).show(); 52765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 52831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 52931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 53031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 531a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda /** Returns the URI of one of the items in the call log, or null if the call log is empty. */ 532a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda private Uri getCallLogUri() { 533a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Cursor cursor = getContentResolver().query( 534a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Calls.CONTENT_URI, new String[]{ Calls._ID }, null, null, 535a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda Calls.DEFAULT_SORT_ORDER); 536a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda if (!cursor.moveToNext()) { 537a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda return null; 538a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 539a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda return ContentUris.withAppendedId(Calls.CONTENT_URI, cursor.getLong(0)); 540a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 541a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda 542a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda /** Creates an intent that is bound to a specific activity by name. */ 543a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda private Intent bindIntentToClass(Intent intent, String activityClassName) { 544a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda intent.setComponent(new ComponentName(ANDROID_CONTACTS_PACKAGE, activityClassName)); 545a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda return intent; 546a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda } 547a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda 5481a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov private Intent buildFilterIntent(int actionCode, boolean legacy) { 54931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(UI.FILTER_CONTACTS_ACTION); 55031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(UI.FILTER_TEXT_EXTRA_KEY, "A"); 551fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov// ContactsRequest request = new ContactsRequest(); 552fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov// request.setActionCode(actionCode); 553fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov// intent.putExtra("originalRequest", request); 55431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return intent; 55531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 55631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 557b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactListActivity(Intent intent) { 558a4aa90ce861ea56f403aa244905c9a4e326f2a10Flavio Lerda bindIntentToClass(intent, CONTACT_LIST_ACTIVITY_CLASS_NAME); 55931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 56031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 56131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 56231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 563b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactSelectionActivityForResult(Intent intent) { 56431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 12); 56531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 56631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 56731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private void startSearchResultActivity(Intent intent) { 56831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 56931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 57031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 57231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 57331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onActivityResult(int requestCode, int resultCode, Intent data) { 57431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(this, ResultActivity.class); 57531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("resultCode", resultCode); 57631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("data", data); 57731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 57831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 58031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private long findArbitraryContactWithPhoneNumber() { 58165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI, 58265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { Contacts._ID }, 583884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov Contacts.HAS_PHONE_NUMBER + "!=0 AND " + Contacts.STARRED + "!=0" , 584884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov null, "RANDOM() LIMIT 1"); 585e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann try { 586e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (cursor.moveToFirst()) { 587e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return cursor.getLong(0); 588e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 589e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } finally { 590e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann cursor.close(); 591e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 592e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 593e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return -1; 594e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 595e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 596e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private long findArbitraryPhoneDataId() { 597e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Cursor cursor = getContentResolver().query(Data.CONTENT_URI, 598e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann new String[] { Data._ID }, 599e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann Data.MIMETYPE + "=" + Phone.MIMETYPE, 600e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann null, "RANDOM() LIMIT 1"); 60131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov try { 60231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (cursor.moveToFirst()) { 60331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return cursor.getLong(0); 60431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 60531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } finally { 60631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov cursor.close(); 60731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 60831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 60931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return -1; 61031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 61165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 61265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private long findArbitraryRawContactOfContact(long contactId) { 61365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(RawContacts.CONTENT_URI, 61465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { RawContacts._ID }, 61565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts.CONTACT_ID + "=?", 61665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { String.valueOf(contactId) }, 61765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts._ID + " LIMIT 1"); 61865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann try { 61965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann if (cursor.moveToFirst()) { 62065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return cursor.getLong(0); 62165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 62265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } finally { 62365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann cursor.close(); 62465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 62565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 62665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return -1; 62765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 6282013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6292013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann @Override 630b5a6a925e44225748c915672ff9e2120164af657Flavio Lerda public void onAccountChosen(Account account, String dataSet, int tag) { 631fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov switch (ContactsIntent.get(tag)) { 6322013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: { 6332013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6342013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 635b5a6a925e44225748c915672ff9e2120164af657Flavio Lerda intent.putExtra(Insert.DATA_SET, dataSet); 6362013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6372013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6382013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6392013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 6402013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6412013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6422013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 643b5a6a925e44225748c915672ff9e2120164af657Flavio Lerda intent.putExtra(Insert.DATA_SET, dataSet); 64486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 6452013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6462013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6472013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6482013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 649fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov default: 650fa49a66979567894c85fe2489d1375216d67597eDmitri Plotnikov break; 6512013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6522013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 65386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 65486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov public void putDataExtra(final Intent intent) { 65586092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row1 = new ContentValues(); 65686092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE); 65786092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Organization.COMPANY, "Android"); 65886092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 65986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row2 = new ContentValues(); 66086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 66186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.TYPE, Email.TYPE_CUSTOM); 66286092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.LABEL, "Green Bot"); 66386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.ADDRESS, "android@android.com"); 66486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 66586092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.putParcelableArrayListExtra(Insert.DATA, Lists.newArrayList(row1, row2)); 66686092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov } 66731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov} 668