1ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/* 2ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Copyright (C) 2012 The Android Open Source Project 3ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 4ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License"); 5ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * you may not use this file except in compliance with the License. 6ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * You may obtain a copy of the License at 7ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 8ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * http://www.apache.org/licenses/LICENSE-2.0 9ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 10ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Unless required by applicable law or agreed to in writing, software 11ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS, 12ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * See the License for the specific language governing permissions and 14ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * limitations under the License 15ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */ 16ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 17ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpackage com.android.dialer.util; 18ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 19ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.content.Intent; 20ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.net.Uri; 21ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.provider.ContactsContract; 22ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 23ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/** Utilities for creation of intents in Dialer. */ 24ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpublic class IntentUtil { 25ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 26ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian private static final String SMS_URI_PREFIX = "sms:"; 27ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian private static final int NO_PHONE_TYPE = -1; 28ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 29ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getSendSmsIntent(CharSequence phoneNumber) { 30ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return new Intent(Intent.ACTION_SENDTO, Uri.parse(SMS_URI_PREFIX + phoneNumber)); 31ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 32ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 33ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getNewContactIntent() { 34ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI); 35ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 36ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 37ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getNewContactIntent(CharSequence phoneNumber) { 38ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return getNewContactIntent(null /* name */, phoneNumber /* phoneNumber */, NO_PHONE_TYPE); 39ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 40ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 41ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getNewContactIntent( 42ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian CharSequence name, CharSequence phoneNumber, int phoneNumberType) { 43ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Intent intent = getNewContactIntent(); 44ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian populateContactIntent(intent, name, phoneNumber, phoneNumberType); 45ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return intent; 46ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 47ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 48ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getAddToExistingContactIntent() { 49ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 50ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE); 51ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return intent; 52ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 53ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 54ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getAddToExistingContactIntent(CharSequence phoneNumber) { 55ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return getAddToExistingContactIntent( 56ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian null /* name */, phoneNumber /* phoneNumber */, NO_PHONE_TYPE); 57ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 58ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 59ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static Intent getAddToExistingContactIntent( 60ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian CharSequence name, CharSequence phoneNumber, int phoneNumberType) { 61ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Intent intent = getAddToExistingContactIntent(); 62ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian populateContactIntent(intent, name, phoneNumber, phoneNumberType); 63ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return intent; 64ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 65ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 66ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian private static void populateContactIntent( 67ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Intent intent, CharSequence name, CharSequence phoneNumber, int phoneNumberType) { 68ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian if (phoneNumber != null) { 69ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian intent.putExtra(ContactsContract.Intents.Insert.PHONE, phoneNumber); 70ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 71ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian if (name != null) { 72ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian intent.putExtra(ContactsContract.Intents.Insert.NAME, name); 73ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 74ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian if (phoneNumberType != NO_PHONE_TYPE) { 75ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, phoneNumberType); 76ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 77ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 78ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian} 79