aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java')
-rw-r--r--java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
index 7eefa221a..43714829a 100644
--- a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
@@ -19,6 +19,7 @@ package com.android.inputmethod.compat;
import android.view.inputmethod.EditorInfo;
import java.lang.reflect.Field;
+import java.util.Locale;
public final class EditorInfoCompatUtils {
// Note that EditorInfo.IME_FLAG_FORCE_ASCII has been introduced
@@ -27,6 +28,8 @@ public final class EditorInfoCompatUtils {
EditorInfo.class, "IME_FLAG_FORCE_ASCII");
private static final Integer OBJ_IME_FLAG_FORCE_ASCII = (Integer) CompatUtils.getFieldValue(
null /* receiver */, null /* defaultValue */, FIELD_IME_FLAG_FORCE_ASCII);
+ private static final Field FIELD_HINT_LOCALES = CompatUtils.getField(
+ EditorInfo.class, "hintLocales");
private EditorInfoCompatUtils() {
// This utility class is not publicly instantiable.
@@ -78,4 +81,15 @@ public final class EditorInfoCompatUtils {
}
return (action != null) ? flags + action : flags.toString();
}
+
+ public static Locale getPrimaryHintLocale(final EditorInfo editorInfo) {
+ if (editorInfo == null) {
+ return null;
+ }
+ final Object localeList = CompatUtils.getFieldValue(editorInfo, null, FIELD_HINT_LOCALES);
+ if (localeList == null) {
+ return null;
+ }
+ return LocaleListCompatUtils.getPrimary(localeList);
+ }
}