aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/providers/contacts/NameNormalizer.java
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2009-09-20 16:56:40 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2009-09-21 09:49:52 -0700
commitf23764675b35b5262a39c79aad8e9842460274b2 (patch)
tree7c5da61a6713912dc6ace1777e15760169526211 /src/com/android/providers/contacts/NameNormalizer.java
parentd15a13a9b1dfe59dcf7196c6d5d55afe7f25d2a2 (diff)
downloadContactsProvider-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.java9
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;
}
}