aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2010-03-23 10:58:07 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2010-03-23 10:58:07 -0700
commit3b10d3a1ed1052dcdf529da370cb71b74164b158 (patch)
treef75043bc57bbf92ae945d018dde7c2e592c2f741
parentd5a176cfe6d8701ae8b7882596711e5fc2746be1 (diff)
downloadContactsProvider-3b10d3a1ed1052dcdf529da370cb71b74164b158.tar.gz
Adding phonetic given name to contact name lookup
Bug: 2536325 Change-Id: I66c03e118cef1ccf9449010752dd6ee76b9305cc
-rw-r--r--src/com/android/providers/contacts/ContactsProvider2.java7
-rw-r--r--tests/src/com/android/providers/contacts/ContactsProvider2Test.java8
2 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index 9f2dbc4f..3a65394f 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -5663,6 +5663,13 @@ public class ContactsProvider2 extends SQLiteContentProvider implements OnAccoun
insertNameLookup(rawContactId, dataId, NameLookupType.NAME_COLLATION_KEY,
NameNormalizer.normalize(mSb.toString()));
}
+
+ if (givenName != null) {
+ // We want the phonetic given name to be used for search, but not for aggregation,
+ // which is why we are using NAME_SHORTHAND rather than NAME_COLLATION_KEY
+ insertNameLookup(rawContactId, dataId, NameLookupType.NAME_SHORTHAND,
+ NameNormalizer.normalize(givenName.trim()));
+ }
}
/**
diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
index 26cc5a6e..520aad8d 100644
--- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
@@ -411,7 +411,8 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test {
ContentValues nameValues = new ContentValues();
nameValues.put(StructuredName.GIVEN_NAME, "Stu");
nameValues.put(StructuredName.FAMILY_NAME, "Goulash");
- nameValues.put(StructuredName.PHONETIC_FAMILY_NAME, "goo-LASH");
+ nameValues.put(StructuredName.PHONETIC_FAMILY_NAME, "goo");
+ nameValues.put(StructuredName.PHONETIC_GIVEN_NAME, "LASH");
insertStructuredName(rawContactId, nameValues);
long contactId = queryContactId(rawContactId);
@@ -421,9 +422,14 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test {
assertStoredValuesWithProjection(filterUri1, values);
assertContactFilter(contactId, "goolash");
+ assertContactFilter(contactId, "lash");
Uri filterUri2 = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI, "goolish");
assertEquals(0, getCount(filterUri2, null, null));
+
+ // Phonetic name with given/family reversed should not match
+ Uri filterUri3 = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI, "lashgoo");
+ assertEquals(0, getCount(filterUri3, null, null));
}
public void testQueryContactStrequent() {