AllIntentsActivity.java revision 86092529f272b7ed2cee24fae397291696b29b80
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"; 6331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final String SEARCH_RESULTS_ACTIVITY_CLASS_NAME = 6431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov "com.android.contacts.SearchResultsActivity"; 65e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov private static final String MULTIPLE_PHONE_PICKER_ACTIVITY_CLASS_NAME = 6627834b2ae8bb5a65dfc20c212844d98d1c252caeDmitri Plotnikov "com.android.contacts.MultiplePhonePickerActivity"; 6731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 6831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_DEFAULT = 0; 6931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_ALL_CONTACTS_ACTION = 1; 7031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_CONTACTS_WITH_PHONES_ACTION = 2; 7131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STARRED_ACTION = 3; 7231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STARRED_ACTION_WITH_FILTER = 4; 7331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_FREQUENT_ACTION = 5; 7431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_FREQUENT_ACTION_WITH_FILTER = 6; 7531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STREQUENT_ACTION = 7; 7631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int LIST_STREQUENT_ACTION_WITH_FILTER = 8; 7731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_CONTACT = 9; 7831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_CONTACT_LEGACY = 10; 7931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_PHONE = 11; 8031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_PHONE_LEGACY = 12; 8131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_POSTAL = 13; 8231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_PICK_POSTAL_LEGACY = 14; 8331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_CONTACT = 15; 8431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_CONTACT_FILTER = 16; 8531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_DIAL = 17; 8631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_DIAL_FILTER = 18; 8731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_MESSAGE = 19; 8831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_CREATE_SHORTCUT_MESSAGE_FILTER = 20; 8931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT = 21; 9031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_FILTER = 22; 9131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_LEGACY = 23; 9231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_CONTACT_FILTER_LEGACY = 24; 9331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE = 25; 9431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE_FILTER = 26; 9531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_PHONE_LEGACY = 27; 9631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL = 28; 9731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL_FILTER = 29; 9831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_CONTENT_POSTAL_LEGACY = 30; 9931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_INSERT_OR_EDIT = 31; 10031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_CALL = 32; 10131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_CONTACT = 33; 10231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_EMAIL = 34; 10331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_SEARCH_PHONE = 35; 10431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CLICKED_CALL_BUTTON = 36; 10531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CLICKED_CONTACT = 37; 10631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = 38; 10731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = 39; 10831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int JOIN_CONTACT = 40; 10931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private static final int ACTION_GET_MULTIPLE_PHONES = 41; 11031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 11165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT = 42; 11265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT_LOOKUP = 43; 11365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_CONTACT_LOOKUP_ID = 44; 11465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_RAW_CONTACT = 45; 11565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_LEGACY = 46; 11665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private static final int EDIT_NEW_CONTACT = 47; 11779bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov private static final int EDIT_NEW_CONTACT_WITH_DATA = 48; 1182013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_CONTACT_FOR_ACCOUNT = 49; 1192013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA = 50; 1202013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_RAW_CONTACT = 51; 1212013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int EDIT_NEW_LEGACY = 52; 12265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 1232013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT = 53; 1242013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT_LOOKUP = 54; 1252013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_CONTACT_LOOKUP_ID = 55; 1262013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_RAW_CONTACT = 56; 1272013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann private static final int VIEW_LEGACY = 57; 1283b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann 129e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL = 58; 130e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_phone = 59; 131e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_person = 60; 132e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_voicemail = 61; 133e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int CALL_BUTTON = 62; 134e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int DIAL_tel = 63; 135e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private static final int VIEW_tel = 64; 136e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 13731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 13831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onCreate(Bundle savedInstanceState) { 13931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onCreate(savedInstanceState); 14031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov setListAdapter(new ArrayAdapter<String>(this, R.layout.intent_list_item, 14131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov getResources().getStringArray(R.array.allIntents))); 14231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 14331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 14431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 14531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onListItemClick(ListView l, View v, int position, long id) { 14631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov super.onListItemClick(l, v, position, id); 14731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 14831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov switch (position) { 14931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_DEFAULT: { 150b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI)); 15231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_ALL_CONTACTS_ACTION: { 155b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 15631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_ALL_CONTACTS_ACTION, Contacts.CONTENT_URI)); 15731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 15831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 15931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_CONTACTS_WITH_PHONES_ACTION: { 160b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 16131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_CONTACTS_WITH_PHONES_ACTION, Contacts.CONTENT_URI)); 16231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STARRED_ACTION: { 165b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 16631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STARRED_ACTION, Contacts.CONTENT_URI)); 16731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 16831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 16931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STARRED_ACTION_WITH_FILTER: { 170b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(buildFilterIntent(ContactsRequest.ACTION_STARRED, false)); 17131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 17231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 17331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_FREQUENT_ACTION: { 174b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 17531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_FREQUENT_ACTION, Contacts.CONTENT_URI)); 17631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 17731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 17831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_FREQUENT_ACTION_WITH_FILTER: { 179b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 1801a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_FREQUENT, false)); 18131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STREQUENT_ACTION: { 184b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 18531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(UI.LIST_STREQUENT_ACTION, Contacts.CONTENT_URI)); 18631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 18731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 18831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case LIST_STREQUENT_ACTION_WITH_FILTER: { 189b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity( 1901a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_STREQUENT, false)); 19131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT: { 194b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 19531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI)); 19631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 19731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 19831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_CONTACT_LEGACY: { 199b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 20031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, People.CONTENT_URI)); 20131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE: { 204b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 20531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI)); 20631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 20731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 20831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_PHONE_LEGACY: { 209b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 21031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI)); 21131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 21231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 21331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL: { 214b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 21531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new Intent(Intent.ACTION_PICK, StructuredPostal.CONTENT_URI)); 21631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 21731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 21831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_PICK_POSTAL_LEGACY: { 21931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_PICK); 22031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_TYPE); 221b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 22231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_CONTACT: { 22531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 226b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 22731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 22831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 22931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_CONTACT_FILTER: { 230b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2311a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT, 2321a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov false)); 23331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 23431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 23531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_DIAL: { 23631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 23731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 23831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, "alias.DialShortcut")); 23931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 24031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 24131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_DIAL_FILTER: { 243b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2441a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CALL, 2451a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov false)); 24631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 24731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 24831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_MESSAGE: { 24931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 25031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 25131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, "alias.MessageShortcut")); 25231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 0); 25331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 25531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_CREATE_SHORTCUT_MESSAGE_FILTER: { 256b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2571a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_CREATE_SHORTCUT_CALL, false)); 25831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 25931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 26031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT: { 26131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 263b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 26431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 26531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 26631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_LEGACY: { 26731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 26831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(People.CONTENT_ITEM_TYPE); 269b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 27031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 27131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 27231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_FILTER: { 273b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2741a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT, false)); 27531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 27631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 27731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_CONTACT_FILTER_LEGACY: { 278b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2791a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT, 2801a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov true)); 28131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 28231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 28331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE: { 28431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 28531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phone.CONTENT_ITEM_TYPE); 286b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 28731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 28831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 28931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE_FILTER: { 290b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 2911a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_PHONE, true)); 29231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 29331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 29431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_PHONE_LEGACY: { 29531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 29631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phones.CONTENT_ITEM_TYPE); 297b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 29831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 29931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 30031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL: { 30131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 30231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(StructuredPostal.CONTENT_ITEM_TYPE); 303b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 30431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 30531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 30631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL_FILTER: { 307b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult( 3081a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov buildFilterIntent(ContactsRequest.ACTION_PICK_POSTAL, false)); 30931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 31031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 31131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_CONTENT_POSTAL_LEGACY: { 31231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 31331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(ContactMethods.CONTENT_POSTAL_ITEM_TYPE); 314b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactSelectionActivityForResult(intent); 31531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 31631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 31731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_INSERT_OR_EDIT: { 31831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 31986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.setType(Contacts.CONTENT_ITEM_TYPE); 32086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 32186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov startActivity(intent); 32231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 32331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 32431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CALL: { 32531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 32631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.ACTION_MSG, "call"); 32731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "800-4664-411"); 32831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 32931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 33031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 33131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_CONTACT: { 33231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 33331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.QUERY, "a"); 33431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 33531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 33631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 33731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_EMAIL: { 33831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 33931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(Insert.EMAIL, "a"); 34031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 34131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 34231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 34331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_SEARCH_PHONE: { 34431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_SEARCH); 34531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(Insert.PHONE, "800"); 34631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startSearchResultActivity(intent); 34731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 34831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 34931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CLICKED_CALL_BUTTON: { 35031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov long contactId = findArbitraryContactWithPhoneNumber(); 35131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (contactId != -1) { 35231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 35331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED); 35431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(contactUri); 35531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(SearchManager.ACTION_MSG, "call"); 356b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 35731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 35831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 35931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 36031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CLICKED_CONTACT: { 36131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov long contactId = findArbitraryContactWithPhoneNumber(); 36231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (contactId != -1) { 36331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 36431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CLICKED); 36531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(contactUri); 366b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 36731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 36831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 36931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 37031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED: { 37131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED); 37231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(Uri.parse("tel:800-4664411")); 373b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 37431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 37531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 37631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED: { 37731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED); 37831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setData(Uri.parse("tel:800-4664411")); 379b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov startContactListActivity(intent); 38031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 38131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 38231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case JOIN_CONTACT: { 38331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov // TODO 38431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 38531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 38631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov case ACTION_GET_MULTIPLE_PHONES: { 38731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(Intents.ACTION_GET_MULTIPLE_PHONES); 38831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setType(Phone.CONTENT_TYPE); 389e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov intent.putExtra(Intents.EXTRA_PHONE_URIS, new Uri[] { 390e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov Uri.parse("tel:555-1212"), Uri.parse("tel:555-2121") 391e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov }); 392e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov startMultiplePhoneSelectionActivityForResult(intent); 39331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov break; 39431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 39565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT: { 39665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 39765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 39865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 39965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 40065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 40165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 40265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP: { 40365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 40465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 40565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 40665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 40765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 40865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann lookupKey); 40965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupWithoutIdUri); 41065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 41165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 41265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 41365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_CONTACT_LOOKUP_ID: { 41465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 41565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 41665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 41765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, lookupUri); 41865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 41965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 42065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 42165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_RAW_CONTACT: { 42265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 42365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 42465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 42565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 42665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 42765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 42865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 42965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_LEGACY: { 43065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 43165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 43265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 43365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 43465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_EDIT, uri); 43565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(intent); 43665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 43765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 43865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_CONTACT: { 43965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI)); 44065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 44165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 44279bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov case EDIT_NEW_CONTACT_WITH_DATA: { 44379bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 44479bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 44586092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 44679bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov 44779bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov startActivity(intent); 44879bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov break; 44979bea93fe361aac5b4928ef090b5021bcba99428Dmitri Plotnikov } 4502013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: 4512013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 4522013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(); 4532013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.setArguments(SelectAccountDialogFragment.createBundle(position)); 4542013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG); 4552013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 4562013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 45765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_RAW_CONTACT: { 45865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, RawContacts.CONTENT_URI)); 45965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 46065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 46165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann case EDIT_NEW_LEGACY: { 46265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 46365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann startActivity(new Intent(Intent.ACTION_INSERT, legacyContentUri)); 46465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann break; 46565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 4663b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT: { 4673b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4683b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4693b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4703b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4713b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4723b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4733b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP: { 4743b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4753b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4763b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4773b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final String lookupKey = lookupUri.getPathSegments().get(2); 4783b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupWithoutIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, 4793b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann lookupKey); 4803b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupWithoutIdUri); 4813b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4823b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4833b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4843b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_CONTACT_LOOKUP_ID: { 4853b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4863b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 4873b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), uri); 4883b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, lookupUri); 4893b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4903b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4913b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 4923b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_RAW_CONTACT: { 4933b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 4943b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 4953b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId); 4963b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 4973b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 4983b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 4993b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 5003b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann case VIEW_LEGACY: { 5013b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 5023b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 5033b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 5043b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 5053b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann final Intent intent = new Intent(Intent.ACTION_VIEW, uri); 5063b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann startActivity(intent); 5073b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann break; 5083b7d5949bfa524534e5d1aa29b8eaff8733ae00cDaniel Lehmann } 509e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL: { 510e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL)); 511e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 512e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 513e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_phone: { 514e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a phone data item) 515e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long dataId = findArbitraryPhoneDataId(); 516e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (dataId != -1) { 517e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/phones"); 518e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, dataId); 519e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 520e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 521e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 522e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 523e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_person: { 524e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann // This is the legacy URI (there is no >2.0 way to call a person) 525e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long contactId = findArbitraryContactWithPhoneNumber(); 526e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (contactId != -1) { 527e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri legacyContentUri = Uri.parse("content://contacts/people"); 528e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final long rawContactId = findArbitraryRawContactOfContact(contactId); 529e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Uri uri = ContentUris.withAppendedId(legacyContentUri, rawContactId); 530e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, uri)); 531e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 532e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 533e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 534e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_voicemail: { 535e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("voicemail:"))); 536e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 537e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 538e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case CALL_BUTTON: { 539e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_CALL_BUTTON)); 540e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 541e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 542e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case DIAL_tel: { 543e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-123-4567"))); 544e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 545e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 546e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann case VIEW_tel: { 547e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:555-123-4567"))); 548e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann break; 549e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 55065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann default: { 55165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann Toast.makeText(this, "Sorry, we forgot to write this...", Toast.LENGTH_LONG).show(); 55265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 55331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 55431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 55531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 5561a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov private Intent buildFilterIntent(int actionCode, boolean legacy) { 55731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(UI.FILTER_CONTACTS_ACTION); 55831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra(UI.FILTER_TEXT_EXTRA_KEY, "A"); 5591a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov ContactsRequest request = new ContactsRequest(); 5601a222007768e555f38fa8875ffc73c8a83a266afDmitri Plotnikov request.setActionCode(actionCode); 561c9e95f46486bfe2110b890709efb5399a4c6eb49Dmitri Plotnikov intent.putExtra("originalRequest", request); 56231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return intent; 56331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 56431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 565b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactListActivity(Intent intent) { 56631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 567b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, CONTACT_LIST_ACTIVITY_CLASS_NAME)); 56831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 56931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 57031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 572b979b4294c14f2bc562a5279910bafb7ac1a92b4Dmitri Plotnikov private void startContactSelectionActivityForResult(Intent intent) { 57331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivityForResult(intent, 12); 57431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 57531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 57631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private void startSearchResultActivity(Intent intent) { 57731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setComponent( 57831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, SEARCH_RESULTS_ACTIVITY_CLASS_NAME)); 57931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 58031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 58131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 58231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 583e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov private void startMultiplePhoneSelectionActivityForResult(Intent intent) { 584e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov intent.setComponent( 585e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov new ComponentName(ANDROID_CONTACTS_PACKAGE, 586e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov MULTIPLE_PHONE_PICKER_ACTIVITY_CLASS_NAME)); 587e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov startActivityForResult(intent, 13); 588e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov } 589e8ae9acbde772c94fd7d50b3f65bd3b1278c338bDmitri Plotnikov 59031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov @Override 59131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov protected void onActivityResult(int requestCode, int resultCode, Intent data) { 59231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov Intent intent = new Intent(this, ResultActivity.class); 59331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("resultCode", resultCode); 59431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov intent.putExtra("data", data); 59531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov startActivity(intent); 59631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 59731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 59831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov private long findArbitraryContactWithPhoneNumber() { 59965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI, 60065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { Contacts._ID }, 601884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov Contacts.HAS_PHONE_NUMBER + "!=0 AND " + Contacts.STARRED + "!=0" , 602884e393af339ba1357dd1aea4c8e821396c214b9Dmitri Plotnikov null, "RANDOM() LIMIT 1"); 603e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann try { 604e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann if (cursor.moveToFirst()) { 605e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return cursor.getLong(0); 606e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 607e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } finally { 608e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann cursor.close(); 609e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 610e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 611e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann return -1; 612e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann } 613e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann 614e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann private long findArbitraryPhoneDataId() { 615e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann final Cursor cursor = getContentResolver().query(Data.CONTENT_URI, 616e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann new String[] { Data._ID }, 617e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann Data.MIMETYPE + "=" + Phone.MIMETYPE, 618e9b196e446cc34f690a043c5f5d9e5a7b8b92b3fDaniel Lehmann null, "RANDOM() LIMIT 1"); 61931ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov try { 62031ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov if (cursor.moveToFirst()) { 62131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return cursor.getLong(0); 62231ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 62331ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } finally { 62431ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov cursor.close(); 62531ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 62631ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov 62731ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov return -1; 62831ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov } 62965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 63065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann private long findArbitraryRawContactOfContact(long contactId) { 63165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann final Cursor cursor = getContentResolver().query(RawContacts.CONTENT_URI, 63265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { RawContacts._ID }, 63365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts.CONTACT_ID + "=?", 63465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann new String[] { String.valueOf(contactId) }, 63565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann RawContacts._ID + " LIMIT 1"); 63665c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann try { 63765c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann if (cursor.moveToFirst()) { 63865c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return cursor.getLong(0); 63965c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 64065c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } finally { 64165c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann cursor.close(); 64265c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 64365c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann 64465c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann return -1; 64565c90e23a0c141d390fc2177a1b461646f4f8a3aDaniel Lehmann } 6462013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6472013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann @Override 6482013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann public void onAccountChosen(Account account, int tag) { 6492013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann switch (tag) { 6502013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT: { 6512013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6522013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 6532013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6542013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6552013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6562013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann case EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA: { 6572013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 6582013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6592013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann intent.putExtra(Insert.ACCOUNT, account); 66086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov putDataExtra(intent); 6612013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann 6622013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann startActivity(intent); 6632013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann break; 6642013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6652013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 6662013058703aa110a1d7aac87ef408c96a3919472Daniel Lehmann } 66786092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 66886092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov public void putDataExtra(final Intent intent) { 66986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row1 = new ContentValues(); 67086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE); 67186092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row1.put(Organization.COMPANY, "Android"); 67286092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 67386092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov ContentValues row2 = new ContentValues(); 67486092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 67586092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.TYPE, Email.TYPE_CUSTOM); 67686092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.LABEL, "Green Bot"); 67786092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov row2.put(Email.ADDRESS, "android@android.com"); 67886092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov 67986092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov intent.putParcelableArrayListExtra(Insert.DATA, Lists.newArrayList(row1, row2)); 68086092529f272b7ed2cee24fae397291696b29b80Dmitri Plotnikov } 68131ec0b51ac4d508f8727608b98d0bf916f2b20b9Dmitri Plotnikov} 682