diff options
| author | 2024-07-31 23:27:54 +0000 | |
|---|---|---|
| committer | 2024-07-31 23:27:54 +0000 | |
| commit | 2d09bcdbdcd43f312b97bfaa7c2db0aec2fbe41c (patch) | |
| tree | f88feadadcef30fdf8f301684903586c22803037 | |
| parent | 59fb05abd5bf97f3f56116858391ba25d35d30f7 (diff) | |
| parent | 341bd2b47e47b408aa355adb9327526a93bd19c9 (diff) | |
Merge "Notify focus view to HandwritingInitiator after inputType changes." into main
| -rw-r--r-- | core/java/android/widget/TextView.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 9099db8d7e66..ac899f4c2b5e 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -31,6 +31,7 @@ import static android.view.inputmethod.EditorInfo.STYLUS_HANDWRITING_ENABLED_AND import static com.android.text.flags.Flags.FLAG_FIX_LINE_HEIGHT_FOR_LOCALE; import static com.android.text.flags.Flags.FLAG_USE_BOUNDS_FOR_WIDTH; +import static android.view.inputmethod.Flags.initiationWithoutInputConnection; import android.R; import android.annotation.CallSuper; @@ -2738,6 +2739,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener InputMethodManager imm = getInputMethodManager(); if (imm != null) imm.restartInput(this); + + ensureEditorFocusedNotifiedToHandwritingInitiator(); } private void setInputTypeFromEditor() { @@ -7843,6 +7846,20 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (type == InputType.TYPE_NULL && mEditor == null) return; //TYPE_NULL is the default value createEditorIfNeeded(); mEditor.mInputType = type; + ensureEditorFocusedNotifiedToHandwritingInitiator(); + } + + private void ensureEditorFocusedNotifiedToHandwritingInitiator() { + if (!initiationWithoutInputConnection() || isHandwritingDelegate()) { + return; + } + ViewRootImpl viewRoot = getViewRootImpl(); + if (viewRoot == null) { + return; + } + if (isFocused() && hasWindowFocus() && onCheckIsTextEditor()) { + viewRoot.getHandwritingInitiator().onEditorFocused(this); + } } @Override |