740 Commits

Author SHA1 Message Date
Amir Hardon
92944f72fb
Move FlutterPlatformViewsController into FlutterEngine. (#6709)
This PR breaks PlatformViewsController's construction dependency on FlutterView,
which allows making FlutterEngine its owner instead of
FlutterViewController.

Also renamed the FlutterScreenshotDelegate to FlutterViewEngineDelegate
which is FlutterView's delegate to the engine, and expanded it to
provide a view embedder.
2018-10-31 13:02:44 -07:00
Amir Hardon
059876ea9a
Delay embedded UIViews touch events until the framework says so. (#6665)
This allows the framework to decide whether and when a touch event
sequence arrives to the embedded view. Which gives the framework the
ability to manage hit testing and gesture disambiguation for embedded
UIViews.

We achieve this by wrapping each embedded UIView with another UIView that has
a custom UIGestureRecognizer that delays touch events from being
delivered, and another UIGestureRecognizer that makes sure to let
Flutter know of events that are hit tested to the embedded view.
2018-10-30 20:16:56 -07:00
Dan Field
d8672baaa2
Ensure Simulator publishes mDNS records (#6696)
* Ensure Simulator publishes mDNS records on loopback interface.
2018-10-30 18:04:18 -07:00
Dan Field
91a019cfd3 Fix popSystemNavigator (#6691) 2018-10-29 16:36:28 -07:00
Mehmet Fidanboylu
a1d7cad70c
Fix inconsistent include syntax (#6680) 2018-10-28 11:40:26 -07:00
Chinmay Garde
ba8f6aa71c
Handle Windows headers defining ERROR to 0 in log levels. (#6677) 2018-10-26 16:47:14 -07:00
Dan Field
55e12993a0
Update FlutterPlugin.h docs, suppress warning for older API (#6672)
* Update FlutterPlugin.h docs, suppress warning for older API
2018-10-26 14:54:33 -07:00
Amir Hardon
f7970048dd
Attach and position embedded UIVIews (#6614) 2018-10-26 14:45:17 -07:00
Amir Hardon
df85722fa0
Plumb the iOS PlatformViewsController into flow. (#6603)
For flow to manipulate the embedded UIViews during the paint traversal
it needs some hook in PaintContext.
This PR introduces a ViewEmbeder interface that is implemented by the
iOS PlatformViewsController and plumbs it into PaintContext.

The ViewEmbedder interface is mainly a place holder at this point, as
this PR is focused on just the plumbing.
2018-10-26 14:26:59 -07:00
Dan Field
2bfb893cf3
iOS Embedding Refactor (#6447)
* Create FlutterEngine to manage a Shell to support maintaining execution state across instances of FlutterViewControllers
* Refactor PlatformViewIOS to support adding or removing a FlutterViewController dynamically
* Refactor FlutterDartHeadlessCodeRunner to implement FlutterEngine
* Refactor FlutterViewController to accept a FlutterEngine at initialization or to create one for backwards compatibility; any Shell related responsibilities are now passed through to the Engine instance
* Remove FlutterNavigationController (unused)
* Update all public Objective C doc comments to be consistent and formatable
* Add public documentation to all public headers
2018-10-26 13:00:12 -07:00
Stanislav Baranov
dd791f36ac
Propagate pointer size from Android MotionEvent (#6662) 2018-10-26 09:39:10 -07:00
Jonah Williams
cf75289b68
TextField is only a live region when it has input focus (#6649) 2018-10-25 08:37:49 -07:00
Amir Hardon
9669b70e17
Add an iOS PlatformViewsController for creating/disposing UIViews. (#6569)
Adds a FlutterPlatformViewFactory protocol - a simple factory protocol to be implemented by plugins
  that exposes a UIView for embedding in Flutter apps.
* Adds a FlutterPlatformView protocol, which is used to associate a
  dispose callback with a `UIView` created by a FlutterPlatformViewFactory.
* Exposes a registerViewFactory method in FlutterPluginRegistrar.
* Implements the `flutter/platform_views` system channel on iOS, allowing
  Dart code to ask for creation/destruction of UIViews.
2018-10-24 15:07:05 -07:00
Dan Field
6c2477bd29
fix setter for viewOpaque (#6653) 2018-10-24 12:31:44 -07:00
Chinmay Garde
e1e60933b2
Realize kernel asset mappings on a worker thread if one is available. (#6648) 2018-10-24 11:33:46 -07:00
Chinmay Garde
e78f86e011
Fix mac builds. Only Linux and Windows require default GL proc resolvers. (#6641) 2018-10-23 10:46:14 -07:00
James Clarke
52e48ab84a Fix Windows embedding. Appears that #6523 or #6525 introduced a bug for embedder scenarios causing the window native library to be incorrectly initialized and thus incapable of correctly resolving GL functions. This change fixes that. (#6624) 2018-10-23 09:47:53 -07:00
Dan Field
427915e2fb
Allow FlutterViewController to specify whether its FlutterView is opaque (#6570)
* Allow FlutterViewController to specify whether its FlutterView is opaque
2018-10-22 19:53:04 -07:00
Matthew Smith
edfe02481a 13771 - iOS dictation bug (#6607)
According to the iOS docs, implementing
`- (id)insertDictationResultPlaceholder`

```Implementation of this method is optional but can be done when you want to provide a specific rectangle for the placeholder animation while the dictation results are being processed. ```

If you do not implement this method, UIKit will insert a default placeholder of 10 whitespace characters. By overriding this, no placeholder text will be inserted. If you implement the `insertDictationResultPlaceholder`, you must implement
`- (void)removeDictationResultPlaceholder:(id)placeholder willInsertResult:(BOOL)willInsertResult`
2018-10-22 10:28:39 -07:00
Gary Qian
8cb3965a3e
Properly gate android API < 21 and remove extraneous data array. (#6619) 2018-10-19 15:01:43 -07:00
Chinmay Garde
739d66eeb3
Don't attempt to build any platform target on Fuchsia. (#6617) 2018-10-19 14:20:31 -07:00
Gary Qian
09dcc3d5ee
Gate locale.getScript() behind version check for android API < 21 (#6592) 2018-10-18 14:03:48 -07:00
Gary Qian
35340ceaf0
Pass full locale list with script and variant codes to framework (#6557)
* Locale Passing

* Pass full locale list and script and variant codes to framework

* Working Android locale list passing and fallback
2018-10-17 10:53:01 -07:00
Dan Field
62cd86c5a8
Advertise iOS Observatory port over mDNS/Bonjour (#6533)
* Publish port of observatory over mDNS
2018-10-15 17:21:01 -07:00
Shaoxing Wang
26f437f377 Fix crash when removeViewImmediate invoked from platform view (#6266)
* Fix crash when removeViewImmediate invoked from platform view

* Clear animation before remove view from mFakeWindowRootView
2018-10-15 16:09:10 -07:00
Chinmay Garde
08272ee6aa
Allow specifying custom toolchains and sysroots for host builds. (#6548)
Updates buildroot to https://github.com/flutter/buildroot/pull/180.
2018-10-15 14:18:02 -07:00
Jason Simmons
75e875240e
Fix the Mac embedder build (#6525) 2018-10-12 16:24:54 -07:00
Jonah Williams
436f9707b9
Add version check for dismissable (#6522) 2018-10-12 15:47:11 -07:00
Jason Simmons
7767c785b4
Provide a default GL function resolver in the embedder (#6523)
Also check whether the implementation behind the resolver is OpenGL or
OpenGL ES
2018-10-12 15:07:46 -07:00
谢然
05aac0f270 fix ResourceExtractor npe. (#6461) 2018-10-12 09:56:00 -07:00
James D. Lin
3ffa362952
Add a callback for iOS when the first Flutter frame is rendered (#6135)
Add a `-[FlutterViewController setFlutterViewDidRenderCallback:]`
method on iOS so client applications can be notified when the Flutter
view has rendered.  This can be used for add2app cases to determine
when to take an initial screenshot for comparisons in automated
tests.

The callback is expected to be an Objective-C block (or Swift
closure).  I chose to support only a single callback because it's
much simpler (especially since it does not require a separate method
to unregister the callback), and it's not clear that there are use
cases that would justify additional complexity.  Clients have the
flexibility to make their callback invoke other callbacks anyway.

I alternatively considered adding a `-[FlutterViewController
viewDidRenderFirstFlutterFrame]` method that clients could override
in a subclass, but using an Objective-C block seems more flexible and
less of a burden.

Fixes https://github.com/flutter/flutter/issues/20665
2018-10-11 20:21:13 -07:00
Gary Qian
61cf4c01fd
Pass scriptcode and variantcode to dart:ui Window. (#6493) 2018-10-10 17:22:59 -07:00
Jason Simmons
155ba09619
Use an older version of SurfaceTexture.setOnFrameAvailableListener when running on pre-Lollipop devices (#6489)
Fixes https://github.com/flutter/flutter/issues/21730
2018-10-10 15:01:48 -07:00
Jidong Chen
b6060d4906 Missing dealloc method in FlutterEventChannel (#6464)
* Missing dealloc method in FlutterEventChannel
2018-10-09 11:50:00 -07:00
Jonah Williams
647302a287
Correct issues in visible children determination (#6455)
* fix off by one

* add documentation on counting for setToIndex
2018-10-08 11:05:09 -07:00
liyuqian
90b1023c84
Remove unused imports and variables (#6437)
This is discovered in the new Google3 checks. It should not block our
roll but it's nice to fix them.
2018-10-04 16:01:49 -07:00
Chinmay Garde
45c5fe5613
Remove touch mapper and respect the UITouch phase when calculating the pointer data change type. (#6430)
The touch mapper was a relic of a time when the pointer IDs had to be less
than 16. Not respecting the touch phase is getting in the way of clients that
fake their own touches. Turns out the AppDelegate also like to fake touches to
simulate status bar events. Now, except in cases where there is a specific
override in place, the UI touch phase is respected.
2018-10-04 14:33:58 -07:00
Jonah Williams
ae4db4469f
Ensure setViewIdResourceName has the correct version guard (#6404) 2018-10-03 17:44:32 -07:00
Kirill Nikolaev
68a42e3f47 Add nullability annotations to MethodChannel/MethodCall. (#6393)
This works towards resolving https://github.com/flutter/flutter/issues/19888.
2018-10-02 15:02:16 -07:00
Jonah Williams
a785b25f4a
do not count Hidden nodes at the beginning of the scrollable (#6381) 2018-10-01 11:15:22 -07:00
Ben Konyi
6f8c827b25
Dart SDK roll for 2018-09-28 (#6388) 2018-09-28 18:02:04 -07:00
Jonah Williams
77c30caddf
make sure we dont set live regionin api level < 18 (#6375) 2018-09-27 23:24:54 -07:00
Kirill Nikolaev
27f77cbef5 Document that all MethodChannel callbacks must be called on the main thread. (#6245)
This further addresses https://github.com/flutter/flutter/issues/14568.
2018-09-27 15:48:29 -07:00
Dan Field
3052dbd79b
SystemNavigator.pop can pop w/o UINavigationController (#6341)
* SystemNavigator.pop can pop w/o UINavigationController
2018-09-27 08:57:30 -07:00
Dan Field
c589b312a9
Expose push/popRoute on FlutterViewController (#6347) 2018-09-26 22:14:04 -07:00
KyleWong
309ac4e1be V0.8.2 fix compile problem with xcode10 (#6339)
* Fix a compilation problem when  using iPhoneOS12.0sdk(Xcode10).
2018-09-26 17:00:28 -07:00
Chinmay Garde
f2a3df97e2
Wire up the Skia persistent GPU related artifacts cache. (#6278)
Also teaches FML to create files and directories.
2018-09-26 14:54:09 -07:00
Gary Qian
8247ce26ba
Implement restore functions on Android and iOS (#6322)
This will not be active on the Framework until https://github.com/flutter/flutter/pull/22221 lands.
2018-09-25 13:46:38 -07:00
Dan Field
8743bb82db
Format for #6324 (#6326)
Format code from previous patch
2018-09-24 18:42:04 -04:00
Dan Field
89516aad94
Engine::Run returns enum: success, failure, or isolate already running (#6324)
* If isolate is already running, return true

* Use shell::Engine::RunStatus as result of Engine::Run
2018-09-24 18:01:22 -04:00