summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/compat
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2015-05-11 22:12:38 -0700
committerWinson Chung <winsonc@google.com>2015-05-12 21:19:32 +0000
commita3499dc019a677efb008d926b2cd9a5ad0bc0ca0 (patch)
treef4a15e24a57e149f53f9964c8f99978580baaaf6 /src/com/android/launcher3/compat
parentf6d7f4f21c4d3efa08084d3caaa1a19660ca5777 (diff)
downloadandroid_packages_apps_Trebuchet-a3499dc019a677efb008d926b2cd9a5ad0bc0ca0.tar.gz
android_packages_apps_Trebuchet-a3499dc019a677efb008d926b2cd9a5ad0bc0ca0.tar.bz2
android_packages_apps_Trebuchet-a3499dc019a677efb008d926b2cd9a5ad0bc0ca0.zip
Tweaking section processing for different languages
- Ensuring that apps with non-letter/digit characters are ordered last in the misc bucket - Removing duplicate latin-alphabet sections for Simplified Chinese - Adding more appropriate misc bucket label for Japanese Bug 21022854 Change-Id: I62c7b219820ef88787fcfa83f1bd4202f16f9c0c
Diffstat (limited to 'src/com/android/launcher3/compat')
-rw-r--r--src/com/android/launcher3/compat/AlphabeticIndexCompat.java27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/com/android/launcher3/compat/AlphabeticIndexCompat.java b/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
index 18cdc81f3..ec1fb669f 100644
--- a/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
+++ b/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
@@ -52,12 +52,15 @@ class BaseAlphabeticIndex {
*/
public class AlphabeticIndexCompat extends BaseAlphabeticIndex {
+ private static final String MID_DOT = "\u2219";
+
private Object mAlphabeticIndex;
private Method mAddLabelsMethod;
private Method mSetMaxLabelCountMethod;
private Method mGetBucketIndexMethod;
private Method mGetBucketLabelMethod;
private boolean mHasValidAlphabeticIndex;
+ private String mDefaultMiscLabel;
public AlphabeticIndexCompat(Context context) {
super();
@@ -72,12 +75,20 @@ public class AlphabeticIndexCompat extends BaseAlphabeticIndex {
mAlphabeticIndex = ctor.newInstance(curLocale);
try {
// Ensure we always have some base English locale buckets
- if (!curLocale.getLanguage().equals(new Locale("en").getLanguage())) {
+ if (!curLocale.getLanguage().equals(Locale.ENGLISH.getLanguage())) {
mAddLabelsMethod.invoke(mAlphabeticIndex, Locale.ENGLISH);
}
} catch (Exception e) {
e.printStackTrace();
}
+ if (curLocale.getLanguage().equals(Locale.JAPANESE.getLanguage())) {
+ // Japanese character 他 ("misc")
+ mDefaultMiscLabel = "\u4ed6";
+ // TODO(winsonc, omakoto): We need to handle Japanese sections better, especially the kanji
+ } else {
+ // Dot
+ mDefaultMiscLabel = MID_DOT;
+ }
mHasValidAlphabeticIndex = true;
} catch (Exception e) {
mHasValidAlphabeticIndex = false;
@@ -107,13 +118,21 @@ public class AlphabeticIndexCompat extends BaseAlphabeticIndex {
String s = Utilities.trim(cs);
String sectionName = getBucketLabel(getBucketIndex(s));
if (Utilities.trim(sectionName).isEmpty() && s.length() > 0) {
- boolean startsWithDigit = Character.isDigit(s.codePointAt(0));
+ int c = s.codePointAt(0);
+ boolean startsWithDigit = Character.isDigit(c);
if (startsWithDigit) {
// Digit section
return "#";
} else {
- // Unknown section
- return "\u2022";
+ boolean startsWithLetter = Character.isLetter(c);
+ if (startsWithLetter) {
+ return mDefaultMiscLabel;
+ } else {
+ // In languages where these differ, this ensures that we differentiate
+ // between the misc section in the native language and a misc section
+ // for everything else.
+ return MID_DOT;
+ }
}
}
return sectionName;