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);