The flake appears to be coming from the Google Maps plugin. This test
just needs a platform view plugin without the interface method
implemented in general, not Maps specifically. Update it here to avoid
the issue in Maps until that's fixed.
Create a very simple platform view implementation that exercises this
potential bug in order to create a minimal test case with less risk of
causing second order issues like depending on any kind of full package
would cause.
This attempts to reland #40186 and #41220, that were reverted in #41945.
The main modifications from the original PRs are that I predefine the shortcuts and actions maps instead of defining them inline in the build function, and I use a new mapEquals to do a deep comparison so that we don't rebuild modified things if the contents of the map haven't changed.
I also eliminated an operator== and hashCode that were defined on the Actions widget, since widgets shouldn't have those. (it's too bad though: I get an 85% speedup if we leave this in! Too bad it prevents rebuilding of the children...)
Fixes#40101
1. The platform code to show the keyboard wasn't working on certain
devices. From my testing it appears to be related to when the code was
firing. IMM won't show the soft input (or shows and then immediately
hides it, it's hard to tell) if it's called before the Flutter UI is
loaded. Change this to instead show the soft keyboard after a message
from Flutter that main() has been started.
2. A text field was visible in the UI, and the test was run under a
fuzzer that random tapped portions of the screen. Remove the text field
so that the fuzzer can't accidentally open the keyboard on its own at a
random time.
3. The keyboard was left open even after the app was closed. Also toggle
the input off when the app was closed, so that this test can be ran
multiple times in succession relatively hermetically.
* Add smoke test for the new Android embedding
* Update AndroidManifest.xml in app template
* Update test README.md
* Remove widget_test.dart
* Update pubspec.yaml
* Force GeneratedPluginRegistrant.java
This adds the default shortcuts and actions for keyboard-based focus traversal of apps.
This list of shortcuts includes shortcuts for TAB, SHIFT TAB, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW, and the four DPAD keys for game controllers (because the DPAD produces arrow key events).
It doesn't yet include functionality for triggering a control (e.g. SPACE, ENTER, or controller buttons), because that involves restructuring some of the Flutter controls to trigger animations differently, and so will be done in another PR (#41220)