295 Commits

Author SHA1 Message Date
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
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
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
Jidong Chen
b6060d4906 Missing dealloc method in FlutterEventChannel (#6464)
* Missing dealloc method in FlutterEventChannel
2018-10-09 11:50:00 -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
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
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
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
Rafael Ring
f4aadb11cf Change FlutterDartProject to keep precedence when looking for the ass… (#6305)
* Change FlutterDartProject to keep precedence when looking for the assets bundle

* Change assetsPath to fallback to mainBundle when the defined bundle does not contain assets
2018-09-24 09:26:43 -07:00
James D. Lin
5b8e8c328a
Make FlutterStandardCodec handle writing NSData (#6207)
* Make FlutterStandardCodec handle writing NSData

iOS developers can accidentally pass an `NSData` object directly to
`FlutterStandardCodec` and forget to wrap it in
`FlutterStandardTypedData`.  This failure won't be caught until
runtime.

Let's make `FlutterStandardCodec` more tolerant by making it assume
that `NSData` should be treated as a binary blob and by wrapping it
automatically.

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

Testing Done:
* Made a sample Flutter iOS application that created a
  `FlutterMethodChannel` and invoked a method using an `NSData*`
  argument.  Verified that the Flutter method handler received the
  message and that the `MethodCall.arguments` was a `UInt8Array` that
  preserved the original byte order.
* Verified that without this change, the same sample application
  crashed when run in debug mode.

* Add a unit test for encoding raw NSData

* Formatting adjustments
2018-09-21 15:46:40 -07:00
Amir Hardon
bbdf7c1581
Revert "Fix a compilation problem when using iPhoneOS12.0sdk(Xcode10) && clang version 7.0.0." (#6307)
* Revert "Add logging if FlutterDartProject fails to load the application kernel snapshot (#6257)"

This reverts commit d29c7db769d1a0d45f579b76ee3a43f38dc7318d.

* Revert "Update deprecated subtags from language subtag registry. (#6280)"

This reverts commit 2a1debfccfe2cc00e596607ac7cb1d29d2af8834.

* Revert "Add Xib splashscreen support (#6289)"

This reverts commit 540cd96262ed87bb6cd26ac18ad5468e70c3af63.

* Revert "Fix a compilation problem when using iPhoneOS12.0sdk(Xcode10) && clang version 7.0.0. (#6279)"

This reverts commit 05f21e63a115db2db161c8265be8e8349f3d7df0.
2018-09-21 15:17:45 -07:00
James D. Lin
d29c7db769
Add logging if FlutterDartProject fails to load the application kernel snapshot (#6257)
To make "Engine run configuration was invalid." failures (e.g.
https://github.com/flutter/flutter/issues/20777) a bit easier to
diagnose, add some more logging to `FlutterDartProject` to verify
that snapshot assets were properly bundled.
2018-09-21 14:05:30 -07:00
kzietek
540cd96262 Add Xib splashscreen support (#6289) 2018-09-21 12:20:18 -07:00
KyleWong
05f21e63a1 Fix a compilation problem when using iPhoneOS12.0sdk(Xcode10) && clang version 7.0.0. (#6279) 2018-09-21 12:17:00 -07:00
Chris Bracken
2ec20aaebe
Remove bottom safe-area padding when keyboard up (#6297)
On the iPhone X, raising the keyboard sets a bottom physical inset equal
to the keyboard height, however we previously did not zero out the bottom
physical padding. This was incorrect; when a soft keyboard is present,
it 'consumes' the safe area inset for the home indicator widget,
eliminating the need for the app to handle this at all.
2018-09-20 18:28:05 -07:00
Ryan Macnak
60bb5da33c
Reapply "Some cleanups enabled by removing support for Dart 1" (#6250)
Following fixes in dart-lang/sdk@91cbb57cd5
2018-09-14 09:36:13 -07:00
KyleWong
49ef4adad3 Fix a crash when UILaunchStoryboardName is not specified in Info.plist (#6234)
Some developers might prefer launch images.
2018-09-12 21:08:01 -07:00
Michael Goderbauer
6f459e2f10
Revert "Reapply "Some cleanups enabled by removing support for Dart 1" (#6216)" (#6232)
This reverts commit e3133e0e3f7cbbd57fa930c11f3640561d691eba.
2018-09-12 12:07:20 +02:00
Ryan Macnak
e3133e0e3f
Reapply "Some cleanups enabled by removing support for Dart 1." (#6216)
- Add missing Dart 2 flags to gen_snapshot invocation.
 - Disable brittle service test.
2018-09-10 17:03:54 -07:00
Ryan Macnak
bf96dbed38
Revert "Some cleanups enabled by removing support for Dart. (#5621)" (#6205)
This reverts commit 4c2448d1591a5fab033de3885ad34d1fdf5474f1.
2018-09-07 17:39:51 -07:00
Ryan Macnak
4c2448d159
Some cleanups enabled by removing support for Dart. (#5621)
- Switch core snapshot to Dart 2 and remove support for loading platform.dill.
 - Remove support for loading script snapshots.
 - Remove support for loading source.
 - Remove settings and fix names to reflect the above.
 - Remove support for loading the service isolate from source.
2018-09-07 15:44:46 -07:00
Jonah Williams
2af72eb2cc
Don't map iOS reduce motion to disabled animations (#6194) 2018-09-07 11:20:44 -07:00
James D. Lin
fbf6726436
Mark deprecated Flutter iOS APIs as unavailable (#6124)
The following were previously marked as deprecated over a month ago:
* `FlutterStandardBigInteger`
* `-[FlutterDartProject initFromDefaultSourceForConfiguration]`

Remove their implementations and mark them as unavailable.
2018-08-31 12:33:57 -07:00
James D. Lin
51d4be7745
Add a -[FlutterViewController splashScreenView] property (#6112)
Add a `-[FlutterViewController splashScreenView]` property

Add a `-[FlutterViewController splashScreenView]` property that
clients can use to customize the launch view (issue #17140).
2018-08-30 15:13:28 -07:00
Jonah Williams
56bad48ab2
expose bold text flag in accessibility features for iOS (#6072) 2018-08-28 12:38:54 -07:00
James D. Lin
4ff4a5cc99
Fix potential null pointer dereference in FlutterDartProject (#6035)
If `FlutterDartProject` found an `FLTLibraryPath` entry in an iOS
application's `Info.plist`, it assumed that values that were valid
filesystem paths were paths to bundles.  If the attempt to retrieve
the `NSBundle` fails, `FlutterDartProject` ignored the failure and
then would assign `nil` to a C++ `std::string`, resulting in a null
pointer dereference.

Add some failure checks to prevent this.
2018-08-16 17:40:33 -07:00
Martin Kustermann
81baff97c2
Switch all embedders to use platform_strong.dill instead of platform.dill (the flutter_tester binary already does this) (#6024) 2018-08-15 17:45:11 +02:00
Niko Yuwono
6e780fdc67 Add NSNull check in setSystemChromeSystemUIOverlayStyle (#6011) 2018-08-14 11:45:45 -07:00
James D. Lin
7ec5f8ada4
Don't require FLTLibraryPath and FLTAssetsPath from the main NSBundle (#5986)
We'd like the ability to add Flutter to existing iOS applications
without requiring that they set `FLTLibraryPath` and `FLTAssetsPath`
in the main bundle's `Info.plist`.

1. Modify `-[FlutterDartProject initWithPrecompiledDartBundle:]` to
   support setting the library and assets path from the specified
   `NSBundle` instead.

2. If no `NSBundle` is explicitly specified, look for one with a
   default bundle identifier ("io.flutter.flutter.app") before
   falling back to the main NSBundle.

Also remove `+[FlutterDartProject pathForFlutterAssetsFromBundle:]`
because we don't use it internally, and it isn't exposed in the
header file.
2018-08-14 10:45:05 -07:00
Ben Konyi
e54bc4ea18
Fixed invalid call site of runWithEntrypointAndCallback (#5984) 2018-08-09 12:42:59 -07:00
Ben Konyi
764884b91e
Removed callback for HeadlessDartRunner (#5983) 2018-08-09 11:21:51 -07:00
Jonah Williams
4208f84043
make ios text affinity behavior match android (#5971) 2018-08-08 10:54:29 -07:00
Ben Konyi
3cbb5e2067
Persist DartCallbackCache contents across launches (#5947)
* Updated DartCallbackCache to write callback cache to disk which is
restored on engine startup
* Ensure cache isn't moved off disk in iOS
2018-08-07 14:37:19 -07:00
James D. Lin
76ec93dabf
Add an explicit -[FlutterViewController init] implementation (#5924)
* Add an explicit `-[FlutterViewController init]` implementation

`-[FlutterViewController init]` currently works because it inherits
the `-[UIViewController init]` convenience initializer that invokes
the `-[UIViewController initWithNibName:bundle:]` designated
initializer that `FlutterViewController` overrides.

However, this doesn't seem to be explicitly documented, so it's a bit
confusing (or at least non-obvious), and it seems potentially
brittle.  Add an explicit implementation of `-[FlutterViewController
init]` instead.
2018-08-02 14:03:42 -07:00
Jonah Williams
dcd2956f88
Initial support for more finely-grained a11y features on Window (#5901) 2018-07-31 18:18:19 -07:00
James D. Lin
d06e9e84d0 Deprecate -[FlutterDartProject initFromDefaultSourceForConfiguration] (#18886) (#5858)
* Deprecate -[FlutterDartProject initFromDefaultSourceForConfiguration] (#18886)

`-[FlutterDartProject initFromDefaultSourceForConfiguration]` no
longer seems very useful.  It calls `-initWithPrecompiledDartBundle:`
or `-initWithFlutterAssets:dartMain:packages:`, but since it now
passes `nil` for all arguments, both paths end up doing the same
thing.

Additionally, `-initFromDefaultSourceForConfiguration` is awkward to
use in Swift.  The automatically generated Swift interface is:

    public convenience init!(fromDefaultSourceForConfiguration: ())

and it's not obvious how to call that.

Let's deprecate `-initFromDefaultSourceForConfiguration` and instead
expect callers to use the existing `-init` method. (We can make
`-init` do different things for different build configurations later
if necessary.)

Bonus: Rename some parameters to make it more obvious when they may
be `nil`.
2018-07-31 11:49:57 -07:00
Chinmay Garde
9f8285ac6c
Remove all dependencies on Garnet. (#5869) 2018-07-26 12:49:34 -07:00
Jonah Williams
d559afb320
Support customizing standard accessibility actions on Android. (#5823) 2018-07-25 15:26:02 -07:00
Chinmay Garde
336c23f846
Remove //flutter/glue and use FML directly. (#5862) 2018-07-25 13:20:48 -07:00
Jonah Williams
96f5f5b96c
Semantics framework updates (#5601) 2018-07-20 11:17:59 -07:00
Joshua Seaton
663b4925b8
[fml][fxl] Migrate AutoResetWaitableEvent to fml version. (#5808)
Thanks Jason for the speedy review
2018-07-20 10:12:38 -07:00
Jonah Williams
d1c71e5206
add text capitalization support to ios and android (#5752) 2018-07-19 18:07:18 -07:00
Jonah Williams
2e57ecd38f
Revert rollback of "add assistiveTechnologyEnabled to window" (#5750) 2018-07-16 09:04:20 -07:00
Jonah Williams
e632fb8160
Expose keyboardAppearance field in iOS FlutterTextInputPlugin.mm (#5714) 2018-07-13 19:59:59 -07:00
Jonah Williams
9af920ef22 Revert "Add assistiveTechnologyEnabled flag to window" (#5746)
Reverts flutter/engine#5740
2018-07-13 15:55:49 -07:00