Fixing GTalk-initiated search in contacts. Part I

Bug: 3344700
Change-Id: Iea2bbe27cebc9356a549af9097376165c0920d14
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index ea4fda9..f47d42aa 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -25,6 +25,7 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.SearchManager;
 import android.content.ComponentName;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -122,12 +123,14 @@
         // Handle specific query request
         if (Constants.SCHEME_MAILTO.equals(scheme)) {
             mCreateExtras.putString(Intents.Insert.EMAIL, ssp);
+            mCreateExtras.putString(SearchManager.QUERY, 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)) {
             mCreateExtras.putString(Intents.Insert.PHONE, ssp);
+            mCreateExtras.putString(SearchManager.QUERY, ssp);
 
             Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, ssp);
             mQueryHandler.startQuery(QUERY_TOKEN, null, uri, PHONES_PROJECTION, null, null, null);
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
index 2d75eca..6f3db81 100644
--- a/src/com/android/contacts/list/ContactListItemView.java
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -33,6 +33,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Nickname;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Contacts;
 import android.text.SpannableString;
 import android.text.TextUtils;
@@ -866,10 +867,12 @@
             int summarySnippetData1ColumnIndex, int summarySnippetData4ColumnIndex) {
         String snippet = null;
         String snippetMimeType = cursor.getString(summarySnippetMimetypeColumnIndex);
-        if (Email.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
-            String email = cursor.getString(summarySnippetData1ColumnIndex);
-            if (!TextUtils.isEmpty(email)) {
-                snippet = email;
+        if (Email.CONTENT_ITEM_TYPE.equals(snippetMimeType)
+                || Nickname.CONTENT_ITEM_TYPE.equals(snippetMimeType)
+                || Phone.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
+            String value = cursor.getString(summarySnippetData1ColumnIndex);
+            if (!TextUtils.isEmpty(value)) {
+                snippet = value;
             }
         } else if (Organization.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
             String company = cursor.getString(summarySnippetData1ColumnIndex);
@@ -883,11 +886,6 @@
             } else if (!TextUtils.isEmpty(title)) {
                 snippet = title;
             }
-        } else if (Nickname.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
-            String nickname = cursor.getString(summarySnippetData1ColumnIndex);
-            if (!TextUtils.isEmpty(nickname)) {
-                snippet = nickname;
-            }
         }
 
         setSnippet(snippet);