296 Commits

Author SHA1 Message Date
Ian Hickson
87445e5913 Increase the touch slop. (#11419)
It was 8.0. It's now arbitrarily 18.0.

Changing this required adjusting some tests. Adjusting the tests
required debugging the tests. Debugging the tests required some tools
to help debugging gesture recognizers and gesture arenas, so I added
some. It also required updating some toString() methods which resulted
in some changes to the tree diagnostics logic.

Also I cleaned up some docs while I was at it.
2017-07-27 14:01:06 -07:00
Mehmet Fidanboylu
94ed7dce41 Support automaticallyImplyLeading param in AppBar (#11264)
* Support automaticallyImplyLeading param in AppBar

* Review fixes

* fix review comments
2017-07-22 06:12:42 -07:00
gspencergoog
e4860ef0eb Fix Navigator.pop for named routes. (#11289)
* Prefix and Suffix support for TextFields

* Adding Tests

* Removing spurious newline.

* Fixing a small problem with the test

* Code review changes

* Code Review Changes

* Review Changes

* Export the new StrokeJoin enum

* Added example for line styles, and enabled line join styles.

* Reverting inadvertent change to main.dart.

* Updated due to code review of engine code

* Removed example.

* Added arguments to named routes, with test.

* Fixing some formatting

* Fixing Navigator.pop for named routes.

* Fixing comment.

* Simplifying test.

* Fixing new -> const for Text object.

* Tiny text change (also to kick a new Travis build)

* Added a more realistic test case.

* Reverting unintentional iml changes.

* Fixing trailing newline

* Removing some changes that snuck in.
2017-07-21 11:12:21 -07:00
Mary
bb15e346bb Add slider customizations (#11185)
* adds inactiveColor and showThumb to Slider

* add customizable color and showThumb tests

* remove showThumb, add negative tests
2017-07-20 11:15:22 -07:00
najeira
898c19d753 add physics to TabBarView (#11150) 2017-07-17 16:59:43 -07:00
Jason Simmons
e967b4b3c5 Improve the year selector UI in the date picker (#11214)
Fixes https://github.com/flutter/flutter/issues/10917
2017-07-14 15:08:10 -07:00
Michael Goderbauer
7b90bdc908 Make DropDown accessible (#11149) 2017-07-11 15:23:21 -07:00
Michael Goderbauer
ee632c3919 Exclude modal barrier from semantics on Android (#11024)
* Exclude modal barrier from semantics on Android

* Add tests
2017-07-06 10:15:03 -07:00
Ian Hickson
7ba1879bfc Automatic silver keep alive (#11067)
* AutomaticKeepAlive

A Widget that listens for notifications from widgets that don't want to die.

* Automatically wrap SliverList and SliverGrid children in AutomaticKeepAlive widgets

* Fixes for review comments
2017-07-01 14:16:36 -07:00
Jason Simmons
eb668c3f64 Keep text selection ranges within the length of the text (#11055)
Fixes https://github.com/flutter/flutter/issues/11041
2017-06-30 14:50:11 -07:00
xster
0a915d6faf let the year picker start at the current date instead of the first date (#11042) 2017-06-29 17:13:36 -07:00
Michael Goderbauer
fe40eed362 Provide haptic/acoustic feedback for tap & long-press on Android (#10920)
* Provide haptic/acoustic feedback for tap & long-press on Android

* review comments

* fixed example code

* review comments

* comment fix
2017-06-23 15:02:55 -07:00
Ian Hickson
9adb4a78a6 Deep linking: automatically push the route hiearchy on load. (#10894)
The main purpose of this PR is to make it so that when you set the
initial route and it's a hierarchical route (e.g. `/a/b/c`), it
implies multiple pushes, one for each step of the route (so in that
case, `/`, `/a`, `/a/b`, and `/a/b/c`, in that order). If any of those
routes don't exist, it falls back to '/'.

As part of doing that, I:

 * Changed the default for MaterialApp.initialRoute to honor the
   actual initial route.

 * Added a MaterialApp.onUnknownRoute for handling bad routes.

 * Added a feature to flutter_driver that allows the host test script
   and the device test app to communicate.

 * Added a test to make sure `flutter drive --route` works.
   (Hopefully that will also prove `flutter run --route` works, though
   this isn't testing the `flutter` tool's side of that. My main
   concern is over whether the engine side works.)

 * Fixed `flutter drive` to output the right target file name.

 * Changed how the stocks app represents its data, so that we can
   show a page for a stock before we know if it exists.

 * Made it possible to show a stock page that doesn't exist. It shows
   a progress indicator if we're loading the data, or else shows a
   message saying it doesn't exist.

 * Changed the pathing structure of routes in stocks to work more
   sanely.

 * Made search in the stocks app actually work (before it only worked
   if we happened to accidentally trigger a rebuild). Added a test.

 * Replaced some custom code in the stocks app with a BackButton.

 * Added a "color" feature to BackButton to support the stocks use case.

 * Spaced out the ErrorWidget text a bit more.

 * Added `RouteSettings.copyWith`, which I ended up not using.

 * Improved the error messages around routing.

While I was in some files I made a few formatting fixes, fixed some
code health issues, and also removed `flaky: true` from some devicelab
tests that have been stable for a while. Also added some documentation
here and there.
2017-06-23 14:58:29 -07:00
Jason Simmons
856115b7e2 Clear the selection when a text widget loses focus (#10938)
Fixes https://github.com/flutter/flutter/issues/10911
2017-06-23 14:22:13 -07:00
Jason Simmons
2052741ab3 Use a lookup table to calculate the number of days in a month (#10860)
Fixes https://github.com/flutter/flutter/issues/10541
2017-06-20 11:32:40 -07:00
Ian Hickson
6d32b33997 Text selection handles track scrolled text fields (#10805)
Introduce CompositedTransformTarget and CompositedTransformFollower
widgets, corresponding render objects, and corresponding layers.

Adjust the way text fields work to use this.

Various changes I needed to debug the issues that came up.
2017-06-20 09:35:15 -07:00
Hans Muller
40db1e4bc6 Added InputDecoration helperText, helperStyle (#10852) 2017-06-20 09:33:26 -07:00
Jason Simmons
f8c4a6e0d6 Defer the animation of text fields to the caret position (#10782)
Fixes https://github.com/flutter/flutter/issues/10681
2017-06-19 11:38:42 -07:00
xster
36c3a962c5 Create a CupertinoPageRoute (#10686)
* started copying stuff into cupertino page route

* extracted from material page route. Ready for testing

* works with button and gesture

* tests and docs

* review notes

* review notes
2017-06-14 23:33:14 -07:00
Hans Muller
7ada46677b TabPageSelector colors and indicatorSize (#10665) 2017-06-14 11:25:03 -07:00
Michael Goderbauer
7158646ba7 [accessibility] Announce index of tab in tab bar (#10664)
* [accessibility] Announce index if tab in tab bar

* added TODO
2017-06-14 08:08:24 -07:00
gspencergoog
9f344b695d Adds prefix and suffix support to TextField, per Material Design spec. (#10675)
* Prefix and Suffix support for TextFields

* Adding Tests

* Removing spurious newline.

* Fixing a small problem with the test

* Review Changes
2017-06-13 19:17:04 -07:00
Michael Goderbauer
0774c5194b Add SemanticsNode.isSelected flag (#10610)
* Add SemanticsNode.isSelected flag

* Adds example usage to TabBar

See also https://github.com/flutter/engine/pull/3764

* Review comments

* whitespace fixes

* Fix doc ref and update engine roll
2017-06-13 10:51:17 -07:00
Anatoly Pulyaevskiy
bb119e95fa Make dividers one device pixel thick as defined in Material design spec (#10523)
* Make dividers one device pixel thick as defined in Material design spec

* Updated divider test to check stroke width

* Clarified dividers with 0 height in the docs

* Updated Divider.height docs according to PR feedback
2017-06-12 21:47:56 -07:00
Ian Hickson
d74a5883d9 Allow multi-line text fields with no line limit (#10576) 2017-06-12 21:47:31 -07:00
Hans Muller
123e9e013d Allow TabBars, TabBarViews, TabControllers, with zero or one tabs (#10608) 2017-06-12 15:44:33 -07:00
Ian Hickson
0c2546c657 Factor out some common code in PaintingContext (#10607)
...and remove some highly specialised methods now that they can just
be implemented directly by the previous callers.
2017-06-09 16:50:55 -07:00
Hans Muller
09eba82a9e Add indicatorWeight, indicatorPadding to TabBar (#10600) 2017-06-09 15:06:03 -07:00
perlatus
0cef0aaf35 Check for initialRoute before Navigator.defaultRouteName (#10216)
* Check for initialRoute before Navigator.defaultRouteName

* Default initialRoute to Navigator.defaultRouteName

* Take suggestions from code review

* Add test for old and new routes behavior

* Revert "Add test for old and new routes behavior"

This reverts commit 282fb64b165ed532583e9a5d2e4debe29469fba4.

* Retry: without dartfmt, with dartanalyzer

* Rename tests, check the routes are taken

* Fix flutter analyze --flutter-repo warnings

* Add test for initial vs default route

* Update test and fix analyzer warnings

* Add test for initial route only being used initially
2017-06-07 18:32:29 -07:00
Hans Muller
c445c0880c Don't visit element children of the childless (#10558) 2017-06-07 15:25:39 -07:00
Ian Hickson
ca4f4fc8d1 Make the Brightness estimator public (#10508) 2017-06-05 13:15:43 -07:00
Michael Goderbauer
104725f384 Adds a widgets that blocks all semantics of widgets below it in paint order within the same container (#10425) 2017-06-02 18:14:27 -07:00
xster
a8777ce6b0 CupertinoNavigationBar part 1 - extract common layout logic (#10337)
Extract layout logic in material app bar to a common file that can be reused for cupertino
2017-06-01 16:24:14 -07:00
xster
c168afc070 Fix performance regression with _InheritedTheme (#10311)
Check ThemeData instead of Theme.
2017-05-31 11:19:37 -07:00
Jason Simmons
2ab60e93ef Scroll text fields when the caret moves outside the viewport (#10323)
Fixes https://github.com/flutter/flutter/issues/9923
2017-05-31 10:33:23 -07:00
Hans Muller
0cadbce490 Added Navigator.removeRoute() (#10298) 2017-05-24 15:16:03 -07:00
xster
69c2542458 CupertinoTabBar (#10264)
Move some Cupertino colors to a common file. 

Create a CupertinoTabBar widget to mimic iOS looks
2017-05-24 12:23:15 -07:00
Jason Simmons
61e938aa1e Avoid divide by zero in scroll thumb rectangle calculations (#10271) 2017-05-24 09:52:09 -07:00
Ian Hickson
59025702db AppBar: fix bugs, add docs, add samples (#10223)
I added some tests for the bug that I fixed.
I added docs for IconButton and AppBar.
I added some new constructors for FractionalOffset.
2017-05-23 17:48:54 -07:00
Hans Muller
04d418beac Correct the initial rendering of non-scrollable dropdown menus (#10255) 2017-05-23 16:55:57 -07:00
xster
40b67bb187 Move icons stuff from material to widget (#10192)
Moved everything icons related except the material icon button and the materialicon font list to widget
2017-05-21 16:57:31 -07:00
Adam Barth
81b76c2bb8 Make CircularProgressIndicator's stroke width configurable (#9794)
Fixes #9062
2017-05-19 21:56:07 -07:00
xster
95e9e7e9e7 Theme inserts IconTheme into tree (#10179)
* Let Theme insert an IconTheme into the widget tree

* flip the order, no real reason

* Let icon theme use its own fallback

* review notes

* more review notes
2017-05-19 18:36:50 -07:00
Ian Hickson
cd6e3b1ac2 CheckboxListTile, RadioListTile, SwitchListTile (#10160) 2017-05-19 08:46:17 -07:00
Ian Hickson
61c56ba15f Make Slider take up whatever space it has. (#10132)
Previously it was (arbitrarily?) set to 144.0 pixels wide.
2017-05-17 14:31:55 -07:00
Ian Hickson
940473e5d6 Don't crash if Slider is given an empty range. (#10133)
Instead just disable the slider.

Fixes https://github.com/flutter/flutter/issues/10055
2017-05-16 19:35:01 -07:00
Ian Hickson
8b5ece7ca9 Report semantics geometry in physical units. (#10094)
Previously we used logical pixels. This made the accessibility metrics
tiny on modern devices, since the OS works in physical units.

Also add a bit more debugging info and some docs.
2017-05-16 16:43:22 -07:00
Adam Barth
49b183c502 Estimate the brightness of the primary color (#10071)
If the caller doesn't explicitly give the brightness of the primary
color, we now estimate it using an algorithm from the Web Content
Accessibility Guidelines.

Also, this patch contains a function that converts RGB colors to
HSVColors. I was originally going to use that, but the WCAG algorithm
ended up seeming like a better choice. The patch still includes this
function because it's generally useful.

Fixes #5718
2017-05-14 10:09:52 -07:00
Hans Muller
1157812bb9 Added ExpansionTile and deprecated TwoLevelList et al (#9938) 2017-05-09 16:32:01 -07:00
Hans Muller
a6eb0a3e38 Gallery animation demo back button update (#9853) 2017-05-08 10:13:13 -07:00