Additional clean-up of dialer split.
- Moving resource only used by dialer.
- Moving out common utilities.
Bug: 6993891
Change-Id: Ieb851adb1d6a3492290b84a56aa2cd00cae2f260
diff --git a/src/com/android/contacts/CallContactActivity.java b/src/com/android/contacts/CallContactActivity.java
index c4b4dc7..3aacfd5 100644
--- a/src/com/android/contacts/CallContactActivity.java
+++ b/src/com/android/contacts/CallContactActivity.java
@@ -22,6 +22,7 @@
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.interactions.PhoneNumberInteraction;
/**
@@ -48,7 +49,7 @@
if (Contacts.CONTENT_ITEM_TYPE.equals(getContentResolver().getType(contactUri))) {
PhoneNumberInteraction.startInteractionForPhoneCall(this, contactUri);
} else {
- startActivity(ContactsUtils.getCallIntent(contactUri));
+ startActivity(CallUtil.getCallIntent(contactUri));
finish();
}
}
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 226061e..d1c80c7 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -37,8 +37,6 @@
import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.test.NeededForTesting;
-import com.android.contacts.util.Constants;
-import com.android.phone.common.PhoneConstants;
import java.util.List;
@@ -224,57 +222,6 @@
}
/**
- * Return Uri with an appropriate scheme, accepting Voicemail, SIP, and usual phone call
- * numbers.
- */
- public static Uri getCallUri(String number) {
- if (PhoneNumberUtils.isVoiceMailNumber(number)) {
- return Uri.parse("voicemail:");
- }
- if (PhoneNumberUtils.isUriNumber(number)) {
- return Uri.fromParts(Constants.SCHEME_SIP, number, null);
- }
- return Uri.fromParts(Constants.SCHEME_TEL, number, null);
- }
-
- /**
- * Return an Intent for making a phone call. Scheme (e.g. tel, sip) will be determined
- * automatically.
- */
- public static Intent getCallIntent(String number) {
- return getCallIntent(number, null);
- }
-
- /**
- * Return an Intent for making a phone call. A given Uri will be used as is (without any
- * sanity check).
- */
- public static Intent getCallIntent(Uri uri) {
- return getCallIntent(uri, null);
- }
-
- /**
- * A variant of {@link #getCallIntent(String)} but also accept a call origin. For more
- * information about call origin, see comments in Phone package (PhoneApp).
- */
- public static Intent getCallIntent(String number, String callOrigin) {
- return getCallIntent(getCallUri(number), callOrigin);
- }
-
- /**
- * A variant of {@link #getCallIntent(Uri)} but also accept a call origin. For more
- * information about call origin, see comments in Phone package (PhoneApp).
- */
- public static Intent getCallIntent(Uri uri, String callOrigin) {
- final Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, uri);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- if (callOrigin != null) {
- intent.putExtra(PhoneConstants.EXTRA_CALL_ORIGIN, callOrigin);
- }
- return intent;
- }
-
- /**
* Return an Intent for launching voicemail screen.
*/
public static Intent getVoicemailIntent() {
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index 1dc0197..a8077cb 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -32,9 +32,9 @@
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.ContactsActivity;
import com.android.contacts.R;
-import com.android.contacts.util.Constants;
import com.android.contacts.util.NotifyingAsyncQueryHandler;
/**
@@ -119,13 +119,13 @@
mCreateForce = intent.getBooleanExtra(Intents.EXTRA_FORCE_CREATE, false);
// Handle specific query request
- if (Constants.SCHEME_MAILTO.equals(scheme)) {
+ if (CallUtil.SCHEME_MAILTO.equals(scheme)) {
mCreateExtras.putString(Intents.Insert.EMAIL, ssp);
Uri uri = Uri.withAppendedPath(Email.CONTENT_FILTER_URI, Uri.encode(ssp));
mQueryHandler.startQuery(QUERY_TOKEN, null, uri, CONTACTS_PROJECTION, null, null, null);
- } else if (Constants.SCHEME_TEL.equals(scheme)) {
+ } else if (CallUtil.SCHEME_TEL.equals(scheme)) {
mCreateExtras.putString(Intents.Insert.PHONE, ssp);
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, ssp);
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index 3dfaf8d..4d5458b 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -68,6 +68,7 @@
import android.widget.ListView;
import android.widget.TextView;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.Collapser;
import com.android.contacts.Collapser.Collapsible;
import com.android.contacts.ContactPresenceIconUtil;
@@ -77,6 +78,7 @@
import com.android.contacts.R;
import com.android.contacts.TypePrecedence;
import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
+import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.editor.SelectAccountDialogFragment;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.Contact;
@@ -104,8 +106,6 @@
import com.android.contacts.model.dataitem.StructuredPostalDataItem;
import com.android.contacts.model.dataitem.WebsiteDataItem;
import com.android.contacts.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.util.ClipboardUtils;
-import com.android.contacts.util.Constants;
import com.android.contacts.util.DataStatus;
import com.android.contacts.util.DateUtils;
import com.android.contacts.util.PhoneCapabilityTester;
@@ -575,9 +575,9 @@
// Build phone entries
entry.data = phone.getFormattedPhoneNumber();
final Intent phoneIntent = mHasPhone ?
- ContactsUtils.getCallIntent(entry.data) : null;
+ CallUtil.getCallIntent(entry.data) : null;
final Intent smsIntent = mHasSms ? new Intent(Intent.ACTION_SENDTO,
- Uri.fromParts(Constants.SCHEME_SMSTO, entry.data, null)) : null;
+ Uri.fromParts(CallUtil.SCHEME_SMSTO, entry.data, null)) : null;
// Configure Icons and Intents.
if (mHasPhone && mHasSms) {
@@ -609,7 +609,7 @@
} else if (dataItem instanceof EmailDataItem && hasData) {
// Build email entries
entry.intent = new Intent(Intent.ACTION_SENDTO,
- Uri.fromParts(Constants.SCHEME_MAILTO, entry.data, null));
+ Uri.fromParts(CallUtil.SCHEME_MAILTO, entry.data, null));
entry.isPrimary = isSuperPrimary;
// If entry is a primary entry, then render it first in the view.
if (entry.isPrimary) {
@@ -680,8 +680,8 @@
// Build SipAddress entries
entry.uri = null;
if (mHasSip) {
- entry.intent = ContactsUtils.getCallIntent(
- Uri.fromParts(Constants.SCHEME_SIP, entry.data, null));
+ entry.intent = CallUtil.getCallIntent(
+ Uri.fromParts(CallUtil.SCHEME_SIP, entry.data, null));
} else {
entry.intent = null;
}
@@ -990,7 +990,7 @@
if (!TextUtils.isEmpty(host)) {
final String authority = host.toLowerCase();
- final Uri imUri = new Uri.Builder().scheme(Constants.SCHEME_IMTO).authority(
+ final Uri imUri = new Uri.Builder().scheme(CallUtil.SCHEME_IMTO).authority(
authority).appendPath(data).build();
entry.intent = new Intent(Intent.ACTION_SENDTO, imUri);
}
@@ -1955,7 +1955,7 @@
}
} else if (mPrimaryPhoneUri != null) {
// There isn't anything selected, call the default number
- mContext.startActivity(ContactsUtils.getCallIntent(mPrimaryPhoneUri));
+ mContext.startActivity(CallUtil.getCallIntent(mPrimaryPhoneUri));
return true;
}
return false;
diff --git a/src/com/android/contacts/interactions/PhoneNumberInteraction.java b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
index 551eab4..12ab431 100644
--- a/src/com/android/contacts/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
@@ -46,6 +46,7 @@
import android.widget.ListAdapter;
import android.widget.TextView;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.Collapser;
import com.android.contacts.Collapser.Collapsible;
import com.android.contacts.ContactSaveService;
@@ -330,7 +331,7 @@
Intent.ACTION_SENDTO, Uri.fromParts("sms", phoneNumber, null));
break;
default:
- intent = ContactsUtils.getCallIntent(phoneNumber, callOrigin);
+ intent = CallUtil.getCallIntent(phoneNumber, callOrigin);
break;
}
context.startActivity(intent);
diff --git a/src/com/android/contacts/list/ShortcutIntentBuilder.java b/src/com/android/contacts/list/ShortcutIntentBuilder.java
index 1578524..447328b 100644
--- a/src/com/android/contacts/list/ShortcutIntentBuilder.java
+++ b/src/com/android/contacts/list/ShortcutIntentBuilder.java
@@ -40,8 +40,8 @@
import android.text.TextUtils;
import android.text.TextUtils.TruncateAt;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.R;
-import com.android.contacts.util.Constants;
/**
* Constructs shortcut intents.
@@ -293,11 +293,11 @@
Uri phoneUri;
if (Intent.ACTION_CALL.equals(shortcutAction)) {
// Make the URI a direct tel: URI so that it will always continue to work
- phoneUri = Uri.fromParts(Constants.SCHEME_TEL, phoneNumber, null);
+ phoneUri = Uri.fromParts(CallUtil.SCHEME_TEL, phoneNumber, null);
bitmap = generatePhoneNumberIcon(bitmap, phoneType, phoneLabel,
R.drawable.badge_action_call);
} else {
- phoneUri = Uri.fromParts(Constants.SCHEME_SMSTO, phoneNumber, null);
+ phoneUri = Uri.fromParts(CallUtil.SCHEME_SMSTO, phoneNumber, null);
bitmap = generatePhoneNumberIcon(bitmap, phoneType, phoneLabel,
R.drawable.badge_action_sms);
}
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index c10c338..02c792d 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -28,6 +28,7 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.ContactsUtils;
import com.android.contacts.R;
import com.android.contacts.model.account.AccountType.EditType;
@@ -39,7 +40,6 @@
import com.android.contacts.model.dataitem.SipAddressDataItem;
import com.android.contacts.model.dataitem.StructuredPostalDataItem;
import com.android.contacts.model.dataitem.WebsiteDataItem;
-import com.android.contacts.util.Constants;
import com.android.contacts.util.PhoneCapabilityTester;
import com.android.contacts.util.StructuredPostalUtils;
@@ -110,10 +110,10 @@
final String number = phone.getNumber();
if (!TextUtils.isEmpty(number)) {
- final Intent phoneIntent = hasPhone ? ContactsUtils.getCallIntent(number)
+ final Intent phoneIntent = hasPhone ? CallUtil.getCallIntent(number)
: null;
final Intent smsIntent = hasSms ? new Intent(Intent.ACTION_SENDTO,
- Uri.fromParts(Constants.SCHEME_SMSTO, number, null)) : null;
+ Uri.fromParts(CallUtil.SCHEME_SMSTO, number, null)) : null;
// Configure Icons and Intents. Notice actionIcon is already set to the phone
if (hasPhone && hasSms) {
@@ -133,8 +133,8 @@
final SipAddressDataItem sip = (SipAddressDataItem) item;
final String address = sip.getSipAddress();
if (!TextUtils.isEmpty(address)) {
- final Uri callUri = Uri.fromParts(Constants.SCHEME_SIP, address, null);
- mIntent = ContactsUtils.getCallIntent(callUri);
+ final Uri callUri = Uri.fromParts(CallUtil.SCHEME_SIP, address, null);
+ mIntent = CallUtil.getCallIntent(callUri);
// Note that this item will get a SIP-specific variant
// of the "call phone" icon, rather than the standard
// app icon for the Phone app (which we show for
@@ -147,7 +147,7 @@
final EmailDataItem email = (EmailDataItem) item;
final String address = email.getData();
if (!TextUtils.isEmpty(address)) {
- final Uri mailUri = Uri.fromParts(Constants.SCHEME_MAILTO, address, null);
+ final Uri mailUri = Uri.fromParts(CallUtil.SCHEME_MAILTO, address, null);
mIntent = new Intent(Intent.ACTION_SENDTO, mailUri);
}
@@ -182,7 +182,7 @@
if (!TextUtils.isEmpty(host) && !TextUtils.isEmpty(data)) {
final String authority = host.toLowerCase();
- final Uri imUri = new Uri.Builder().scheme(Constants.SCHEME_IMTO).authority(
+ final Uri imUri = new Uri.Builder().scheme(CallUtil.SCHEME_IMTO).authority(
authority).appendPath(data).build();
mIntent = new Intent(Intent.ACTION_SENDTO, imUri);
diff --git a/src/com/android/contacts/util/ClipboardUtils.java b/src/com/android/contacts/util/ClipboardUtils.java
deleted file mode 100644
index 1d0a3c1..0000000
--- a/src/com/android/contacts/util/ClipboardUtils.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.util;
-
-import android.content.ClipData;
-import android.content.ClipboardManager;
-import android.content.Context;
-import android.text.TextUtils;
-import android.widget.Toast;
-
-import com.android.contacts.R;
-
-public class ClipboardUtils {
- private static final String TAG = "ClipboardUtils";
-
- private ClipboardUtils() { }
-
- /**
- * Copy a text to clipboard.
- *
- * @param context Context
- * @param label Label to show to the user describing this clip.
- * @param text Text to copy.
- * @param showToast If {@code true}, a toast is shown to the user.
- */
- public static void copyText(Context context, CharSequence label, CharSequence text,
- boolean showToast) {
- if (TextUtils.isEmpty(text)) return;
-
- ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(
- Context.CLIPBOARD_SERVICE);
- ClipData clipData = ClipData.newPlainText(label == null ? "" : label, text);
- clipboardManager.setPrimaryClip(clipData);
-
- if (showToast) {
- String toastText = context.getString(R.string.toast_text_copied);
- Toast.makeText(context, toastText, Toast.LENGTH_SHORT).show();
- }
- }
-}
diff --git a/src/com/android/contacts/util/Constants.java b/src/com/android/contacts/util/Constants.java
index eb68f5a..17e9c0c 100644
--- a/src/com/android/contacts/util/Constants.java
+++ b/src/com/android/contacts/util/Constants.java
@@ -19,12 +19,6 @@
public class Constants {
public static final String MIME_TYPE_VIDEO_CHAT = "vnd.android.cursor.item/video-chat-address";
- public static final String SCHEME_TEL = "tel";
- public static final String SCHEME_SMSTO = "smsto";
- public static final String SCHEME_MAILTO = "mailto";
- public static final String SCHEME_IMTO = "imto";
- public static final String SCHEME_SIP = "sip";
-
/**
* Log tag for performance measurement.
* To enable: adb shell setprop log.tag.ContactsPerf VERBOSE
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index 421341c..13259f9 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -24,6 +24,7 @@
import android.net.sip.SipManager;
import android.telephony.TelephonyManager;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.R;
import java.util.List;
@@ -78,7 +79,7 @@
public static boolean isSmsIntentRegistered(Context context) {
// Don't cache the result as the user might install third party apps to send SMS
final Intent intent = new Intent(Intent.ACTION_SENDTO,
- Uri.fromParts(Constants.SCHEME_SMSTO, "", null));
+ Uri.fromParts(CallUtil.SCHEME_SMSTO, "", null));
return isIntentRegistered(context, intent);
}