diff --git a/leankeykeyboard/src/main/java/com/google/android/leanback/ime/LeanbackKeyboardView.java b/leankeykeyboard/src/main/java/com/google/android/leanback/ime/LeanbackKeyboardView.java
index 021a615..28b5ed1 100644
--- a/leankeykeyboard/src/main/java/com/google/android/leanback/ime/LeanbackKeyboardView.java
+++ b/leankeykeyboard/src/main/java/com/google/android/leanback/ime/LeanbackKeyboardView.java
@@ -124,25 +124,33 @@ public class LeanbackKeyboardView extends FrameLayout {
}
private CharSequence getSpecialLowerCase(CharSequence label) {
- String realLabel = label.toString();
- if (realLabel.contains("|")) {
- String[] labels = realLabel.split("\\|");
- return labels[0];
+ String[] labels = splitLabels(label);
+
+ if (labels != null) {
+ return labels[0]; // lower case char
}
return label.toString().toLowerCase();
}
private CharSequence getSpecialUpperCase(CharSequence label) {
- String realLabel = label.toString();
- if (realLabel.contains("|")) {
- String[] labels = realLabel.split("\\|");
- return labels[1];
+ String[] labels = splitLabels(label);
+
+ if (labels != null) {
+ return labels[1]; // upper case char
}
return label.toString().toUpperCase();
}
+ private String[] splitLabels(CharSequence label) {
+ String realLabel = label.toString();
+
+ String[] labels = realLabel.split("\\|");
+
+ return labels.length == 2 ? labels : null; // remember, we encoding two chars
+ }
+
@SuppressLint("NewApi")
private ImageView createKeyImageView(final int keyIndex) {
Rect padding = mPadding;
diff --git a/leankeykeyboard/src/main/res/xml/qwerty_th.xml b/leankeykeyboard/src/main/res/xml/qwerty_th.xml
index f9736af..aff1142 100644
--- a/leankeykeyboard/src/main/res/xml/qwerty_th.xml
+++ b/leankeykeyboard/src/main/res/xml/qwerty_th.xml
@@ -17,7 +17,9 @@
-
+
+
+