Add "Send SMS" shortcut to Dialer.
Bug: 19372539
Change-Id: I8135a7e6fb7d5becdafcb0ecfb64d6f6c73aeb88
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 13bf845..2b100f6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -505,6 +505,9 @@
<!-- Shortcut item used to add a number directly from search -->
<string name="search_shortcut_add_to_contacts">Add to contacts</string>
+ <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=40] -->
+ <string name="search_shortcut_send_sms_message">Send SMS</string>
+
<!-- Shortcut item used to make a video call directly from search. -->
<string name="search_shortcut_make_video_call">Make video call</string>
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
index da4f4a4..86e8528 100644
--- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -28,9 +28,10 @@
public final static int SHORTCUT_INVALID = -1;
public final static int SHORTCUT_DIRECT_CALL = 0;
public final static int SHORTCUT_ADD_NUMBER_TO_CONTACTS = 1;
- public final static int SHORTCUT_MAKE_VIDEO_CALL = 2;
+ public final static int SHORTCUT_SEND_SMS_MESSAGE = 2;
+ public final static int SHORTCUT_MAKE_VIDEO_CALL = 3;
- public final static int SHORTCUT_COUNT = 3;
+ public final static int SHORTCUT_COUNT = 4;
private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
@@ -146,6 +147,10 @@
text = resources.getString(R.string.search_shortcut_add_to_contacts);
drawableId = R.drawable.ic_search_add_contact;
break;
+ case SHORTCUT_SEND_SMS_MESSAGE:
+ text = resources.getString(R.string.search_shortcut_send_sms_message);
+ drawableId = R.drawable.ic_textsms_24dp;
+ break;
case SHORTCUT_MAKE_VIDEO_CALL:
text = resources.getString(R.string.search_shortcut_make_video_call);
drawableId = R.drawable.ic_videocam;
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index e50d0d8..ba01438 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -18,6 +18,7 @@
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
+import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
@@ -38,6 +39,7 @@
import com.android.phone.common.animation.AnimUtils;
public class SearchFragment extends PhoneNumberPickerFragment {
+ private static final String SMS_URI_PREFIX = "sms:";
private OnListFragmentScrolledListener mActivityScrollListener;
@@ -168,6 +170,11 @@
DialerUtils.startActivityWithErrorToast(getActivity(), intent,
R.string.add_contact_not_available);
break;
+ case DialerPhoneNumberListAdapter.SHORTCUT_SEND_SMS_MESSAGE:
+ final Intent sendSmsIntent = new Intent(
+ Intent.ACTION_VIEW, Uri.parse(SMS_URI_PREFIX + getQueryString()));
+ DialerUtils.startActivityWithErrorToast(getActivity(), sendSmsIntent);
+ break;
case DialerPhoneNumberListAdapter.SHORTCUT_MAKE_VIDEO_CALL:
listener = getOnPhoneNumberPickerListener();
if (listener != null) {
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index db96682..3696fb9 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -117,6 +117,7 @@
final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
boolean changed = false;
changed |= setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
+ changed |= setShortcutEnabled(SHORTCUT_SEND_SMS_MESSAGE, showNumberShortcuts);
changed |= setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
if (changed) {