From ed54866ba660ace7887dc134e64756324da6bda2 Mon Sep 17 00:00:00 2001 From: Yuichiro Hanada Date: Fri, 7 Feb 2020 15:00:46 +0900 Subject: [PATCH] Fix TextView.shouldAdvanceFocusOnTab(). EditorInfo.TYPE_TEXT_FLAG_{IME_,}MULTI_LINE are outside of EditorInfo.TYPE_MASK_VARIATION. It causes shouldAdvanceFocusOnTab return true always. Bug: 37066224 Test: manual - Tab key on multiline text input inserts a tab character. Test: atest TextViewTest#testKeyNavigation Change-Id: I913cda40206d1c39e6844ff1be38e069488df4f4 --- core/java/android/widget/TextView.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 469ab2ee8f4a2..0182975c13c0b 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8282,9 +8282,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (getKeyListener() != null && !mSingleLine && mEditor != null && (mEditor.mInputType & EditorInfo.TYPE_MASK_CLASS) == EditorInfo.TYPE_CLASS_TEXT) { - int variation = mEditor.mInputType & EditorInfo.TYPE_MASK_VARIATION; - if (variation == EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE - || variation == EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) { + int multilineFlags = EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE + | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE; + if ((mEditor.mInputType & multilineFlags) != 0) { return false; } }