AllIntentsActivity.java revision 7b8f74678640b571196557d64dd712dc4a109c49
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 191a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikovimport com.android.contacts.list.ContactsRequest; 2031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport com.android.contacts.tests.R; 2179bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport com.google.android.collect.Lists; 2231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 232013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmannimport android.accounts.Account; 2431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.app.ListActivity; 2531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.app.SearchManager; 2631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.ComponentName; 2731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.ContentUris; 2879bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.content.ContentValues; 2931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.content.Intent; 3031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.database.Cursor; 3131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.net.Uri; 3231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.os.Bundle; 3331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.ContactMethods; 3431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.People; 3531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.Contacts.Phones; 3679bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Email; 3779bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Organization; 3831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.Phone; 3931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 4027834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.Contacts; 4179bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikovimport android.provider.ContactsContract.Data; 4227834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.Intents; 4331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.Intents.Insert; 4431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.provider.ContactsContract.Intents.UI; 4527834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikovimport android.provider.ContactsContract.RawContacts; 4631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.view.View; 4731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.widget.ArrayAdapter; 4831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikovimport android.widget.ListView; 4965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmannimport android.widget.Toast; 5031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 5131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov/** 5231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * An activity that provides access to various modes of the contacts application. 5331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov * Useful for manual and scripted tests. 5431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov */ 5531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov@SuppressWarnings("deprecation") 562013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmannpublic class AllIntentsActivity extends ListActivity 572013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann implements SelectAccountDialogFragment.Listener { 5831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 5931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final String ANDROID_CONTACTS_PACKAGE = "com.android.contacts"; 6031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 61b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private static final String CONTACT_LIST_ACTIVITY_CLASS_NAME = 62009676f9f2a5d8d47756be37abd9a14f2e564979Dmitri Plotnikov "com.android.contacts.activities.ContactBrowserActivity"; 63e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov private static final String MULTIPLE_PHONE_PICKER_ACTIVITY_CLASS_NAME = 6427834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikov "com.android.contacts.MultiplePhonePickerActivity"; 6531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 6631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_DEFAULT = 0; 6731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_ALL_CONTACTS_ACTION = 1; 6831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_CONTACTS_WITH_PHONES_ACTION = 2; 6931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STARRED_ACTION = 3; 7031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STARRED_ACTION_WITH_FILTER = 4; 7131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_FREQUENT_ACTION = 5; 7231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_FREQUENT_ACTION_WITH_FILTER = 6; 7331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STREQUENT_ACTION = 7; 7431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STREQUENT_ACTION_WITH_FILTER = 8; 7531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_CONTACT = 9; 7631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_CONTACT_LEGACY = 10; 7731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_PHONE = 11; 7831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_PHONE_LEGACY = 12; 7931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_POSTAL = 13; 8031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_POSTAL_LEGACY = 14; 8131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_CONTACT = 15; 8231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_CONTACT_FILTER = 16; 8331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_DIAL = 17; 8431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_DIAL_FILTER = 18; 8531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_MESSAGE = 19; 8631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_MESSAGE_FILTER = 20; 8731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT = 21; 8831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_FILTER = 22; 8931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_LEGACY = 23; 9031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_FILTER_LEGACY = 24; 9131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE = 25; 9231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE_FILTER = 26; 9331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE_LEGACY = 27; 9431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL = 28; 9531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL_FILTER = 29; 9631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL_LEGACY = 30; 9731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_INSERT_OR_EDIT = 31; 9831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_CALL = 32; 9931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_CONTACT = 33; 10031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_EMAIL = 34; 10131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_PHONE = 35; 10231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CLICKED_CALL_BUTTON = 36; 10331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CLICKED_CONTACT = 37; 10431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = 38; 10531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = 39; 10631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int JOIN_CONTACT = 40; 10731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_MULTIPLE_PHONES = 41; 10831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 10965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT = 42; 11065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT_LOOKUP = 43; 11165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT_LOOKUP_ID = 44; 11265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_RAW_CONTACT = 45; 11365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_LEGACY = 46; 11465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_NEW_CONTACT = 47; 11579bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov private static final int EDIT_NEW_CONTACT_WITH_DATA = 48; 1162013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_CONTACT_FOR_ACCOUNT = 49; 1172013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA = 50; 1182013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_RAW_CONTACT = 51; 1192013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_LEGACY = 52; 12065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 1212013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT = 53; 1222013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT_LOOKUP = 54; 1232013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT_LOOKUP_ID = 55; 1242013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_RAW_CONTACT = 56; 1252013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_LEGACY = 57; 1263b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann 127e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL = 58; 128e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_phone = 59; 129e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_person = 60; 130e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_voicemail = 61; 131e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int CALL_BUTTON = 62; 132e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_tel = 63; 133e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int VIEW_tel = 64; 134e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 13531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 13631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onCreate(Bundle savedInstanceState) { 13731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onCreate(savedInstanceState); 13831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov setListAdapter(new ArrayAdapter<String>(this, R.layout.intent_list_item, 13931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov getResources().getStringArray(R.array.allIntents))); 14031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 14131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 14231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 14331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onListItemClick(ListView l, View v, int position, long id) { 14431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onListItemClick(l, v, position, id); 14531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 14631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov switch (position) { 14731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_DEFAULT: { 148b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 14931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI)); 15031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_ALL_CONTACTS_ACTION: { 153b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_ALL_CONTACTS_ACTION, Contacts.CONTENT_URI)); 15531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_CONTACTS_WITH_PHONES_ACTION: { 158b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_CONTACTS_WITH_PHONES_ACTION, Contacts.CONTENT_URI)); 16031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STARRED_ACTION: { 163b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 16431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STARRED_ACTION, Contacts.CONTENT_URI)); 16531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STARRED_ACTION_WITH_FILTER: { 168b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(buildFilterIntent(ContactsRequest.ACTION_STARRED, false)); 16931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 17031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 17131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_FREQUENT_ACTION: { 172b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 17331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_FREQUENT_ACTION, Contacts.CONTENT_URI)); 17431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 17531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 17631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_FREQUENT_ACTION_WITH_FILTER: { 177b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 1781a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_FREQUENT, false)); 17931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STREQUENT_ACTION: { 182b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 18331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STREQUENT_ACTION, Contacts.CONTENT_URI)); 18431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STREQUENT_ACTION_WITH_FILTER: { 187b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 1881a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_STREQUENT, false)); 18931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT: { 192b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 19331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI)); 19431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT_LEGACY: { 197b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 19831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, People.CONTENT_URI)); 19931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE: { 202b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 20331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI)); 20431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE_LEGACY: { 207b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 20831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI)); 20931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 21031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 21131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL: { 212b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 21331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, StructuredPostal.CONTENT_URI)); 21431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 21531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 21631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL_LEGACY: { 21731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_PICK); 21831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_TYPE); 219b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 22031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_CONTACT: { 22331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 224b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 22531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_CONTACT_FILTER: { 228b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2291a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT, 2301a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov false)); 23131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 23231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 23331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_DIAL: { 23431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 23531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 23631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, "alias.DialShortcut")); 23731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 23831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 23931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_DIAL_FILTER: { 241b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2421a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CALL, 2431a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov false)); 24431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 24531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_MESSAGE: { 24731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 24831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 24931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, "alias.MessageShortcut")); 25031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 25131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 25331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_MESSAGE_FILTER: { 254b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2551a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CALL, false)); 25631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 25831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT: { 25931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 261b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 26231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 26331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 26431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_LEGACY: { 26531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(People.CONTENT_ITEM_TYPE); 267b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 26831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 26931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 27031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_FILTER: { 271b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2721a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT, false)); 27331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 27431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 27531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_FILTER_LEGACY: { 276b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2771a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT, 2781a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov true)); 27931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 28031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 28131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE: { 28231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 28331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phone.CONTENT_ITEM_TYPE); 284b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 28531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 28631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 28731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE_FILTER: { 288b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2891a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_PHONE, true)); 29031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 29131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 29231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE_LEGACY: { 29331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 29431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phones.CONTENT_ITEM_TYPE); 295b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 29631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 29731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 29831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL: { 29931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 30031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(StructuredPostal.CONTENT_ITEM_TYPE); 301b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 30231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 30331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 30431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL_FILTER: { 305b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 3061a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_POSTAL, false)); 30731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 30831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 30931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL_LEGACY: { 31031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 31131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_ITEM_TYPE); 312b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 31331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 31431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 31531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_INSERT_OR_EDIT: { 31631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 31786092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 31886092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 31986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov startActivity(intent); 32031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 32131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 32231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CALL: { 32331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 32431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.ACTION_MSG, "call"); 32531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "800-4664-411"); 32631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 32731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 32831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 32931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CONTACT: { 33031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 33131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "a"); 3327b8f74678640b571196557d64dd712dc4a109c49Dmitri Plotnikov intent.setType(Contacts.CONTENT_TYPE); 33331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 33431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 33531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 33631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_EMAIL: { 3377b8f74678640b571196557d64dd712dc4a109c49Dmitri Plotnikov Toast.makeText(this, "Unsupported", Toast.LENGTH_SHORT).show(); 33831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 33931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 34031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_PHONE: { 3417b8f74678640b571196557d64dd712dc4a109c49Dmitri Plotnikov Toast.makeText(this, "Unsupported", Toast.LENGTH_SHORT).show(); 34231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 34331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 34431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CLICKED_CALL_BUTTON: { 34531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov long contactId = findArbitraryContactWithPhoneNumber(); 34631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (contactId != -1) { 34731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 34831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED); 34931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(contactUri); 35031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.ACTION_MSG, "call"); 351b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 35231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 35331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 35431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 35531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CLICKED_CONTACT: { 35631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov long contactId = findArbitraryContactWithPhoneNumber(); 35731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (contactId != -1) { 35831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 35931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED); 36031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(contactUri); 361b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 36231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 36331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 36431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 36531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED: { 36631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED); 36731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(Uri.parse("tel:800-4664411")); 368b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 36931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 37031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 37131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED: { 37231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED); 37331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(Uri.parse("tel:800-4664411")); 374b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 37531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 37631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 37731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case JOIN_CONTACT: { 37831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov // TODO 37931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 38031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 38131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_MULTIPLE_PHONES: { 38231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.ACTION_GET_MULTIPLE_PHONES); 38331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phone.CONTENT_TYPE); 384e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov intent.putExtra(Intents.EXTRA_PHONE_URIS, new Uri[] { 385e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov Uri.parse("tel:555-1212"), Uri.parse("tel:555-2121") 386e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov }); 387e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov startMultiplePhoneSelectionActivityForResult(intent); 38831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 38931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 39065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT: { 39165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 39265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 39365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 39465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 39565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 39665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 39765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP: { 39865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 39965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 40065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 40165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 40265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 40365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann lookupKey); 40465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupWithoutIdUri); 40565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 40665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 40765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 40865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP_ID: { 40965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 41065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 41165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 41265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupUri); 41365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 41465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 41565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 41665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_RAW_CONTACT: { 41765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 41865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 41965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 42065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 42165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 42265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 42365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 42465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_LEGACY: { 42565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 42665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 42765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 42865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 42965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 43065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 43165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 43265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 43365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_CONTACT: { 43465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI)); 43565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 43665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 43779bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov case EDIT_NEW_CONTACT_WITH_DATA: { 43879bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 43979bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 44086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 44179bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 44279bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov startActivity(intent); 44379bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov break; 44479bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov } 4452013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: 4462013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 4472013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(); 4482013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.setArguments(SelectAccountDialogFragment.createBundle(position)); 4492013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG); 4502013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 4512013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 45265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_RAW_CONTACT: { 45365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, RawContacts.CONTENT_URI)); 45465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 45565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 45665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_LEGACY: { 45765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 45865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, legacyContentUri)); 45965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 46065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 4613b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT: { 4623b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4633b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4643b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4653b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4663b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4673b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4683b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP: { 4693b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4703b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4713b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4723b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 4733b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 4743b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann lookupKey); 4753b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupWithoutIdUri); 4763b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4773b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4783b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4793b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP_ID: { 4803b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4813b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4823b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4833b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupUri); 4843b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4853b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4863b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4873b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_RAW_CONTACT: { 4883b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4893b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 4903b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 4913b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4923b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4933b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4943b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4953b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_LEGACY: { 4963b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 4973b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4983b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 4993b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 5003b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 5013b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 5023b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 5033b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 504e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL: { 505e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL)); 506e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 507e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 508e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_phone: { 509e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a phone data item) 510e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long dataId = findArbitraryPhoneDataId(); 511e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (dataId != -1) { 512e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/phones"); 513e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, dataId); 514e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 515e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 516e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 517e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 518e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_person: { 519e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a person) 520e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 521e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (contactId != -1) { 522e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 523e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 524e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 525e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 526e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 527e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 528e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 529e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_voicemail: { 530e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("voicemail:"))); 531e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 532e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 533e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case CALL_BUTTON: { 534e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_CALL_BUTTON)); 535e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 536e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 537e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_tel: { 538e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-123-4567"))); 539e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 540e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 541e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case VIEW_tel: { 542e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:555-123-4567"))); 543e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 544e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 54565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann default: { 54665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann Toast.makeText(this, "Sorry, we forgot to write this...", Toast.LENGTH_LONG).show(); 54765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 54831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 54931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 55031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 5511a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov private Intent buildFilterIntent(int actionCode, boolean legacy) { 55231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(UI.FILTER_CONTACTS_ACTION); 55331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(UI.FILTER_TEXT_EXTRA_KEY, "A"); 5541a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov ContactsRequest request = new ContactsRequest(); 5551a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov request.setActionCode(actionCode); 556c9e95f46486bfe2110b890709efb5399a4c6eb49Dmitri Plotnikov intent.putExtra("originalRequest", request); 55731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return intent; 55831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 55931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 560b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactListActivity(Intent intent) { 56131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 562b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, CONTACT_LIST_ACTIVITY_CLASS_NAME)); 56331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 56431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 56531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 56631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 567b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactSelectionActivityForResult(Intent intent) { 56831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 12); 56931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 57131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private void startSearchResultActivity(Intent intent) { 57231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 57331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 57431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 576e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov private void startMultiplePhoneSelectionActivityForResult(Intent intent) { 577e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov intent.setComponent( 578e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, 579e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov MULTIPLE_PHONE_PICKER_ACTIVITY_CLASS_NAME)); 580e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov startActivityForResult(intent, 13); 581e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov } 582e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov 58331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 58431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onActivityResult(int requestCode, int resultCode, Intent data) { 58531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(this, ResultActivity.class); 58631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("resultCode", resultCode); 58731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("data", data); 58831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 58931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 59031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 59131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private long findArbitraryContactWithPhoneNumber() { 59265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI, 59365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { Contacts._ID }, 594884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov Contacts.HAS_PHONE_NUMBER + "!=0 AND " + Contacts.STARRED + "!=0" , 595884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov null, "RANDOM() LIMIT 1"); 596e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann try { 597e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (cursor.moveToFirst()) { 598e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return cursor.getLong(0); 599e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 600e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } finally { 601e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann cursor.close(); 602e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 603e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 604e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return -1; 605e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 606e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 607e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private long findArbitraryPhoneDataId() { 608e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Cursor cursor = getContentResolver().query(Data.CONTENT_URI, 609e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann new String[] { Data._ID }, 610e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann Data.MIMETYPE + "=" + Phone.MIMETYPE, 611e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann null, "RANDOM() LIMIT 1"); 61231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov try { 61331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (cursor.moveToFirst()) { 61431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return cursor.getLong(0); 61531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 61631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } finally { 61731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov cursor.close(); 61831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 61931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 62031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return -1; 62131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 62265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 62365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private long findArbitraryRawContactOfContact(long contactId) { 62465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(RawContacts.CONTENT_URI, 62565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { RawContacts._ID }, 62665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts.CONTACT_ID + "=?", 62765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { String.valueOf(contactId) }, 62865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts._ID + " LIMIT 1"); 62965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann try { 63065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann if (cursor.moveToFirst()) { 63165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return cursor.getLong(0); 63265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 63365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } finally { 63465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann cursor.close(); 63565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 63665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 63765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return -1; 63865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 6392013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6402013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann @Override 6412013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann public void onAccountChosen(Account account, int tag) { 6422013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann switch (tag) { 6432013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: { 6442013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6452013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 6462013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6472013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6482013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6492013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 6502013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6512013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6522013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 65386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 6542013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6552013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6562013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6572013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6582013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6592013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 66086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 66186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov public void putDataExtra(final Intent intent) { 66286092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row1 = new ContentValues(); 66386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE); 66486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Organization.COMPANY, "Android"); 66586092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 66686092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row2 = new ContentValues(); 66786092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 66886092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.TYPE, Email.TYPE_CUSTOM); 66986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.LABEL, "Green Bot"); 67086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.ADDRESS, "android@android.com"); 67186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 67286092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.putParcelableArrayListExtra(Insert.DATA, Lists.newArrayList(row1, row2)); 67386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov } 67431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov} 675