3
0
Fork 0

Merge "Fix handwriting trigger fail even isAutoHandwritingEnabled is true" into main

This commit is contained in:
Justin Ghan 2024-09-23 20:24:57 +00:00 committed by Android (Google) Code Review
commit 22802400fd
2 changed files with 19 additions and 5 deletions

View File

@ -168,3 +168,13 @@ flag {
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
}
}

View File

@ -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 @@ public class HandwritingInitiator {
final View focusedView = getFocusedView();
if (!view.isAutoHandwritingEnabled()) {
if (!handwritingTrackDisabled() && !view.isAutoHandwritingEnabled()) {
clearFocusedView(focusedView);
return;
}
@ -363,7 +364,8 @@ public class HandwritingInitiator {
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 @@ public class HandwritingInitiator {
*/
@VisibleForTesting
public boolean updateFocusedView(@NonNull View view) {
if (!view.shouldInitiateHandwriting()) {
if (!handwritingTrackDisabled() && !view.shouldInitiateHandwriting()) {
mFocusedView = null;
return false;
}
@ -424,8 +426,10 @@ public class HandwritingInitiator {
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;