Few improvements for Companion widget APIs

1. reset ViewRootImpl#mLastClickToolType for KeyEvents
2. move EditorInfo#mInitialToolType initialization so we dont
   explicitly hold lock for one line of code.

Bug: 233108064
Test: atest CtsInputMethodTestCases

Change-Id: I76d3c4c14928a2eb4c1cda48dd3b9a866963d06f
This commit is contained in:
Taran Singh
2022-08-04 11:38:32 -07:00
parent 688a65880d
commit ec9266d4ac
2 changed files with 8 additions and 3 deletions

View File

@@ -6403,6 +6403,12 @@ public final class ViewRootImpl implements ViewParent,
// Make sure the fallback event policy sees all keys that will be
// delivered to the view hierarchy.
mFallbackEventHandler.preDispatchKeyEvent(event);
// Reset last tracked MotionEvent click toolType.
if (event.getAction() == KeyEvent.ACTION_DOWN) {
mLastClickToolType = MotionEvent.TOOL_TYPE_UNKNOWN;
}
return FORWARD;
}

View File

@@ -2341,9 +2341,6 @@ public final class InputMethodManager {
editorInfo.packageName = view.getContext().getOpPackageName();
editorInfo.autofillId = view.getAutofillId();
editorInfo.fieldId = view.getId();
synchronized (mH) {
editorInfo.setInitialToolType(mCurRootView.getLastClickToolType());
}
InputConnection ic = view.onCreateInputConnection(editorInfo);
if (DEBUG) Log.v(TAG, "Starting input: editorInfo=" + editorInfo + " ic=" + ic);
@@ -2383,6 +2380,8 @@ public final class InputMethodManager {
startInputFlags |= StartInputFlags.INITIAL_CONNECTION;
}
editorInfo.setInitialToolType(mCurRootView.getLastClickToolType());
// Hook 'em up and let 'er rip.
mCurrentEditorInfo = editorInfo.createCopyInternal();
// Store the previously served connection so that we can determine whether it is safe