Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[webview_flutter] Support Flutter TextInputs #1852

Merged
merged 2 commits into from
Jul 15, 2019
Merged

[webview_flutter] Support Flutter TextInputs #1852

merged 2 commits into from
Jul 15, 2019

Conversation

mklim
Copy link
Contributor

@mklim mklim commented Jul 15, 2019

Description

Adds logic to InputAwareWebView#clearFocus to reset input creation
back to the container view's thread whenever the WebView is unfocused.
Fixes issue where Flutter UIs could no longer receive InputConnections
because WebView was causing all connections to happen on WebView's IME
thread.

Manually tested using mklim/plugins@928c790.

Related Issues

flutter/flutter#19718

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
  • All existing and new tests are passing.
  • I updated/added relevant documentation (doc comments with ///).
  • The analyzer (flutter analyze) does not report any problems on my PR.
  • I read and followed the Flutter Style Guide.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
  • I updated CHANGELOG.md to add a description of the change.
  • I signed the CLA.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
  • No, this is not a breaking change.

Adds logic to `InputAwareWebView#clearFocus` to reset input creation
back to the container view's thread whenever the WebView is unfocused.
Fixes issue where Flutter UIs could no longer receive InputConnections
because WebView was causing all connections to happen on WebView's IME
thread.
@mklim mklim requested a review from amirh July 15, 2019 18:14
@mklim mklim requested a review from iskakaushik as a code owner July 15, 2019 18:14
* longer has focus.
*
* <p>The logic in {@link #checkInputConnectionProxy} forces input creation to happen on Webview's
* thread for all connections. We undo it here so usres will be able to go back to typing in
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit typo: users

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

new Runnable() {
@Override
public void run() {
containerView.onWindowFocusChanged(true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about only do this if we've set the ThreadedInputConnectionProxyAdapterView as the input target?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. done.

new Runnable() {
@Override
public void run() {
containerView.onWindowFocusChanged(true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit, can definitely happen in a different PR]
We're repeating this magic sequence in more than one place, this specific call site isn't document so someone stepping into this code will probably be confused. Would probably be useful to extract these steps to a common method.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll clean it up in #1853.

Copy link
Contributor

@amirh amirh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mklim mklim merged commit 849ec43 into flutter:master Jul 15, 2019
@mklim mklim deleted the webview_textinput branch July 15, 2019 21:57
mithun-mondal pushed a commit to bKash-developer/archived_plugins that referenced this pull request Aug 6, 2019
[webview_flutter] Support Flutter `TextInput`s

Adds logic to `InputAwareWebView#clearFocus` to reset input creation
back to the container view's thread whenever the WebView is unfocused.
Fixes issue where Flutter UIs could no longer receive InputConnections
because WebView was causing all connections to happen on WebView's IME
thread.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants