Dialer: Fix LetterTileDrawable for all languages
* Currently alphabet tile is rendered only for english language.
However, Google Dialer / Googler Contacts do support rendering
for all languages. Let's do same here!
* Also, following Google, we do not want to handle numbers.
* Fixes: https://github.com/crdroidandroid/android_packages_apps_Dialer/issues/9
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Pranav Temkar <pranavtemkar@gmail.com>
Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
diff --git a/java/com/android/dialer/lettertile/LetterTileDrawable.java b/java/com/android/dialer/lettertile/LetterTileDrawable.java
index 583731e..282a1c8 100644
--- a/java/com/android/dialer/lettertile/LetterTileDrawable.java
+++ b/java/com/android/dialer/lettertile/LetterTileDrawable.java
@@ -176,10 +176,6 @@
}
}
- private static boolean isEnglishLetter(final char c) {
- return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
- }
-
@Override
public void draw(@NonNull final Canvas canvas) {
final Rect bounds = getBounds();
@@ -336,7 +332,8 @@
private LetterTileDrawable setLetterAndColorFromContactDetails(
final String displayName, final String identifier) {
- if (!TextUtils.isEmpty(displayName) && isEnglishLetter(displayName.charAt(0))) {
+ if (displayName != null && !TextUtils.isEmpty(displayName)
+ && Character.isLetter(displayName.charAt(0))) {
letter = Character.toUpperCase(displayName.charAt(0));
} else {
letter = null;