- 22 Nov, 2015 1 commit
-
-
Hixie authored
Now we only use it for things related to ModalRoute and ModalBarrier. (This is easy now that ephemeral routes are gone, so there's no other kind of route to distinguish against.)
-
- 20 Nov, 2015 3 commits
-
-
Hixie authored
- Removed the concept of ephemeral routes. - Renamed the two _MenuRoutes to _PopupMenuRoute and _DropDownRoute. - Added type arguments in various places: - DropDownMenu - _DropDownRoute - _ModalBottomSheetRoute - PopupMenuItem - _PopupMenu - _PopupMenuRoute - Made _ModalBottomSheetRoute, the two ex _MenuRoutes, and _DialogRoute all inherit from ModalRoute, via PopupRoute. - Change "Dropdown" and "DropDown" to "DropDown" consistently. - Made MaterialPageRoute inherit from PageRoute. - Made ModalBarrier not create a box if it's always transparent. - Exposed the Futures on TransitionRoutes. - Fixed that menus were no longer dismissable by tapping the modal barrier.
-
Hixie authored
These end up not actually being used, currently, because we don't have generic methods, which you'd need for showDialog() and friends, and we don't have any way to parameterise a class type at runtime, which you'd need for MaterialApp routes, but it's a step in the right direction.
-
Hixie authored
- `Scaffold.of(context).showBottomSheet(widget);` - Returns an object with .closed Future and .close() method. - Uses a StateRoute to handle back button. - Take the Navigator logic out of the BottomSheet widget. - Support showing a sheet while an old one is going away. - Add Navigator.remove().
-
- 19 Nov, 2015 1 commit
-
-
Hixie authored
"showSnackBar()" is now a feature of a Scaffold. To get to a Scaffold you either use a global key (`scaffoldKey.currentState.showSnackBar(...)`), or you use `Scaffold.of(context)`. Snack bars no longer have a route. They are entirely managed by the Scaffold. Fixes #432. Snack bars now queue up when you have several of them. Fixes #374. Snack bars now auto-size themselves around their contents. This is step one towards implementing multiline snack bars. Snack bars now self-dismiss after some per-snackbar configurable period. The self-dismissing pauses while a dialog is up above the snackbar (or anything that uses ModalRoute). To enable this, there's now a `ModalRoute.of(context)` API that returns the current ModalRoute, and you will be rebuilt if you asked for this and the route's "current" status changes. To implement this, the Navigator now rebuilds unconditionally any time it pushes or pops a route. Snack bars now use the curves that Android uses for snack bars. Snack bar contents now fade in.
-
- 18 Nov, 2015 1 commit
-
-
Hixie authored
I'm planning on adding more .of() functions and so to avoid further copypasta I'm providing some general utility functions here.
-
- 17 Nov, 2015 1 commit
-
-
Hixie authored
This makes HeroController ignore StateRoutes when deciding where to animate heroes to and from.
-
- 16 Nov, 2015 1 commit
-
-
Hixie authored
PageRoute is now MaterialPageRoute. This also changes the following: - Now the HeroController is a Navigator observer, rather than a feature of HeroPageRoutes, which are gone. This means heroes can work between any kind of ModalRoute now. - ModalPageRoute is moved from modal_barrier.dart to routes.dart. - It allows routes to opt-out of their modal barrier being a shortcut to popping the route. - Features of PageRoute that aren't Material-specific get promoted to ModalRoute features: storage, the subtree key, offstageness... The AnimatedModalBarrier is still a ModalRoute feature.
-
- 06 Nov, 2015 2 commits
-
-
Adam Barth authored
We need to use the performance for the "from" route when going backwards. Also, fix a bug in the HeroParty where it would call the quest finished callback multiple times. Fixes #1958
-
Adam Barth authored
These types belong at the MaterialApp level. Fixes #1969
-
- 05 Nov, 2015 1 commit
-
-
Hixie authored
- runApp(new MaterialApp()) was crashing long after the constructor. Now it asserts in a more useful location. - remove the default name for NamedRouteSettings. It was unused anyway.
-
- 30 Oct, 2015 1 commit
-
-
Adam Barth authored
-
- 27 Oct, 2015 1 commit
-
-
Ian Hickson authored
- Change RouteArguments to pass the route's BuildContext rather than the Navigator. This caused the bulk of the examples/ and .../test/ changes (those are mostly mechanical changes). It also meant I could simplify Navigator.of(). - Make initState() actually get called when the State's Element is in the tree, so you can use Foo.of() functions there. Added a test for this also. - Provide a RouteWidget so that routes have a position in the Widget tree. The bulk of the route logic is still in a longer-lived Route object for now. - Make Route.setState() only rebuild the actual route, not the whole navigator. - Provided a Route.of(). - Provided a Route.writeState / Route.readState API that tries to identify the clients by their runtimeType, their key, and their ancestors keys, up to the nearest ancestor with a GlobalKey. - Made scrollables hook into this API to track state. Added a test to make sure this works. - Fix the debug output of GestureDetector and the hashCode of MixedViewport. - Fixed ScrollableWidgetListState<T> to handle infinite lists.
-
- 22 Oct, 2015 1 commit
-
-
Adam Barth authored
Now you don't need to pass the navigator around everywhere.
-
- 21 Oct, 2015 3 commits
-
-
Hixie authored
-
Hixie authored
This grid makes it significantly easier to track down errors when you're looking at coordinates in a render tree dump and want to see if they're what you expect or if they're wildly away from the right location.
-
Hixie authored
Assert at build time that PageRoute route builders do not return null widget trees. Also very minor new code comments and code reorg to help make the heroes patch easier to review. (These are changes that are unrelated to Heroes but that were part of the Heroes patch.)
-
- 20 Oct, 2015 2 commits
-
-
Adam Barth authored
-
Adam Barth authored
The style we use for callbacks in widgets is "onFoo". These classes were using an order naming convention and just called their callbacks "callback".
-
- 10 Oct, 2015 1 commit
-
-
Adam Barth authored
-
- 09 Oct, 2015 2 commits
-
-
Hixie authored
...once the animation is done.
-
Adam Barth authored
These are now part of material.dart.
-
- 08 Oct, 2015 2 commits
-
-
Hixie authored
-
Adam Barth authored
It was trying to grab the route's performance before it was created. Now we create the performance eagerly again.
-
- 07 Oct, 2015 2 commits
-
-
Hixie authored
Previously, RenderObjectElements didn't support being marked dirty. This is fine, except for MixedViewport and HomogeneousViewport, which have builder functions to which they hand themselves as a BuildContext. If those builder functions call, e.g., Theme.of(), then when the theme changes, the Inherited logic tries to tell the RenderObjectElement object that its dependencies changed and that doesn't go down well. This patch fixes this by making RenderObjectElement a BuildableElement, and making MixedViewport and HomogeneousViewport hook into that to rebuild themselves appropriately. Also, this was only found at all because ThemeData didn't implement operator==, so we were aggressively marking the entire tree dirty all the time. That's fixed here too. Also, I changed card_collection.dart to have more features to make this easier to test. This found bugs #1524, #1522, #1528, #1529, #1530, #1531.
-
Adam Barth authored
This patch prepares us to create routes that control their performances more closely.
-
- 06 Oct, 2015 3 commits
-
-
Hans Muller authored
The margins make using showMenu's menuPosition argument difficult and they're not really needed. I also made a few small gratuitous changes in navigator.dart.
-
Adam Barth authored
Instead of waiting until build(), we now create the performance for a route in its constructor.
-
Adam Barth authored
Now SnackBar is an ephemeral route that uses a Placeholder to put itself into the Scaffold. Fixes #673
-
- 05 Oct, 2015 3 commits
-
-
Hixie authored
(These are changes cherry-picked from in-flight branches since they are more independent and could be helpful even without those changes.) - Change RouteBuilder's signature to take a single argument in which the other fields are placed, so that we can keep iterating on those arguments without having to break compatibility each time. Also, this makes defining route builders much simpler (only one argument to ignore rather than a variable number). - Expose the next performance to RouteBuilders, since sometimes the route itself might not be where it's used. - Allow BuildContext to be used to walk children, just like it can for ancestors - Allow BuildContext to be used to get the Widget of the current BuildContext - Allow StatefulComponentElement to be referenced with a type specialisation so that you don't have to cast when you know what the type you're dealing with actually is.
-
Hixie authored
Ensure that if a route's performance is dismissed before the route is popped, that we pop the route.
-
Adam Barth authored
Fixes #1170
-
- 01 Oct, 2015 3 commits
-
-
Hixie authored
This is step 1 in making it possible to have hero transitions between routes. To make it possible for a route to have an "exit" animation when a new route has been pushed on top of it, we provide the next route's AnimationPerformance to the build function. It's null if there is no next route or if the next route has no performance.
-
Hixie authored
...for consistency with the other Route subclasses: ``` dialog.dart: class DialogRoute extends Route drag_target.dart: class DragRoute extends Route navigator.dart: class PageRoute extends Route navigator.dart: class StateRoute extends Route popup_menu.dart: class MenuRoute extends Route ```
-
Adam Barth authored
-
- 21 Sep, 2015 1 commit
-
-
Adam Barth authored
All the use cases for EventDisposition are now addressed by the gesture detection system.
-
- 18 Sep, 2015 3 commits
-
-
Hixie authored
Instead of having to manage the popup menu from your app's build function, you now just call showPopupMenu() with the menu's position and it takes care of everything for you. This solves the problem that the popup menu was trying to mutate the state of the navigator from within its own initState() function. Also, remove the "route" argument to RouteBase.build() since it equals "this" by definition... Also, remove ModalOverlay, and instead put that logic in the navigator.
-
Hixie authored
- Fix AnimationTiming to have defaults for 'interval' and 'curve' since that seems to be how we use it. - Merge RouteBase.build and RouteBase.buildTransition - Get rid of HistoryEntry, since it added nothing - Broke out RouteBase.createPerformance() so subclasses can change what is created. - Build the routes backwards so that we more efficiently avoid building hidden routes. - Introduce an explicit way (!hasContent) for RouteState to avoid building, rather than the implicit "build returns null" we had before.
-
Hixie authored
This fixes #1103.
-
- 08 Sep, 2015 1 commit
-
-
Adam Barth authored
Move the animation libraries into src/animation and change importers to use package:sky/animation.dart. Also, move scheduler.dart into the animation library so that the animation library can be self-contained.
-