200 Commits

Author SHA1 Message Date
Michael Goderbauer
9db5ebee2c AX fixes for iOS (#3700)
* AX fixes for iOS

With this, the accessibility frame (for VoiceOver, etc.) is drawn at the right position around a widget.

* review comments
2017-05-19 10:22:56 -07:00
Chris Bracken
82815836eb Smarter text/selection will/didChange events (#3699)
Check incoming text editing state and only fire textWillChange:,
textDidChange:, selectionWillChange:, selectionDidChange: when the text
or selection actually changes.

On selectionWillChange: in a text field where auto-correct is enabled,
iOS will attempt to auto-correct the word preceding the cursor. This
change also updates the text before calling selectionWillChange: to
prevent auto-correction on the preceding value of the text field.
2017-05-17 19:36:27 -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
Chris Bracken
f99d3ef108 Adjust bottom padding correctly on iOS keyboard hide (#3684)
Handle willChangeFrame to handle keyboard show, resize, reposition
(split, move floating keyboard) events. Handle willBeHidden events for
keyboard dismissal.

Fixes incorrect bottom padding introduced in
f2581c9bcc32f9e2e7372eb7e94a8aa9f5aab0b2 due to didChangeFrame
notification firing after willBeHidden on keyboard dismissal.
2017-05-11 10:07:37 -07:00
Chris Bracken
f2581c9bcc Update view padding on iOS keyboard frame change (#3681) 2017-05-10 16:35:58 -07:00
Mikkel Nygaard Ravn
006ae2fef4 Forward openURL requests to plugins (#3679) 2017-05-10 23:51:13 +02:00
Chris Bracken
813623a3f8 Set Android keyboard actionLabel only if non-null (#3677) 2017-05-10 12:20:03 -07:00
Sarah Zakarias
d51126b56b Remove urlLauncher and pathProvider from FlutterPlatformPlugin (#3673) 2017-05-10 13:42:13 +02:00
Mikkel Nygaard Ravn
cb5a86a1dc Fix iOS plugin reg docs (#3672) 2017-05-10 08:40:14 +02:00
Chris Bracken
ce14f6907b Disable auto-correct for text editing when obscureText is set (#3661) 2017-05-09 14:55:58 -07:00
Mikkel Nygaard Ravn
cbbf956fcb Add documentation to iOS plugin registry (#3665) 2017-05-09 11:26:02 +02:00
Mikkel Nygaard Ravn
432fc1db4c Use older openURL signature (#3660) 2017-05-08 23:29:59 +02:00
Mikkel Nygaard Ravn
5e6bd48aa5 Add uikit import (#3659) 2017-05-08 22:53:04 +02:00
Mikkel Nygaard Ravn
bf2166b659 iOS plugin registry (#3645) 2017-05-08 21:45:23 +02:00
Mikkel Nygaard Ravn
b273d1ad04 Android plugin registry (#3641) 2017-05-08 21:44:49 +02:00
Chris Bracken
1b01211ee6 Default return key behaviour to 'done' on iOS (#3655)
This change brings iOS return key behaviour in line with current behaviour on
Android.

* Implements TextInputClient.performAction for iOS Adds FlutterTextInputAction
* enum Defaults return key to 'Done' Ends editing and hides the keyboard if
* 'Done' is pressed

Future work is planned to support configurable return/action key behaviour.
See: #9573, #9210, #8028.
2017-05-05 17:40:52 -07:00
Adam Barth
9cfc67ef57 Retrieve the last error from the proper thread (#3649)
Previously, the last error was a global static. Now it is a thread-specific
value, which means we need to visit the UI thread to read the value.
2017-05-04 21:30:39 -07:00
Adam Barth
da0b1f5a36 Make microtask queue be per thread (#3644)
Previously, it was a static. Doesn't have much effect in practice because we
only use this microtask queue for main isolates, which exist on a single
thread.
2017-05-04 15:06:43 -07:00
Chinmay Garde
ffabe5ac10 When pasting an item of type kTextPlainFormat from the pasteboard, ensure there actually is a string in the pasteboard. (#3638) 2017-04-28 15:02:22 -07:00
Mikkel Nygaard Ravn
da8ebf40bd Document channel message value conversions (#3633) 2017-04-28 23:31:11 +02:00
Chris Bracken
7c699ce772 Clamp iOS selection to 0 < pos < length (#3636) 2017-04-27 16:04:30 -07:00
Mikkel Nygaard Ravn
3211d2fca2 Fix corner case errors in platform channels (#3631) 2017-04-27 07:52:56 +02:00
P.Y. Laligand
faa4aba80f Don't build the full FlutterTester bundle on Fuchsia. (#3629)
The flutter_tester executable works just fine.
2017-04-26 10:37:28 -07:00
Chinmay Garde
cfcf10bb41 Call SkGraphics::Init on shell initialization. (#3628)
This ensures SkOpts are initialized before we start using Skia.
2017-04-25 21:47:09 -07:00
P.Y. Laligand
4f8a92ae40 Allow Flutter shell to build for a Mac Fuchsia host. (#3625) 2017-04-25 07:38:08 -07:00
Mikkel Nygaard Ravn
264b7a6dd5 Add hasArgument convenience to MethodCall (#3612) 2017-04-22 14:04:03 +02:00
xster
a5b64899c9 Keep resident runner connected on iOS when screen locks in debug mode (#3610)
* Add debug mode background

* Review notes
2017-04-19 18:00:06 -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
Chinmay Garde
b4a02debaa Update Skia to 30229ac6282981c28ced8f513c8d09684d9d0581 and fix build. (#3602)
* Update Skia to 30229ac6282981c28ced8f513c8d09684d9d0581 and fix build.
* Update licenses.
2017-04-17 17:27:26 -07:00
Chinmay Garde
eebda8ff96 Avoid creating a CGContextRef when generating a CGImageRef from a Skia pixmap. (#3599)
Also, adds trace events so profiling the software backend is easier.
2017-04-17 13:00:58 -07:00
Chris Bracken
5c4e20c4c5 Correct handling for composed character ranges at text.length (#3590)
Ensure that both self.text and self.selectedTextRange are updated before
triggering textDidChange: or selectionDidChange: on the input delegate
(which then re-computes positions). This prevents inconsistencies in
selection vs text position/offset lookups triggered by didChange
notifications.

Ensure that rangeOfComposedCharacterSequenceAtIndex: is only ever called
for index values > 0 && < self.text.length. This prevents such calls for
position with index == self.text.length.

Also reduces unnecessary textDidChange/selectionDidChange notifications:
replaceRange:withText: and setMarkedText:selectedRange: are only ever
called by UIKit and methods called by UIKit (insertText,
deleteBackward), so notification is unnecessary.
2017-04-13 11:48:59 -07:00
Chris Bracken
059ab3a471 Eliminate UITextInput.textContentType (#3587)
textContentType was added in iOS 10, and we target iOS 8. Either way the
framework doesn't (yet) include support for this; keyboard type covers
most bases.
2017-04-12 11:37:54 -07:00
Chris Bracken
a94c7d6bd3 Initial implementation of UITextInput protocol (#3586)
Supports:
* autocorrect, suggestions view/selection.
* Support for Chinese, Japanese, Korean and other languages using
  multi-stage input with candidate selection.
* styling the composing (mark) region for multi-stage input
* key-repeat when backspace held down
* physical and soft keyboard support for arrow key cursor movement and
  selection.
* improved third-party keyboard support

Does not yet support:
* force-touch drag cursor positioning
* auto-positioning the candidates view for multi-stage input methods
  when used with a physical keyboard (e.g., iPad Pro) currently
  positioned at 0,0.
* voice dictation
2017-04-12 11:04:26 -07:00
Chris Bracken
f5a7a086ec Update Objective-C column limit to 100 (#3585)
The Google style guide specifies a limit of 100 columns.
https://google.github.io/styleguide/objcguide.xml?showone=Line_Length#Line_Length

The Chromium style guide specifies 80.
https://chromium.googlesource.com/chromium/src/+/master/styleguide/objective-c/objective-c.md
2017-04-11 15:14:00 -07:00
Ryan Macnak
1fed16fb25 Adjust GN for removal of libdart, take two. (#3584)
Update targets only included in host_debug_unopt.
2017-04-11 09:52:54 -07:00
Ryan Macnak
6d4b153ba8 Revert "Adjust GN for removal of libdart. (#3583)"
This reverts commit f5d0004ebd0db95c4019ca27fde2aceb0b3fe3e3.
2017-04-10 17:07:28 -07:00
Ryan Macnak
f5d0004ebd Adjust GN for removal of libdart. (#3583) 2017-04-10 16:42:27 -07:00
Chinmay Garde
73299f42f4 Package test fonts on the debug runtime mode. (#3582) 2017-04-10 15:41:09 -07:00
Mikkel Nygaard Ravn
6aa49b5657 Add convenience accessors to get arguments from MethodCall w/o unchecked warnings (#3559) 2017-04-09 17:36:05 +02:00
Mikkel Nygaard Ravn
3035ed86e9 Update unit test to also handle null and zero-byte message differently (#3579) 2017-04-09 00:34:43 +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
Chris Bracken
8df4ec7a81 Use Foundation MIN,MAX in place of C++ std::min,max (#3578)
Maintains consistency with other Objective-C code in the engine and
allows us to eliminate a #include.
2017-04-08 12:58:27 -07:00
Jason Simmons
b4088b6479 Backport JSONObject.wrap in order to support Jellybean (#3566) 2017-04-06 10:15:06 -07:00
Jakob Andersen
9c7ad5ad14 Copy Flutter.podspec to engine out directory. (#3560)
So `flutter run --local-engine=...` will work out of the box.

Fixes flutter/flutter#9154.
2017-04-05 09:16:53 +02:00
Chris Bracken
5d9a642257 Update selection base when deleting surrogates (#3558)
Ensure selection base is updated when deleting surrogates

This fixes a bug in which the selection base was not updated when
deleting at index of the trailing char of a Unicode surrogate,
introduced in 38664ac32223228476166b9050ab400c102fda05.

Minor refactor to consolidate logic around NSRange.
2017-04-03 23:12:02 -07:00
Chris Bracken
5b51394b66 Handle Unicode surrogates in FlutterTextInputView (#3557)
* Handle Unicode surrogates in FlutterTextInputView

Fixes a bug introduced in 38664ac32223228476166b9050ab400c102fda05.
2017-04-03 21:49:30 -07:00
Chris Bracken
38664ac322 Maintain FlutterTextInputView text in NSMutableString (#3554)
* Maintain FlutterTextInputView text in NSMutableString

We were converting from/to NSString at the interface of
FlutterTextInputView; instead use NSMutableString to maintain the
internal buffer.

Eliminates nsstring_utils.{h,mm} which no longer has any users.
2017-04-03 17:23:07 -07:00
Chinmay Garde
4eac09481e Remove deprecated FlutterInit. (#3550) 2017-04-03 11:51:38 -07:00
Jason Simmons
29f289acbb Remove dart:jni (#3546)
Fixes https://github.com/flutter/flutter/issues/9129
2017-03-31 13:07:52 -07:00