These classes now use the same terminology and work in the same way.
Also, change semantics.mojom to use an enumeration of actions instead of
having a separate method per action. This will hopefully scale better.
Previously the AOT snapshot was packaged as a dynamic library (similar to the
scheme used on iOS). This change eliminates the need for a native code
toolchain when building for AOT.
This include build system changes for selecting Dart's precompiler mode
plus a way to locate and load the precompiled snapshot library from an
Android application
The PlatformView may not receive the surfaceDestroy notification before its
activity is destroyed (this was happening on the Android emulator).
If this happens, allow the PlatformView to be detached and have it release
its window during destruction.
This patch cleans up the public Java interface to the Flutter engine. The code
that we intend to be re-usable is now in the io.flutter.view package. The two
public classes are:
* FlutterMain, which controls initialization of the system, and
* FlutterView, which is an Android view that hosts a Flutter app.
We'll need to interate on these interface over time, but at least these names
are more reasonable.
This patch cleans up the way we expose Mojo services into Dart. It also adds a
service provider for "view services," which will evetually contain the raw
keyboard service.
- Correctly enable accessibility on startup if it's already enabled.
- Avoid using deprecated APIs.
- Map FORWARD/BACKWARD scrolling actions to up/down even when left/right
is also possible.
- Clear the accessibility focus when removing a focused semantics node.
- Unregister listeners when view goes away.
- Call setWillNotDraw(false) if accessibility is enabled.
- Clean the handling of hover events.
- Work around an Android bug where the system focus rect isn't drawn
the first time.
This lets you focus and unfocus a node.
Still doesn't seem to be enough to actually have the node exposed in
TalkBack. We probably need hover for that (that's next).
(Also fixes a leak for when a subtree has been disconnected; previously
we were only forgetting the top node of the subtree, not the
descendants. Thanks @krisgiesing for catching that.)
This is another step towards enabling accessibility for Flutter on
Android. It exposes the semantics tree to Android's accessibility API
when accessibility is enabled.
It does not yet:
- allow one to actually interact with the application via the
accessibility API
- expose the accessibility tree to touch exploration
- implement the accessibility focus API
However, you can see the tree if you run uiautomatorviewer. It is there,
and it matches the UI. At least in Stocks. I didn't test anything else.
If the Sky shell process does not have an orderly shutdown, then temporary
files created by services may never be cleaned up.
The ResourceCleaner task will run at the next startup and clean up any files
that match the prefix used by Chromium's temporary file API. Services will
now use the same prefix for their files.