diff options
author | Dmitri Plotnikov <dplotnikov@google.com> | 2010-03-23 10:58:07 -0700 |
---|---|---|
committer | Dmitri Plotnikov <dplotnikov@google.com> | 2010-03-23 10:58:07 -0700 |
commit | 3b10d3a1ed1052dcdf529da370cb71b74164b158 (patch) | |
tree | f75043bc57bbf92ae945d018dde7c2e592c2f741 | |
parent | d5a176cfe6d8701ae8b7882596711e5fc2746be1 (diff) | |
download | ContactsProvider-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.java | 7 | ||||
-rw-r--r-- | tests/src/com/android/providers/contacts/ContactsProvider2Test.java | 8 |
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() { |