diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 14 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/define/ProductionFlags.java | 29 |
2 files changed, 31 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index dd0060f4a..b641f3a8b 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -55,6 +55,7 @@ import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.accessibility.AccessibilityUtils; import com.android.inputmethod.annotations.UsedForTesting; +import com.android.inputmethod.compat.InputConnectionCompatUtils; import com.android.inputmethod.compat.InputMethodServiceCompatUtils; import com.android.inputmethod.dictionarypack.DictionaryPackConstants; import com.android.inputmethod.event.Event; @@ -413,11 +414,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen if (latinIme != null) { executePendingImsCallback(latinIme, editorInfo, restarting); latinIme.onStartInputInternal(editorInfo, restarting); - if (ProductionFlags.USES_CURSOR_ANCHOR_MONITOR) { - // Currently we need to call this every time when the IME is attached to - // new application. - // TODO: Consider if we can do this automatically in the framework. - InputMethodServiceCompatUtils.setCursorAnchorMonitorMode(latinIme, 1); + if (ProductionFlags.ENABLE_CURSOR_RECT_CALLBACK) { + InputConnectionCompatUtils.requestCursorRect( + latinIme.getCurrentInputConnection(), true /* enableMonitor */); + } + if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) { + InputConnectionCompatUtils.requestCursorAnchorInfo( + latinIme.getCurrentInputConnection(), true /* enableMonitor */, + true /* requestImmediateCallback */); } } } diff --git a/java/src/com/android/inputmethod/latin/define/ProductionFlags.java b/java/src/com/android/inputmethod/latin/define/ProductionFlags.java index 6dccd789d..d385cf840 100644 --- a/java/src/com/android/inputmethod/latin/define/ProductionFlags.java +++ b/java/src/com/android/inputmethod/latin/define/ProductionFlags.java @@ -23,15 +23,30 @@ public final class ProductionFlags { public static final boolean IS_HARDWARE_KEYBOARD_SUPPORTED = false; - // When true, enable {@link InputMethodService#onUpdateCursor} callback with - // {@link InputMethodService#setCursorAnchorMonitorMode}, which is not yet available in - // API level 19. Do not turn this on in production until the new API becomes publicly - // available. - public static final boolean USES_CURSOR_ANCHOR_MONITOR = false; + /** + * When true, enable {@link InputMethodService#onUpdateCursorAnchorInfo} callback via + * {@link InputConnection#requestCursorAnchorInfo}. This flag has no effect in API Level 20 + * and prior. In general, this callback provides more detailed positional information, + * even though an explicit support is required by the editor. + */ + public static final boolean ENABLE_CURSOR_ANCHOR_INFO_CALLBACK = false; - // Include all suggestions from all dictionaries in {@link SuggestedWords#mRawSuggestions}. + /** + * When true, enable {@link InputMethodService#onUpdateCursor} callback via + * {@link InputConnection#requestCursorAnchorInfo}. Although this callback has been available + * since API Level 3, the callback has never been used until API Level 20. Thus it may or may + * not work well as expected. Should rely on {@link InputMethodService#onUpdateCursorAnchorInfo} + * whenever possible since it is supposed to be more reliable and accurate. + */ + public static final boolean ENABLE_CURSOR_RECT_CALLBACK = false; + + /** + * Include all suggestions from all dictionaries in {@link SuggestedWords#mRawSuggestions}. + */ public static final boolean INCLUDE_RAW_SUGGESTIONS = false; - // When false, the metrics logging is not yet ready to be enabled. + /** + * When false, the metrics logging is not yet ready to be enabled. + */ public static final boolean IS_METRICS_LOGGING_SUPPORTED = false; } |