summaryrefslogtreecommitdiff
path: root/core/java/android/view/View.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/View.java')
-rw-r--r--core/java/android/view/View.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 93fdee07b58e..75592730067a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -3517,6 +3517,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* 1 PFLAG4_DETACHED
* 1 PFLAG4_HAS_TRANSLATION_TRANSIENT_STATE
* 1 PFLAG4_DRAG_A11Y_STARTED
+ * 1 PFLAG4_AUTO_HANDWRITING_INITIATION_ENABLED
* |-------|-------|-------|-------|
*/
@@ -3593,6 +3594,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*/
private static final int PFLAG4_DRAG_A11Y_STARTED = 0x000008000;
+ /**
+ * Indicates that the view enables auto handwriting initiation.
+ */
+ private static final int PFLAG4_AUTO_HANDWRITING_ENABLED = 0x000010000;
/* End of masks for mPrivateFlags4 */
/** @hide */
@@ -5321,6 +5326,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
(TEXT_ALIGNMENT_DEFAULT << PFLAG2_TEXT_ALIGNMENT_MASK_SHIFT) |
(PFLAG2_TEXT_ALIGNMENT_RESOLVED_DEFAULT) |
(IMPORTANT_FOR_ACCESSIBILITY_DEFAULT << PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_SHIFT);
+ mPrivateFlags4 = PFLAG4_AUTO_HANDWRITING_ENABLED;
final ViewConfiguration configuration = ViewConfiguration.get(context);
mTouchSlop = configuration.getScaledTouchSlop();
@@ -6034,6 +6040,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
case R.styleable.View_preferKeepClear:
setPreferKeepClear(a.getBoolean(attr, false));
break;
+ case R.styleable.View_autoHandwritingEnabled:
+ setAutoHandwritingEnabled(a.getBoolean(attr, true));
+ break;
}
}
@@ -31118,6 +31127,42 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
/**
+ * Set whether this view enables automatic handwriting initiation.
+ *
+ * For a view with an active {@link InputConnection}, if auto handwriting is enabled then
+ * stylus movement within its view boundary will automatically trigger the handwriting mode.
+ * Check {@link android.view.inputmethod.InputMethodManager#startStylusHandwriting(View)} for
+ * more details about handwriting mode.
+ *
+ * If the View wants to initiate handwriting mode by itself, it can set this field to
+ * {@code false} and call
+ * {@link android.view.inputmethod.InputMethodManager#startStylusHandwriting(View)} when there
+ * is stylus movement detected.
+ *
+ * @see #onCreateInputConnection(EditorInfo)
+ * @see android.view.inputmethod.InputMethodManager#startStylusHandwriting(View)
+ * @param enabled whether auto handwriting initiation is enabled for this view.
+ * @attr ref android.R.styleable#View_autoHandwritingEnabled
+ */
+ public void setAutoHandwritingEnabled(boolean enabled) {
+ if (enabled) {
+ mPrivateFlags4 |= PFLAG4_AUTO_HANDWRITING_ENABLED;
+ } else {
+ mPrivateFlags4 &= ~PFLAG4_AUTO_HANDWRITING_ENABLED;
+ }
+ }
+
+ /**
+ * Return whether the View allows automatic handwriting initiation. Returns true if automatic
+ * handwriting initiation is enabled, and verse visa.
+ * @see #setAutoHandwritingEnabled(boolean)
+ */
+ public boolean isAutoHandwritingEnabled() {
+ return (mPrivateFlags4 & PFLAG4_AUTO_HANDWRITING_ENABLED)
+ == PFLAG4_AUTO_HANDWRITING_ENABLED;
+ }
+
+ /**
* Collects a {@link ViewTranslationRequest} which represents the content to be translated in
* the view.
*