summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Justin Ghan <justinghan@google.com> 2024-10-01 16:50:00 -0700
committer Justin Ghan <justinghan@google.com> 2024-10-01 16:50:00 -0700
commit26f96a62f3c20a997e225453d370f943b048b735 (patch)
tree2a557de5a1f9f723c25f15071fde2edb2c24785b
parent5db396ab0714ae81f506dc6e98f10ce9a5325b14 (diff)
Check getShowSoftInputOnFocus() for stylus input
When there is stylus input on a text editor which doesn't support handwriting, a toast error message is displayed and the soft keyboard is shown. However, if the text editor has setShowSoftInputOnFocus(false), then this should be respected by not showing the soft keyboard. Bug: 363180475 Test: atest StylusHandwritingTest Flag: com.android.text.flags.handwriting_unsupported_show_soft_input_fix Change-Id: I906fe51586d173dee37395b63c33632e94af6af4
-rw-r--r--core/java/android/text/flags/flags.aconfig10
-rw-r--r--core/java/android/view/HandwritingInitiator.java7
2 files changed, 16 insertions, 1 deletions
diff --git a/core/java/android/text/flags/flags.aconfig b/core/java/android/text/flags/flags.aconfig
index 3599332af955..ec5b488ccbbd 100644
--- a/core/java/android/text/flags/flags.aconfig
+++ b/core/java/android/text/flags/flags.aconfig
@@ -178,3 +178,13 @@ flag {
purpose: PURPOSE_BUGFIX
}
}
+
+flag {
+ name: "handwriting_unsupported_show_soft_input_fix"
+ namespace: "text"
+ description: "Don't show soft keyboard on stylus input if text field doesn't support handwriting and getShowSoftInputOnFocus() returns false."
+ bug: "363180475"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/core/java/android/view/HandwritingInitiator.java b/core/java/android/view/HandwritingInitiator.java
index f1329635f16c..c2179997a92d 100644
--- a/core/java/android/view/HandwritingInitiator.java
+++ b/core/java/android/view/HandwritingInitiator.java
@@ -19,6 +19,7 @@ package android.view;
import static com.android.text.flags.Flags.handwritingCursorPosition;
import static com.android.text.flags.Flags.handwritingTrackDisabled;
import static com.android.text.flags.Flags.handwritingUnsupportedMessage;
+import static com.android.text.flags.Flags.handwritingUnsupportedShowSoftInputFix;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
@@ -241,7 +242,11 @@ public class HandwritingInitiator {
if (!candidateView.hasFocus()) {
requestFocusWithoutReveal(candidateView);
}
- mImm.showSoftInput(candidateView, 0);
+ if (!handwritingUnsupportedShowSoftInputFix()
+ || (candidateView instanceof TextView tv
+ && tv.getShowSoftInputOnFocus())) {
+ mImm.showSoftInput(candidateView, 0);
+ }
mState.mHandled = true;
mState.mShouldInitHandwriting = false;
motionEvent.setAction((motionEvent.getAction()