diff options
author | Dmitri Plotnikov <dplotnikov@google.com> | 2009-09-20 16:56:40 -0700 |
---|---|---|
committer | Dmitri Plotnikov <dplotnikov@google.com> | 2009-09-21 09:49:52 -0700 |
commit | f23764675b35b5262a39c79aad8e9842460274b2 (patch) | |
tree | 7c5da61a6713912dc6ace1777e15760169526211 /src/com/android/providers/contacts/NameNormalizer.java | |
parent | d15a13a9b1dfe59dcf7196c6d5d55afe7f25d2a2 (diff) | |
download | ContactsProvider-f23764675b35b5262a39c79aad8e9842460274b2.tar.gz |
No longer relying on the components of structured name for aggregation.
Now parsing display name into tokens and allowing permutations of those.
Bug IDs: 2132657, 2132636, 2089893
Change-Id: Idea256bbec3b82fb229199c6bd6e9d7b145ab075
Diffstat (limited to 'src/com/android/providers/contacts/NameNormalizer.java')
-rw-r--r-- | src/com/android/providers/contacts/NameNormalizer.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/com/android/providers/contacts/NameNormalizer.java b/src/com/android/providers/contacts/NameNormalizer.java index eca40fc0..f40a632a 100644 --- a/src/com/android/providers/contacts/NameNormalizer.java +++ b/src/com/android/providers/contacts/NameNormalizer.java @@ -45,7 +45,7 @@ public class NameNormalizer { * of names. It ignores non-letter characters and removes accents. */ public static String normalize(String name) { - return Hex.encodeHex(sCompressingCollator.getSortKey(lettersOnly(name)), true); + return Hex.encodeHex(sCompressingCollator.getSortKey(lettersAndDigitsOnly(name)), true); } /** @@ -53,7 +53,8 @@ public class NameNormalizer { * of mixed case characters, accents and, if all else is equal, length. */ public static int compareComplexity(String name1, String name2) { - int diff = sComplexityCollator.compare(lettersOnly(name1), lettersOnly(name2)); + int diff = sComplexityCollator.compare(lettersAndDigitsOnly(name1), + lettersAndDigitsOnly(name2)); if (diff != 0) { return diff; } @@ -64,12 +65,12 @@ public class NameNormalizer { /** * Returns a string containing just the letters from the original string. */ - private static String lettersOnly(String name) { + private static String lettersAndDigitsOnly(String name) { char[] letters = name.toCharArray(); int length = 0; for (int i = 0; i < letters.length; i++) { final char c = letters[i]; - if (Character.isLetter(c)) { + if (Character.isLetterOrDigit(c)) { letters[length++] = c; } } |