164 Commits

Author SHA1 Message Date
Mikkel Nygaard Ravn
1f0c959189
Align iOS event channel semantics to Android counterpart (#4353) 2017-11-13 15:34:29 +01:00
Chris Bracken
bc2acf7bdd
Revert "Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)" (#4340)
With the update to HEAD of the Fuchsia buildtools repo, the new clang
toolchain picked up caused link-time breakage in android x86_64
libFlutter.so builds.

Sample log:
https://build.chromium.org/p/client.flutter/builders/Linux%20Engine/builds/1974/steps/build%20android_debug_x64/logs/stdio

Sample failure:
FAILED: libflutter.so libflutter.so.TOC lib.stripped/libflutter.so
../../third_party/android_tools/ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld.gold: error: obj/flutter/shell/platform/android/libflutter/android_context_gl.o: unsupported reloc 42 against global symbol std::__ndk1::num_put<char, std::__ndk1::ostreambuf_iterator<char, std::__ndk1::char_traits<char> > >::id

This reverts commit 8ad42f0dae3cb1267c2b9ab99db80e4696ddbc3d.
2017-11-08 16:48:00 -08:00
Chris Bracken
8ad42f0dae
Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)
* Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5

This also updates Flutter buildroot to a6e52dbb776c45cc8c57d7143b8eb8b2e762fdfb
which disables -Wtautological-constant-compare temporarily until
https://reviews.llvm.org/D39462 lands in clang. This is in line with
Fuchsia's compiler options.

* Apply clang-format diffs

No logical changes. This applies clang-format from the latest Fuchsia
buildtools to the engine codebase.
2017-11-08 11:18:17 -08:00
Chris Bracken
dd6585bb9a
Respond to safe area inset changes (#4330)
On iOS 11 and above, update viewport padding and notify the framework
when changes to safe area insets occur.
2017-11-07 18:26:59 -08:00
Chris Bracken
e059cc0258
Temporaribly disable bottom safe area padding on iOS (#4322)
There are two different sets of view insets that applications may want
to track in order to avoid unwanted interaction with system UI:

1. OS UI that effectively shrinks the Flutter view from a UX point of
   view: e.g., when the keyboard opens, it occludes the bottom of the
   screen and the view should be adjusted such that the bottom, for the
   purposes of scrolling is just above the keyboard.
2. OS UI that is overlaid over the application, but into which the
   application should draw. e.g., the Home indicator on the iPhone X
   typically appears near the bottom of the screen, overlaid over app
   content. Content should be rendered within this 'safe area' but apps
   should avoid requiring user interaction there. For example, list
   views may want to include some small amount of additional padding to
   ensure the last list item can scroll above this area.

Since Flutter does not currently distinguish between these two cases,
this patch disables the bottom safe area inset until API is added to
support these separately.
2017-11-03 14:20:46 -07:00
Chris Bracken
3021e8f6c3
Correct behaviour for rangeForCharacterAtIndex (#4319)
Previously it always fell through to a zero-length character range at
the specified position.
2017-11-02 15:16:06 -07:00
xster
8d8203ccb6
Make the text selection code more defensive (#4291)
* Make the text selection code more defensive

* format

* Move validation to a method

* Fix math

* rename
2017-11-02 03:36:52 -07:00
Chinmay Garde
9a960f82f5 Add texture support (eg video, camera) (#4159) 2017-11-02 10:57:29 +01:00
Zachary Anderson
6c73503923
[ios] Adds an API for running Dart code without a PlatformViewIOS (#4294) 2017-11-01 12:16:51 -07:00
Chris Bracken
ddd51597d0
Use safe area padding on hide keyboard on iOS (#4304)
On hide keyboard, reset the bottom padding to the safe area inset on
devices running iOS 11 or higher.
2017-10-31 17:17:38 -07:00
Chinmay Garde
19e690e84b
Add fml::WeakPtr and update users in Shell. (#4296) 2017-10-31 16:55:36 -07:00
Chinmay Garde
ac16530074
Ensure that public framework headers can be cleanly imported from outside the engine root. (#4303) 2017-10-31 16:25:02 -07:00
Chris Bracken
277bfe66f0
Support iPhone X safe area insets (#4302)
This change exposes the view safe area insets (introduced in iOS 11) to
the framework via MediaQuery.of(context).padding. Safe area insets are
the view insets (padding) inside of which content can be relied on to
display without truncation/clipping, as would occur with e.g. the iPhone
X sensor notch.

As this API was added in iOS 11, we place it behind a runtime guard
checking OS level.

Until the runtime support for @avialable lands in the next Fuchsia
buildtools rev, ignore -Wunguarded-availability-new around the safe area
insets check and use an FML runtime check instead.
2017-10-31 14:30:07 -07:00
Chinmay Garde
fe92a5120c
Fix iOS build to account for Shell rasterizer registration updates. (#4295) 2017-10-30 13:54:41 -07:00
Michael Goderbauer
4a9e6782a7 Announce the correct new value after increase/decrease has been performed on iOS (#4282) 2017-10-25 16:02:43 -07:00
Michael Goderbauer
6665645a0f Only post UIAccessibilityLayoutChangedNotification if layout changed (#4279)
* Only post UIAccessibilityLayoutChangedNotification if layout actually changed

* ++

* review comment
2017-10-25 14:07:41 -07:00
Michael Goderbauer
65e4deba15 Revert "Move channel and codec related files to common (#4262)" (#4277)
This reverts commit a48b5f6d25c7371d05d6d8290e385b83d58f0b72.
2017-10-25 13:01:24 -07:00
krisgiesing
a48b5f6d25 Move channel and codec related files to common (#4262)
Refactoring related to use of the embedder APIs on macOS
host builds.
2017-10-24 20:36:18 -07:00
Michael Goderbauer
91071f817b Support for accessibility label and hint (#4264)
* Support for accessibility label and hint

* review comments
2017-10-23 16:46:01 -07:00
amirh
3d013382e6 Add a semantic isButton flag (#4254)
https://github.com/flutter/flutter/issues/11992
2017-10-20 13:15:20 -07:00
amirh
6bf9f7594a Revert "Move channel and codec related files to common" (#4256)
* Revert "Pass option to reuse an existing runtime controller (#4253)"

This reverts commit 57f361dc6abcd8441c444882c5e8bb99519532f3.

* Revert "Document the Porter-Duff operators. (#4250)"

This reverts commit b15fa9c64e1028187ec9592289919d77a6843802.

* Revert "Move channel and codec related files to common (#4225)"

This reverts commit 674a3f5869d3ae0e7ea3583a2d0942e184817903.
2017-10-20 11:44:56 -07:00
krisgiesing
674a3f5869 Move channel and codec related files to common (#4225)
* Move channel and codec related files to common

This is in preparation for implementing channel and plugin support
for macOS desktop builds.
2017-10-20 09:57:14 -07:00
Ian Hickson
1e21ac3fb7 Documentation improvements - RTL and others (#4248) 2017-10-19 17:30:30 -07:00
5u3it
31585e0def Native keyboard behavior update for multiline input (#4234)
Use sentence capitalization for non-obscuretext fields of TextInputType.text
and TextInputType.multiline on iOS and Android.
2017-10-19 13:56:35 -07:00
P.Y. Laligand
6fcb45991d Move //dart to //third_party/dart. (#4245) 2017-10-19 01:20:38 -07:00
amirh
5c9e072060 Support accessibility announcements in the iOS accessibility_bridge (#4244) 2017-10-18 16:37:52 -07:00
Yegor
23f5ccd25c Add alwaysUse24HourFormat and textScaleFactor (#4202)
* systems/settings channel split

* merge textScaleFactor and alwaysUse24HourFormat into flutter/settings channel

* add debugOverrideAlwaysUse24HourFormat

* implement textScaleFactor on iOS

* address comments

* remove debugOverrideAlwaysUse24HourFormat

* clang-format
2017-10-18 16:13:43 -07:00
gspencergoog
faabc10178 Support correct keyboards for multi-line text editing. (#4115)
This addresses part of #8028, implementing the Engine-side support for it.
2017-09-26 12:53:19 -07:00
Michael Goderbauer
dd68239b43 Don't crash on iOS if there is only a single SemanticsNode (#4128)
* Don't crash if there is only a single SemanticsNode

Previously, the code assumed that the root SemanticsNode will allways have a child. This is not true as can be seen in the hello_world example app, which would crash when a11y is turned on.

* review comment
2017-09-20 14:17:50 -07:00
Michael Goderbauer
c5602ab197 Three finger a11y scrolling for iOS (#4123)
* Three finger a11y scrolling for iOS

* review comments

* review feedback
2017-09-20 09:59:14 -07:00
Michael Goderbauer
773dfb549a Silence Wawrning (#4122)
Follow-up to https://github.com/flutter/engine/pull/4110
2017-09-19 10:15:39 -07:00
Michael Goderbauer
af74ea6177 Allow nested semantics on iOS (#4110)
* Allow nested semantics on iOS

* review comments

* review comments
2017-09-18 17:27:14 -07:00
Carlo Bernaschina
2820d0e722 Fix engine on iOS (#4113)
Related https://github.com/flutter/engine/pull/4105
2017-09-15 09:59:53 -07:00
Carlo Bernaschina
0c1e217287 Add anchor events for developer centric timeline (#4105)
By adding these events the new developer centric timeline will be able
to identify and correlate events related to the different stages of the
drawing pipeline.

Roll Dart to 62045a4590a333ae557f8f261a909ee75449cd70
2017-09-14 20:18:07 -07:00
Ryan Macnak
b5f5377186 Remove use of CADisplayLink targetTimestamp, which was only added in iOS 10.0. (#4108) 2017-09-14 10:48:28 -07:00
Michael Goderbauer
08961f8ec5 Format all c-like sources with clang-format (#4088)
* format

* license script adaptions

* updated licenses

* review comments
2017-09-12 15:36:20 -07:00
George Kulakowski
6502090278 Fix remaining ftl->fxl conversions (#4091)
* Fix remaining ftl->fxl conversions

The previous scripting pass at this did not account for objective c file endings

* Update tonic DEPS reference to the post-fxl version
2017-09-11 16:31:18 -07:00
George Kulakowski
3aa7522c11 Rename ftl to fxl in Fuchsia specific code (#4090) 2017-09-11 15:58:48 -07:00
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
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
Sarah Zakarias
e5395796cd fix binaryMessenger in FlutterAppDelegate (#4030) 2017-08-29 13:58:26 +02:00
Ian Hickson
60bce44c9f Implement i18n features in the a11y API. (#4029) 2017-08-28 16:12:39 -07:00
xster
8776c934a2 Let the FlutterAppDelegate's messenger be customizable if the rootViewController isn't a FlutterViewController (#3916)
* Customizable messenger

* rename
2017-08-23 18:50:14 -07:00
Chris Bracken
0062701c7c Disable all rasterizer work while backgrounded on iOS (#4002)
On iOS, backgrounded applications are not permitted to execute GPU work.
See [1].  When backgrounding the application, we now tear down the
underlying iOS render surface, and re-create when the app returns to
foreground.

See [2] for a Technica Q&A on GL-related crashes when rendering is
attempted by a backgrounded application.

[1]: https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ImplementingaMultitasking-awareOpenGLESApplication/ImplementingaMultitasking-awareOpenGLESApplication.html#//apple_ref/doc/uid/TP40008793-CH5-SW1
[2]: https://developer.apple.com/library/content/qa/qa1766/_index.html
2017-08-22 19:57:52 -07:00
Chris Bracken
600567ef15 Fire TextInputClient.updateEditingState on text changes (iOS) (#3995)
For consistency with Android, when the engine receives a
TextInput.setEditingState message from the framework, and the text has
changed, we now send a TextInputClient.updateEditingState message back
to the framework with the updated state from the engine. The framework
currently relies on this behaviour to trigger onChanged events in
certain scenarios (e.g., on tapping Paste in the selection controls).

Note: it may be more desirable for the framework to trigger the
onChanged calls without relying on the return message from the engine,
but this change ensures consistent behaviour across iOS and Android
until we've evaluated the pros/cons of such an approach.
2017-08-21 12:39:56 -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
Sarah Zakarias
2b7a8f1490 Add flutter-driven navigation on iOS (#3865) 2017-08-09 13:01:35 +02:00
Chinmay Garde
b08167ba52 Implement all known blink::PointerData fields on iOS. (#3955) 2017-08-07 15:04:10 -07:00
Chinmay Garde
63861464df Update buildroot to account for stricter warning flags. (#3939) 2017-07-31 16:22:15 -07:00
xster
cafbd9b0b5 Extend iOS's drawing time to viewWillAppear <-> viewDidDisappear (#3934)
* fix (with squashed debug stuff)

* clean up
2017-07-31 15:12:32 -07:00