diff options
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 3eaf852b3ac3..8fba58364c94 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8751,6 +8751,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return mEditor != null && mEditor.mInputType != EditorInfo.TYPE_NULL; } + private boolean hasEditorInFocusSearchDirection(@FocusRealDirection int direction) { + final View nextView = focusSearch(direction); + return nextView != null && nextView.onCheckIsTextEditor(); + } + @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { if (onCheckIsTextEditor() && isEnabled()) { @@ -8767,10 +8772,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener outAttrs.imeOptions = EditorInfo.IME_NULL; outAttrs.hintLocales = null; } - if (focusSearch(FOCUS_DOWN) != null) { + if (hasEditorInFocusSearchDirection(FOCUS_DOWN)) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_NEXT; } - if (focusSearch(FOCUS_UP) != null) { + if (hasEditorInFocusSearchDirection(FOCUS_UP)) { outAttrs.imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS; } if ((outAttrs.imeOptions & EditorInfo.IME_MASK_ACTION) |
