72 Commits

Author SHA1 Message Date
Michael Goderbauer
afcc1d1e1f a11y improvements for iOS (#4079)
* Various iOS a11y fixes

* undo

* review comments

* review comments
2017-09-11 14:44:17 -07:00
Jason Simmons
a44146f13b Log instead of asserting when sending a reply message to a defunct engine (#4084)
Fixes https://github.com/flutter/flutter/issues/12037
2017-09-11 14:05:14 -07:00
Michael Goderbauer
81e3f8b86f refactor accessibility channel to use StandardMessageCodec (#4073) 2017-09-07 15:24:47 -07:00
Michael Goderbauer
ccf68cdcb6 Tell Android which SemanticsNodes are focusable (#4067)
A node is considered focusable if it contains information that is interesing to the user. A node that doesn't add any semantic information of its own should not be focusable. It's expected that such a node has children, who have smeantics information and are therefore focusable.

Fixes https://github.com/flutter/flutter/issues/11179
2017-09-06 16:56:23 -07:00
Michael Goderbauer
ceb6d05c2f Adapt semantics event handling to framework changes (#4066) 2017-09-05 16:31:24 -07:00
Michael Goderbauer
d60d630ec6 Wire up basic a11y channel for a11y events (#4054) 2017-09-01 16:40:04 -07:00
Ryan Macnak
ffbefaf477 Initial implementation of idle notification. (#4012)
- Assumes only the Dart VM is interested in idle notification.
 - Gives the VM the time remaining in each frame.
 - Gives the VM 100ms if there is no pending frame.

Issue flutter/flutter#9594
2017-09-01 11:11:25 -07:00
Ian Hickson
60bce44c9f Implement i18n features in the a11y API. (#4029) 2017-08-28 16:12:39 -07:00
Michael Goderbauer
32447c72fc Traverse children from top left to bottom right for a11y (#4017)
* order

* comment fix

* review comments
2017-08-28 12:02:07 -07:00
Michael Goderbauer
8cfa97609c Only expose available semantic scroll actions (#4010)
* Only expose available scroll actions

* formatting

* more formatting
2017-08-25 16:12:50 -07:00
Jason Simmons
0223e293f2 Improve checks for calls into native code made after the platform view has been detached (#3926) 2017-08-17 10:24:12 -07:00
xster
f187a5c219 Create platform API for first frame callback. Use for defer hiding splash screens on Android and iOS (#3956)
* Add back launch screen view until first frame on iOS

* improvements

* Move callback plumbing from ios surfaces to the gpu rasterizer. Didn’t wire java JNI yet.

* Android JNI

* Fix ios reference count and let android engine manage a view on top with launch screen

* Hook up Android activity and view

* review notes

* review notes

* Move thread switching upstream. Use weak references for callbacks.

* Some clean up
2017-08-14 15:44:52 -07:00
Jason Simmons
232f4636e5 Do not send messages if the platform view has been detached (#3927) 2017-07-26 20:04:31 -07:00
Michael Goderbauer
1a4bffc4ba Wire up SemanticsAction Increase and Decrease on Android (#3876) 2017-07-17 16:48:50 -07:00
Michael Goderbauer
63bf1d282f a11y: Add SemanticsAction "showOnScreen" (#3856)
This action is triggered when the user swipes (in accessibility mode) to the last visible item of a scrollable list to bring that item fully on screen.

iOS implementation to follow.
2017-07-12 15:52:30 -07:00
Michael Goderbauer
d2d152f201 Fix a11y scroll direction (#3841)
See also https://github.com/flutter/engine/pull/3701
2017-06-29 15:56:17 -07:00
Jason Simmons
1009e9c097 Remove warning about a deprecated accessibility API (#3837) 2017-06-28 12:47:15 -07:00
Jason Simmons
538e103b2c Catch exceptions during invocations of updateSemantics from native code (#3813) 2017-06-22 11:19:32 -07:00
Jason Simmons
b0dee695ec Revert to API level 16 compatible variant of AccessibilityNodeInfo.addAction (#3810)
Fixes https://github.com/flutter/flutter/issues/10855
2017-06-21 12:31:08 -07:00
Jason Simmons
834fb9638e Simplify state management in the Android text editing plugin (#3769)
In particular, this avoids some unnecessary calls to InputMethodManager.restartInput
that caused noticeable lag when moving the cursor.

Fixes https://github.com/flutter/flutter/issues/9928
2017-06-14 10:24:41 -07:00
Michael Goderbauer
1787c3fb1e Adding SemanticsFlag.isSelected (#3764)
* Adding SemanticsFlag.isSelected

* typo
2017-06-09 15:58:30 -07:00
Todd Volkert
b91d2f1bb4 Fix some minor issues with Javadocs (#3761) 2017-06-09 07:35:50 -07:00
Todd Volkert
ec8cbe0fb6 Refactor FlutterActivity to be more composable (#3748)
This factors the functionality that was in `FlutterActivity`
to live in `FlutterActivityDelegate`. This will allow the creation of a
`FlutterFragmentActivity` that has the same core functionality, which in
turn unlocks certain Android plugins that choose to require the v4
support library (like Google Sign-In).

https://github.com/flutter/flutter/issues/10072
2017-06-07 12:28:41 -07:00
Jason Simmons
c457ec6341 AndroidSurfaceSoftware renderer based on NDK native window APIs (#3745) 2017-06-06 16:58:43 -07:00
Sarah Zakarias
f37aafd456 Add setInitialRoute on FlutterView. (#3727) 2017-06-06 10:59:41 +02:00
Jason Simmons
16c411205f Render software rasterizer bitmaps through the SurfaceHolder (#3736) 2017-06-05 12:21:14 -07:00
Gary Qian
796259c089 Allow switching to the software rendering backend on Android. (#3719)
* Enable software rendering backend on android. Add "enable-software-rendering" flag.

* Fix variable naming and threading.
2017-05-31 17:27:47 -07:00
Chris Bracken
75c74dc463 Add inactive, suspending ApplicationLifecycleState values (#3713)
**This is a breaking change on iOS**

Previously, the `paused` state was entered when the application resigned
active status. `inactive` now maps to this status. `paused` now maps to
an app that has been backgrounded.

`inactive` is currently emitted on iOS only and corresponds to iOS's
foreground inactive state.

Current state transitions are:
`resumed` <--> `inactive` <--> `paused`

suspending is currently emitted on Android only and corresponds to the
transition to Android's stopped state.

Current state transitions are:
`resumed` <--> `paused` --> `suspending` --> `resumed`

These transitions may change in future.
2017-05-24 16:34:34 -07:00
Ian Hickson
0d94214df4 Fix a11y an Android (#3694)
The core problem was multiplying matrices the wrong way around.

While I was there I did some minor cleanup. I think that may have
fixed another bug relating to A11Y turning on or off improperly, but
since I never figured out the steps to reproduce, it's hard to tell.

Fixes https://github.com/flutter/flutter/issues/7205
Fixes https://github.com/flutter/flutter/issues/10059 (maybe)
2017-05-16 10:31:53 -07:00
Mikkel Nygaard Ravn
4eed7d2732 Clarify semantics of channel-related errors (#3607)
Mainly improvements to javadoc and error logging. A bit of refactoring.
2017-04-19 21:53:46 +02:00
Mikkel Nygaard Ravn
2a4434a058 Make naming consistent across channel APIs (#3574) 2017-04-18 14:30:31 +02:00
Mikkel Nygaard Ravn
68194b8df8 Distinguish between null platform message and one with zero-byte payload (#3577) 2017-04-09 00:07:28 +02:00
Jason Simmons
7356a50445 Copy platform message buffers into byte arrays passed via JNI (#3536)
The Java message object may be held by user-provided message handlers beyond
the lifetime of the raw blink::PlatformMessage and its data buffer
2017-03-28 17:15:01 -07:00
Chinmay Garde
5e98732301 Remove libsky_shell.so to libflutter.so. (#3517) 2017-03-24 16:25:33 -07:00
Chinmay Garde
1c07ea530f Remove uses of //base from all //flutter projects and replace them with //fml variants. (#3492) 2017-03-22 15:42:51 -07:00
Mikkel Nygaard Ravn
c4edec7417 Remove old flutter messaging API (#3482)
Breaking change: removed facilities for JSON and string messaging from FlutterView/FlutterViewController, leaving only binary messaging there. All other use of flutter communication now goes through FlutterMessageChannel and FlutterMethodChannels. Retained use of String and JSON codecs for now.

Companion flutter PR: flutter/flutter#8837
2017-03-17 09:04:59 +01:00
Jason Simmons
b1a163858d Send an event to signal memory pressure (#3475)
See https://github.com/flutter/flutter/issues/7561
2017-03-14 15:42:30 -07:00
Mikkel Nygaard Ravn
74de13c0bd FlutterXxxChannel concepts added to support Flutter/Android interop (#3446)
New concepts: FlutterMessageChannel (basic message send/receive superseding existing FlutterView methods), FlutterMethodChannel (method invocation and event streams), pluggable codecs for messages and method calls: unencoded binary, string, json, and 'standard' flutter binary encoding.
2017-03-01 13:54:32 +01:00
Jason Simmons
2466d31edf Fix some Javadoc warnings (#3391) 2017-02-03 16:25:25 -08:00
Ryan Macnak
adef37080f Adapt to refactoring of snapshot APIs in the Dart VM. (#3354)
Adapt to refactoring of snapshot APIs in the Dart VM.
2017-01-23 12:09:59 -08:00
Jason Simmons
c01c8c4a39 Apply window insets using an older API on pre-Lollipop systems (#3340)
Fixes https://github.com/flutter/flutter/issues/6586
2017-01-17 15:36:47 -08:00
Jason Simmons
5f91ff02a9 An API for setting the tag for Flutter log messages on Android (#3335)
Fixes https://github.com/flutter/flutter/issues/7226
2017-01-12 15:47:18 -08:00
Jason Simmons
60681a233f Do not dispatch UI events if they arrive after the FlutterView has been destroyed (#3306)
Fixes https://github.com/flutter/flutter/issues/7234
2016-12-12 16:30:26 -08:00
Jason Simmons
2f32e8054d Catch and log exceptions thrown in message listeners provided by apps (#3297)
FlutterView's host message processing methods are invoked from native code,
and the JNI wrappers will abort the process if the Java side has an uncaught
exception.
2016-12-07 14:47:40 -08:00
Adam Barth
cea5ed2b9b Update pointer change constants in Java (#3231)
I updated the C++ and Dart sides but forgot to update the Java side.

Fixes https://github.com/flutter/flutter/issues/6891
2016-11-16 10:13:28 -08:00
Adam Barth
d1bc4c4850 Add support for hover pointer events (#3227)
These are implemented on macOS and Fuchsia.
2016-11-15 20:18:22 -08:00
Jason Simmons
e54b0e286b Roll Dart (#3194)
Update DartServiceIsolate/FlutterView because VMServiceIO_NotifyServerState
now provides a URI for the observatory
2016-11-01 17:11:56 -07:00
Adam Barth
4b8c9051e5 Remove last mojom interface (#3184)
We no longer use mojom to transport messages. We still use the Mojo EDK
to spin the event loop, however.
2016-10-28 11:46:57 -07:00
Adam Barth
9eaedb0677 Migrate ViewportMetrics away from Mojo (#3180)
Now we just pass the data directly.
2016-10-27 13:12:55 -07:00
Adam Barth
7e5d63513a Move lifecycle, navigation, and localization to platform messages (#3172)
Previously, these signals were sent over Mojo. Now we send them through
platform messages.
2016-10-25 15:51:27 -07:00