OSDN Git Service

Trebuchet: Do not crash if normalized string for sorting is empty
authorVitaliy Tomin <highwaystar.ru@gmail.com>
Wed, 26 Apr 2017 07:25:20 +0000 (15:25 +0800)
committerAdrian DC <radian.dc@gmail.com>
Wed, 26 Apr 2017 08:32:46 +0000 (08:32 +0000)
* Fixes emty string leads to
 java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=1
  at java.lang.String.substring(String.java:1931)
at com.android.launcher3.compat.BaseAlphabeticIndex.getBucketIndex(AlphabeticIndexCompat.java:38)

Change-Id: I9879b33e02a67aed4fb63e85921a51551c2ef208

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

index 0d249c0..ee1f4d5 100644 (file)
@@ -35,6 +35,9 @@ class BaseAlphabeticIndex {
         }
         String asciiName = Normalizer.normalize(s, Normalizer.Form.NFD)
             .replaceAll("[^\\p{ASCII}]", "");
+        if (asciiName.isEmpty()) {
+            return UNKNOWN_BUCKET_INDEX;
+        }
         int index = BUCKETS.indexOf(asciiName.substring(0, 1).toUpperCase());
         if (index != -1) {
             return index;