OSDN Git Service

Trebuchet: use normalized strings for sorting into bucket
authorgismo2004 <reumuellermarkus@gmail.com>
Sun, 2 Apr 2017 13:11:54 +0000 (15:11 +0200)
committerDan Pasanen <dan.pasanen@gmail.com>
Tue, 25 Apr 2017 14:53:20 +0000 (14:53 +0000)
converts letters like \u00c4,\u00d6,\u00dc to A,O,U

Change-Id: Ie15d2bf9e1212f5e90b27359032503f641f664a4

src/com/android/launcher3/compat/AlphabeticIndexCompat.java

index c6135e1..0d249c0 100644 (file)
@@ -5,6 +5,7 @@ import com.android.launcher3.Utilities;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
+import java.text.Normalizer;
 import java.util.Locale;
 
 /**
@@ -32,7 +33,9 @@ class BaseAlphabeticIndex {
         if (s.isEmpty()) {
             return UNKNOWN_BUCKET_INDEX;
         }
-        int index = BUCKETS.indexOf(s.substring(0, 1).toUpperCase());
+        String asciiName = Normalizer.normalize(s, Normalizer.Form.NFD)
+            .replaceAll("[^\\p{ASCII}]", "");
+        int index = BUCKETS.indexOf(asciiName.substring(0, 1).toUpperCase());
         if (index != -1) {
             return index;
         }