diff options
author | 2011-07-15 17:15:00 -0700 | |
---|---|---|
committer | 2011-07-15 17:15:00 -0700 | |
commit | 60be1b6ae136d5bd3db204855fbdc81549c1d855 (patch) | |
tree | 907f937157ab7d8c40412d48ddb79f1f7980a568 /java/src | |
parent | 4fc4a7f56743b3668fafb3b29735f554b942d6dc (diff) | |
parent | 2811841ab49b5c380a2e5b7f3e3d009db67f8e0a (diff) | |
download | latinime-60be1b6ae136d5bd3db204855fbdc81549c1d855.tar.gz latinime-60be1b6ae136d5bd3db204855fbdc81549c1d855.tar.xz latinime-60be1b6ae136d5bd3db204855fbdc81549c1d855.zip |
Merge "Honor EditorType's IME_FLAG_NO_EXTRACT_UI and IME_FLAG_NO_FULLSCREEN flags"
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java | 10 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java index bcdcef7dc..194741087 100644 --- a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java @@ -26,12 +26,16 @@ public class EditorInfoCompatUtils { EditorInfo.class, "IME_FLAG_NAVIGATE_NEXT"); private static final Field FIELD_IME_FLAG_NAVIGATE_PREVIOUS = CompatUtils.getField( EditorInfo.class, "IME_FLAG_NAVIGATE_PREVIOUS"); + private static final Field FIELD_IME_FLAG_NO_FULLSCREEN = CompatUtils.getField( + EditorInfo.class, "IME_FLAG_NO_FULLSCREEN"); private static final Field FIELD_IME_ACTION_PREVIOUS = CompatUtils.getField( EditorInfo.class, "IME_ACTION_PREVIOUS"); private static final Integer OBJ_IME_FLAG_NAVIGATE_NEXT = (Integer) CompatUtils .getFieldValue(null, null, FIELD_IME_FLAG_NAVIGATE_NEXT); private static final Integer OBJ_IME_FLAG_NAVIGATE_PREVIOUS = (Integer) CompatUtils .getFieldValue(null, null, FIELD_IME_FLAG_NAVIGATE_PREVIOUS); + private static final Integer OBJ_IME_FLAG_NO_FULLSCREEN = (Integer) CompatUtils + .getFieldValue(null, null, FIELD_IME_FLAG_NO_FULLSCREEN); private static final Integer OBJ_IME_ACTION_PREVIOUS = (Integer) CompatUtils .getFieldValue(null, null, FIELD_IME_ACTION_PREVIOUS); @@ -47,6 +51,12 @@ public class EditorInfoCompatUtils { return (imeOptions & OBJ_IME_FLAG_NAVIGATE_PREVIOUS) != 0; } + public static boolean hasFlagNoFullscreen(int imeOptions) { + if (FIELD_IME_FLAG_NO_FULLSCREEN == null) + return false; + return (imeOptions & OBJ_IME_FLAG_NO_FULLSCREEN) != 0; + } + public static void performEditorActionNext(InputConnection ic) { ic.performEditorAction(EditorInfo.IME_ACTION_NEXT); } diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index ae32a3cad..248f4ddf2 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -894,6 +894,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar @Override public boolean onEvaluateFullscreenMode() { + final EditorInfo ei = getCurrentInputEditorInfo(); + if (ei != null) { + final int imeOptions = ei.imeOptions; + if (EditorInfoCompatUtils.hasFlagNoFullscreen(imeOptions)) + return false; + if ((imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0) + return false; + } final Resources res = mResources; DisplayMetrics dm = res.getDisplayMetrics(); float displayHeight = dm.heightPixels; |