914 Commits

Author SHA1 Message Date
stuartmorgan
dd80fc9ff6
Add engine support for scrollwheel events (#7494)
Adds support for pointer signals, in a way that will support both discrete events (e.g., scroll wheels, flutter/flutter#22762) and continuous gestures (e.g., trackpad scroll, flutter/flutter#21953).

Also exposes these new event options to the embedder. Does not include code to send the
new events from the platform shells.
2019-03-05 14:12:07 -08:00
Chris Yang
effee2f80e
remove extra statement (#8041)
Remove an extra statement introduced in 36ca5740c7
2019-03-05 11:12:00 -08:00
Chris Bracken
e6a5201f0b
Add missing values to semantics action enums (#8033)
This brings the Dart and C++ semantics flag enums back in sync.

In #5902, the ability to move the cursor forward and backward one word
were added to dart:ui, and to the Android embedder, but not to the
SemanticsAction enum on the C++ side.
2019-03-05 07:58:26 -08:00
Chris Bracken
ed628da00a
Add missing kHasImplicitScrolling enum value (#8030)
This brings the Dart and C++ semantics flag enums back in sync.

In #5941, implicit scrolling support was added to SemanticsFlag in
dart:ui, and to the Android embedder, but not to the SemanticsFlags enum
on the C++ side.

This also clarifies/corrects the documentation for this value in dart:ui
and in the embedder API.
2019-03-04 22:00:54 -08:00
Matt Carroll
8f1fdcd195
Android Embedding PR 14: Almost done with FlutterFragment. (#8000) 2019-03-04 18:02:24 -08:00
Matt Carroll
fb3e35d6ac
Android Embedding PR15: Add Viewport Metrics to FlutterView (#8029) 2019-03-04 17:12:52 -08:00
Chris Yang
36ca5740c7
[platform_views] Fix duplicated touch event pass down to flutter view from platform view. (#8026)
Fix for flutter/flutter#27700 and flutter/flutter#24207

There are 2 fixes included in this PR.

The intercepting views sometime pass up the touches events to flutter view, even after the forward gesture recognizer pass the event to the flutter view. We only want the event to be passed to the flutter view once. So we let the intercepting view 'consumes' the event in this PR to fix the problem.

When a touch sequence has multiple touch points participated(e.g. Pinch gesture), the touchesBegan and touchesEnded can be triggered multiple times if the touches do not happen simultaneously. One example would be: when performing a pinch gesture with 2 fingers, I put down one finger, keep the finger on the screen, then put down another finger, perform pinch, lift up both finger at the same time. In this sequence, touchesBegan is called twice with each touch in one of the calls and touchesEnded is called once and has 2 touches in the callback. To handle this issue, we added a count to count the touches in one touch sequence. We only set the state to fail when the count reaches 0(That is all the touches has began in the current sequence is ended).
2019-03-04 15:55:32 -08:00
Dan Field
a2246c1990
Start of linting Android embedding (#8023)
* Add a tool for running Android SDK lint on Android embedding
2019-03-04 13:55:53 -08:00
Dan Field
13064aec87
Add overloads for lookup that lets you specify a bundle (#8007)
* Add overloads for lookup that lets you specify a bundle

* check bundle with defaultBundleIdentifier before main bundle
2019-03-02 10:01:51 -08:00
Greg Spencer
293cfcaa54
Guard against using Android API not defined in API level 16 & 17 (#8006)
This adds a guard around the call to MotionEvent.isFromSource, which is not implemented in API 16 and 17.

Fixes flutter/flutter#28640
2019-03-01 14:53:22 -08:00
Chris Bracken
99f3f7a9c2
Fix incorrect transformation matrix (#8001)
Previously the transformation matrix returned on semantics nodes was
fetched by matrix col,row (incorrectly). This uses the SkMatrix
constants instead and adds a test.
2019-02-28 19:19:06 -08:00
Matt Carroll
fe15149d1a
Android Embedding PR 12: Add lifecycle methods to FlutterActivity. (#7974) 2019-02-28 16:51:17 -08:00
Matt Carroll
6145e9046a
Android Embedding PR 13: Integrated text input, keyevent input, and some other channel comms in FlutterView. (#7979) 2019-02-28 15:02:56 -08:00
Matt Carroll
56c16154ea
Android Embedding PR 9: Introduce an AndroidTouchProcessor to convert MotionEvents to Flutter touch data. (#7947) 2019-02-28 14:44:28 -08:00
Chris Bracken
72cbe69cc8
Fix two typos in embedder.h (#7993)
occured -> occurred
preceeded -> preceded
2019-02-27 21:10:08 -08:00
Matt Carroll
2360b459de
Android Embedding PR 11: Add FlutterEngine to FlutterFragment. (#7972) 2019-02-27 21:09:28 -08:00
Chris Bracken
3e4e6f5c54
Provide batching for semantics updates (#7988)
Some embedders prefer to minimise the number of semantics node/custom
action updates sent back to the host platform -- for example due to
expensive serialisation mechanisms, etc.

This patch provides a 'batch end' signal that provides embedders with an
indication of when a self-consistent set of semantics node or custom action
updates have been sent.

We overload the node/action ID with information that conveys a batch end
by using an ID (-1) that is never allotted to semantics nodes by the
framework.
2019-02-27 12:12:45 -08:00
Jason Simmons
1089b5c9f8
Check for a null pressure range for motion events (#7986)
Fixes https://github.com/flutter/flutter/issues/28490
2019-02-27 11:27:19 -08:00
stuartmorgan
b7d5129492
[macos] Add hover support to FLEViewController (#7975)
Adds an option to enable mouse tracking, which will send
add/hover/remove events to the Flutter engine.
2019-02-27 10:06:57 -08:00
Matt Carroll
4db7c30501
Android Embedding PR 10: Add system channels to FlutterEngine. (#7960) 2019-02-26 19:05:18 -08:00
Jason Simmons
9f92324fd6
Suppress deprecation warning for usage of Configuration.locale (#7973) 2019-02-26 17:03:10 -08:00
Ben Konyi
fb1c543dd4
Link dart:* sources into engine for debugger source support (#7908)
Link dart:* sources into engine for debugger source support

Currently, dart:* libraries appear to have no source in
debuggers like Observatory. With this change, these sources will be
available in debug mode applications. Sources for dart:* libraries are
lazily loaded on a script-by-script basis.

Refer to https://dart-review.googlesource.com/c/sdk/+/93375 for the Dart
SDK change.
2019-02-26 13:28:04 -08:00
Gary Qian
4434a39c7d
Add api 21 check to LocalizationChannel.java (#7967) 2019-02-26 11:33:07 -08:00
Matt Carroll
9f95ef23aa
Android Embedding PR 8: Add FlutterEngine attachment/detachment to FlutterView (#7946) 2019-02-26 01:54:17 -08:00
Matt Carroll
31d31e6d2a
Android PR 7: Introduce structure of FlutterActivity and FlutterFragment (#7912) 2019-02-26 01:48:09 -08:00
Matt Carroll
18ad03d49d
Fixed an Android keyboard entry bug that was introduced by the embedding refactor. (#28438) (#7954) 2019-02-25 19:15:49 -08:00
Jason Simmons
fd6c3fc700
Do not clear FlutterJNI state when a FlutterView is detached (#7929)
If an app is using retainFlutterNativeView or a plugin wants to keep the
FlutterNativeView active, then the FlutterNativeView should not drop its
handle to the corresponding native platform view.

Fixes https://github.com/flutter/flutter/issues/26931
2019-02-25 15:31:50 -08:00
Chris Bracken
f2489c1b5d
Correct FlutterSemanticsNode member name style (#7942)
Correct struct members whose names were camelCase rather than
snake_case. This is a breaking API change, but does not break ABI.
2019-02-24 22:33:55 -08:00
Ivan
f7306394e3 fix sendLocales on old android versions (#7937)
[Configuration.getLocales()][1] was added in API level 24. 
For earlier versions, we instead return only the current locale.

Fixes https://github.com/flutter/flutter/issues/28321

[1]: https://developer.android.com/reference/android/content/res/Configuration#getLocales()
2019-02-24 22:29:16 -08:00
Matt Carroll
502c9c4002
Android Embedding PR 6: Introduce FlutterView structure with FlutterSurfaceView and FlutterTextureView. (#7896) 2019-02-24 20:41:18 -08:00
Stanislav Baranov
36d495d57a
Dynamic patching support for native code libraries. (#7927) 2019-02-22 14:18:47 -08:00
Stanislav Baranov
5809adea41
Make the layout of dynamic patch bundle similar to APK. (#7925)
This will help further changes when we pull other artifacts into the bundle.
2019-02-22 12:56:35 -08:00
ashawn
93f339fb67 fix Memory leak when using PlatformView [IOS] #24714 (#7919) 2019-02-22 09:00:15 -08:00
Chinmay Garde
33bb91cc15
Allow embedders to specify a vsync waiter. (#7914)
Fixes https://github.com/flutter/flutter/issues/28240
2019-02-21 23:02:32 -08:00
Chinmay Garde
4cb9a14992
Allow embedders to add events to the timeline. (#7917)
Fixes https://github.com/flutter/flutter/issues/28283
2019-02-21 22:42:49 -08:00
Jason Simmons
043d92c48a
Embedder API for setting the persistent cache path (#7915)
Fixes https://github.com/flutter/flutter/issues/28278
2019-02-21 17:30:17 -08:00
Stanislav Baranov
aa2b287cbf
Reland #7777 with proper LICENSE (#7888) 2019-02-21 13:45:24 -08:00
Chris Bracken
abe9826a9d
Add accessibility semantics support to embedder (#7891)
Flutter's accessibility APIs consist of three main calls from the
embedder to the Dart application:

  1. FlutterEngineUpdateSemanticsEnabled: enables/disables semantics support.

  2. FlutterEngineUpdateAccessibilityFeatures: sets embedder-specific
     accessibility features.

  3. FlutterEngineDispatchSemanticsAction: dispatches an action (tap,
     long-press, scroll, etc.) to a semantics node.

and two main callbacks triggered by Dart code:

  1. FlutterUpdateSemanticsNodeCallback: notifies the embedder of
     updates to the properties of a given semantics node.

  2. FlutterUpdateSemanticsCustomActionCallback: notifies the embedder
     of updates to custom semantics actions registered in Dart code.

In the Flutter framework, when accessibility is first enabled, the
embedder will receive a stream of update callbacks notifying the
embedder of the full semantics tree. On further changes in the Dart
application, only updates will be sent.
2019-02-20 18:59:29 -08:00
Chinmay Garde
684c9394c0
Respect the custom GL proc table when creating the resource context on the IO thread. (#7893)
Fixes https://github.com/flutter/flutter/issues/28229
2019-02-20 17:23:14 -08:00
Matt Carroll
e11d0e96fb
Android embedding refactor pr5 add flutterengine impl (#7878) 2019-02-20 17:06:33 -08:00
Matt Carroll
2f4a38dbd3
Android embedding refactor pr3 add remaining systemchannels (#7892)
Merging back in after reversion. Fixed some messaging issues in FlutterNativeView and corrected some message parsing.
2019-02-20 17:05:31 -08:00
Dan Field
6d7eb52185
Revert "Android embedding refactor pr3 add remaining systemchannels (#7874)" (#7886)
This reverts commit f4fba6d7110338caf3878cf42e26e17744108d00.
2019-02-20 11:18:12 -08:00
Matt Carroll
f4fba6d711
Android embedding refactor pr3 add remaining systemchannels (#7874) 2019-02-19 15:51:13 -08:00
stuartmorgan
ed73fc39cd
Expose more pointer phases in embedder.h (#7813)
Adds 'add', 'remove', and 'hover' to the set of pointer phases that are
available to embedders. This is necessary for them to send hover events
to the engine.
2019-02-19 07:06:57 -08:00
Stanislav Baranov
5141680287
Revert "Support for binary decompression of dynamic patches. (#7777)" (#7853)
This reverts commit d48de7a3ec97ebf7ffe543aa74993efa51064789.
2019-02-15 17:07:06 -08:00
Chris Bracken
163a2fd5e1
Revert "Android embedding refactor pr3 add remaining systemchannels (#7738)" (#7849)
From build log:
```
../../flutter/shell/platform/android/io/flutter/view/FlutterView.java:95: error: cannot find symbol
    private final LocalizationChannel localizationChannel;
                  ^
  symbol:   class LocalizationChannel
  location: class FlutterView
../../flutter/shell/platform/android/io/flutter/view/FlutterView.java:172: error: cannot find symbol
        localizationChannel = new LocalizationChannel(dartExecutor);
                                  ^
  symbol:   class LocalizationChannel
  location: class FlutterView
2 errors
```

This reverts commit 256db4bc23b7931509233df0dc04e44e16608229.
2019-02-15 15:03:19 -08:00
Matt Carroll
256db4bc23
Android embedding refactor pr3 add remaining systemchannels (#7738) 2019-02-15 13:45:24 -08:00
Todd Volkert
02d7ca31d8
Don't call static method from instance variable (#7841) 2019-02-15 16:18:02 -05:00
Amir Hardon
10cee612bb
Delete GL textures when they are released from the texture registry. (#7836)
On Android we were never deleting the textures allocated for
the texture registry, which resulted in a memory leak, see:
https://github.com/flutter/flutter/issues/24145
2019-02-15 13:11:49 -08:00
najeira
69e4606077 Fix NullPointerException in SurfaceTextureRegistryEntry (#7837) 2019-02-15 13:01:41 -08:00