286 Commits

Author SHA1 Message Date
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
Ian Hickson
cbfde9650d Appbar should update when you add a drawer. (#9755)
Also, I had a question about flutter_test matchers and our style guide
says that when I have a question I should update the docs so I did
that and then got a bit carried away.
2017-05-03 12:56:18 -07:00
Jason Simmons
b586a97ad2 Enable physical model shadows (with animation) and change elevation to a double (#9756)
Fixes https://github.com/flutter/flutter/issues/9342
2017-05-03 12:11:01 -07:00
Adam Barth
1d726bbeb5 Left align AppBar title on iOS with multiple actions (#9723)
If there is more than one action, then the AppBar should align the title to the
left according to
<https://material.io/guidelines/platforms/platform-adaptation.html#platform-adaptation-platform-recommendations>
2017-05-02 12:53:03 -07:00
Adam Barth
ea96773fd1 Use horizontal dots on iOS menu button (#9722)
As required by
<https://material.io/guidelines/platforms/platform-adaptation.html#platform-adaptation-platform-recommendations>.
2017-05-02 10:38:50 -07:00
Ian Hickson
89856c0e5b Adjust the defaults behaviour of scroll views. (#9679)
* Adjust the defaults behaviour of scroll views.

Now, primary scroll views scroll by default. Others only scroll if necessary.

* apply suggested changes
2017-05-02 09:14:50 -07:00
xster
f65fea8e2e Create a text validator/formatter mechanism (#9535)
* Add a text formatter interface used by EditingText. Provide some default implementations.

* self nits

* Handle -1 selection offsets

* review notes

* simplify regular expression

* Add whitelisting formatters. Use a custom phone number formatter in text demo.

* review notes

* not being able to addAll(null) is pretty annoying

* review notes

* partial tests

* Add tests

* didn’t end up needing mockito

* move to services
2017-04-28 15:33:38 -07:00
xster
b717963b43 Change Cupertino page transition box shadow to a simple custom gradient (#9673)
Creates another Decoration for drawing outside the decorated box with a gradient to emulate the shadow.

Lets the cupertino transition page's background be transparent.

Fixes #9321
2017-04-28 12:50:20 -07:00
Ian Hickson
11fa80bb78 MediaQuery.of shouldn't give a default return value (#9596) 2017-04-27 15:02:59 -07:00
Ian Hickson
36052e68dd BoxDecoration API changes: backgroundColor -> color et al (#9648)
backgroundColor -> color
backgroundImage -> image
BackgroundImage -> DecorationImage
2017-04-27 14:19:01 -07:00
Ian Hickson
596eb033c7 Loosen the constraints for Stack non-positioned children. (#9581)
Also:

 * Add three explicit sizing modes to Stack for non-positioned
   children: loose, expand, and passthrough. (All three are used.)

 * Fix a bug whereby layers would try to paint in the same frame as
   they were removed from layout (but not detached).

 * Fix a bug whereby Offstage wasn't properly marking the parent dirty
   when changing its sizedByParent flag.

 * Explicitly make Overlay expand non-positioned children.

 * Explicitly have InputDecoration pass through the constraints from
   its Row to its Stack children.
2017-04-25 15:06:02 -07:00