It seems that setTraversalBefore doesn't work as well as setTraversalAfter for some reason, although I'm using them the same way. Some apps would lock up TalkBack when traversing if setTraversalBefore was set, but not with the equivalent setTraversalAfter.
It's not entirely clear why this is, but I'm going with this to at least get it fixed for apps we know about.
Fixes#14600
In getFlutterRoot(), scripts loaded via data: URIs are URI encoded.
getFlutterRoot() scans the contents of the data for the file:// URI path
of the Flutter SDK, which itself is URI-encoded. The end result is that
if the SDK path contains a space, the embedded file:// URI will contain
a %20. When this is encoded in a data: URI, the contents are
URI-encoded, resulting in %2520, since the % is encoded to %25.
This patch decodes the data: URI before extracting the SDK file:// URI.
The Flutter engine now supports package: and file: imports that resolve
to paths on disk that include spaces and other URI-escaped characters.
This patch eliminates the restriction that Dart source paths not include
%20 (or other URI-escaped characters) in their paths in flutter_tool
tests.
Includes:
* Roll topaz to 531e2778d86b213bc663ea51bb0e0dde33d8ac8c (#4657)
This supports SDK/project paths including URI-escaped UTF-8 sequences
(e.g., including spaces, accented characters, etc.).
* Reduce noise in xcodebuild stdout
* Reduce output from cleaning, from non failing xcode outputs and from script
* Check xcodebuild clean's exit code
* Revert "Reduce noise in xcodebuild stdout"
This reverts commit 222a26f55f.
Includes:
* Roll topaz to 08a3394395036a2bb9b556f5b0eb8f365d2c0fa5 (flutter/engine#4650)
* [fuchsia] Add missing AOT entry points for FromFileResult and MapResult. (flutter/engine#4649)
* [fuchsia] Fix compile-time error introduced in 58e6c23. (flutter/engine#4651)
* Roll topaz to 046105efd225ed61c94e65dbd4a528256a3a34a9 (flutter/engine#4652)
Topaz rolls enable:
* Support for Flutter SDK, project paths including spaces (flutter/engine#4650)
* Support for Flutter SDK, project paths including arbitrary UTF-8 sequences (flutter/engine#4652)
* Roll engine to pre-dart roll
* Roll engine to pick up updated dart
* Apply Map changes
* Move to dev.22
* Fix some analysis issues
* Silent analyzer
* More consts
* More const massaging
* Yet more const massaging
* Yet more const massaging
* Use nonconst()
This allows const GlobalObjectKey(0) to be concisely formatted as
[GlobalObjectKey int#0000] in both Dart 2 and Dart 1 modes.
Without this change it would be formatted as
[GlobalObjectKey<State<StatefulWidget>> int#0000] because in Dart 2
types are instantiated to bounds.
In addition to retaining general readability this also fixes few
tests that rely on this short string representation (see
test/widgets/global_keys_duplicated_test.dart).
The current ARM64 back end generates code that crashes on some devices,
including Pixel phones. With this change, the android-arm64 target will
not be used by "flutter run" unless explicitly requested.
This is intended as a workaround until we can roll out an engine with the
required Dart VM fix.
See https://github.com/flutter/flutter/issues/14454
By default flutter run will build a 64-bit APK if the attached Android device
is 64-bit. Specifying --target-platform=android-arm will deploy a 32-bit APK
to a 64-bit device.
Fixes https://github.com/flutter/flutter/issues/14526
Channels don't preserve Map and List type arguments: Map<String, Object>
arrives as Map<dynamic, dynamic> to the receiver.
In Dart 2 type system dynamic no longer serves as bottom type so
Map<dynamic, dynamic> can't be assign to a variable of type
Map<String, dynamic>.
Issue #14556
Use mockito in the Dart 2 compliant way:
* use typed(...) in appropriate places to wrap matchers like any;
* don't pass matcher directly into the calls - use `argThat(matcher)`.
Also rename paintColorMatcher to hasColor to match how other similar
functions are named and how the code reads.
* Use explicit types for onClick handler in diagnostics_test.
This test formats it to string and expects exact match.
Before this change onClick had type () => dynamic in Dart 1 and () => Null in
Dart 2.
* Fix strong mode issues in packages/flutter/test/material/dropdown_test.dart
Pass explicit type argument to renderObjectList(...) in expressions like
List<RenderBox> l = tester.renderObjectList(...).toList();
Dart 2 mode inference is not strong enough to infer RenderBox as a type argument
fto renderObjectList and passes RenderObject instead, which later leads to
runtime check failures (because List<RenderObject> is not List<RenderBox>).
* Fix strong mode issues in packages/flutter/test/material/theme_test.dart.
Pass type argument explicity to widgetList. Dart 2 type inference can't infer
it by itself.
* Fix strong mode issue packages/flutter/test/widgets/unique_widget_test.dart
Pass correct type argument to GlobalKey.
* Fix type annotation in packages/flutter/test/material/app_test.dart.
pushNamed returns Future<Object> not Future<String>.