Merge "Fix handwriting trigger fail even isAutoHandwritingEnabled is true" into main
diff --git a/core/java/android/text/flags/flags.aconfig b/core/java/android/text/flags/flags.aconfig
index c83285a..3599332 100644
--- a/core/java/android/text/flags/flags.aconfig
+++ b/core/java/android/text/flags/flags.aconfig
@@ -168,3 +168,13 @@
description: "Decouple variation settings, weight and style information from Typeface class"
bug: "361260253"
}
+
+flag {
+ name: "handwriting_track_disabled"
+ namespace: "text"
+ description: "Handwriting initiator tracks focused view even if handwriting is disabled to fix initiation bug."
+ bug: "361256391"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/core/java/android/view/HandwritingInitiator.java b/core/java/android/view/HandwritingInitiator.java
index ab9bd1f..f132963 100644
--- a/core/java/android/view/HandwritingInitiator.java
+++ b/core/java/android/view/HandwritingInitiator.java
@@ -17,6 +17,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 android.annotation.FlaggedApi;
@@ -352,7 +353,7 @@
final View focusedView = getFocusedView();
- if (!view.isAutoHandwritingEnabled()) {
+ if (!handwritingTrackDisabled() && !view.isAutoHandwritingEnabled()) {
clearFocusedView(focusedView);
return;
}
@@ -363,7 +364,8 @@
updateFocusedView(view);
if (mState != null && mState.mPendingFocusedView != null
- && mState.mPendingFocusedView.get() == view) {
+ && mState.mPendingFocusedView.get() == view
+ && (!handwritingTrackDisabled() || view.isAutoHandwritingEnabled())) {
startHandwriting(view);
}
}
@@ -416,7 +418,7 @@
*/
@VisibleForTesting
public boolean updateFocusedView(@NonNull View view) {
- if (!view.shouldInitiateHandwriting()) {
+ if (!handwritingTrackDisabled() && !view.shouldInitiateHandwriting()) {
mFocusedView = null;
return false;
}
@@ -424,8 +426,10 @@
final View focusedView = getFocusedView();
if (focusedView != view) {
mFocusedView = new WeakReference<>(view);
- // A new view just gain focus. By default, we should show hover icon for it.
- mShowHoverIconForConnectedView = true;
+ if (!handwritingTrackDisabled() || view.shouldInitiateHandwriting()) {
+ // A new view just gain focus. By default, we should show hover icon for it.
+ mShowHoverIconForConnectedView = true;
+ }
}
return true;