1. 09 Dec, 2015 2 commits
  2. 08 Dec, 2015 4 commits
  3. 07 Dec, 2015 1 commit
    • Hixie's avatar
      didChangeNext() · 18d5c5e7
      Hixie authored
      Replace didPushNext() and didReplaceNext() with didChangeNext(), and
      call it in more cases, so that a route can easily track the next route.
      
      Use this to make TransitionRoute properly track its next route so that
      you can do next-route-driven animations that work even with removes,
      replaces, and other crazy manipulations of the navigator stack.
      18d5c5e7
  4. 05 Dec, 2015 1 commit
  5. 04 Dec, 2015 2 commits
  6. 03 Dec, 2015 5 commits
    • Hixie's avatar
      Be more discerning with forward transitions · cd19702c
      Hixie authored
      So you don't fade out when going to a popup menu, for example.
      cd19702c
    • Hixie's avatar
      Navigator.canPop(context) · cf7a3b04
      Hixie authored
      cf7a3b04
    • Hixie's avatar
      Let MaterialApp.onGenerateRoute return a Route · df07a69b
      Hixie authored
      Also:
       - minor code reindents in places.
       - reset the widget tree between tests.
       - once you generate a route, don't let its builder change
         (previously it would keep changing as the routes table changed).
       - revert the stocks app toolbar-fading-on-forward-transition thing.
      df07a69b
    • Adam Barth's avatar
      Fix a large number of Drawer bugs · 1d195cb9
      Adam Barth authored
      This patch restructures how we handle drawer. The drawer is now a child of the
      Scaffold, which wraps the Drawer in a DrawerController. The DrawerController
      manages the interaction with the navigator as well as the edge swiping. The
      DrawerController's state machine is driven almost entirely off its Performance,
      which it now owns completely.
      
      Fixes #90
      Fixes #187
      Fixes #192
      Fixes #194
      Fixes #604
      1d195cb9
    • Hixie's avatar
      buildForwardTransition() · bc5307f5
      Hixie authored
      For those times when you want to do something as you move away from a
      route into the next one, as well as when you move into it from the
      previous one.
      bc5307f5
  7. 30 Nov, 2015 2 commits
  8. 26 Nov, 2015 2 commits
    • Hixie's avatar
      Turn the LocalHistoryRoute into a mixin. · 4e513822
      Hixie authored
      4e513822
    • Hixie's avatar
      Clean up the Navigator API again. · 88e74693
      Hixie authored
      * Split didPush() into didPush() and install(), so that we can install
        the overlays without triggering the push logic. This will be used in a
        subsequent patch to implement route replacement.
      
      * Split didPop() into didPop() and dispose(), so that we can remove
        overlays without triggering the pop logic. Also for a subsequent patch
        that implements replacement.
      
      * Clean up _navigator on the routes when the Navigator itself is
        disposed.
      
      * Drop the forwarding logic on willPushNext() -- now didPushNext() --
        and didPopNext(), since we no longer have StateRoutes to get in the
        way.
      
      * Implement isCurrent more broadly and without having to keep track of
        state.
      
      * Provide some toString()s on NamedRouteSettings and ModalRoutes.
      
      * Make OverlayState.initState() use the insertAl functionality.
      
      * Make OverlayRoute.builders abstract since that way you'll catch when
        you forget to do it. If you don't want overlays, don't inherit from
        this class.
      
      * Made handleStatusChanged() on TransitionRoute public so that it can be
        overridden by subclasses.
      88e74693
  9. 24 Nov, 2015 1 commit
  10. 22 Nov, 2015 2 commits
  11. 20 Nov, 2015 3 commits
    • Hixie's avatar
      Route refactor · 6e371875
      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.
      6e371875
    • Hixie's avatar
      Give type arguments to routes. · 13f3a9be
      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.
      13f3a9be
    • Hixie's avatar
      OverlayRoute.finished() · 2e0e6aa4
      Hixie authored
      Rather than have delayed calls to super.didPop(), which raises my
      eyebrow every time I see it, this provides a separate finished()
      function to call, and uses the convention that if you want to call it
      yourself, you just don't call super.didPop().
      2e0e6aa4
  12. 19 Nov, 2015 2 commits
    • Adam Barth's avatar
      Popup menu in Stocks throws exception · 2d824894
      Adam Barth authored
      Previously, we were putting a ForcedLayer just below the overlay, but that
      causes trouble for routes like the popup menu that want to position themselves
      inside the overlay. Instead, I've moved the ForcedLayer down into ModalRoute.
      
      Also, rename ForcedLayer to RepaintBoundary, which is more descriptive of what
      this widget does.
      
      Fixes #485
      2d824894
    • Hixie's avatar
      Snackbar Refactor · 954713ab
      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.
      954713ab
  13. 18 Nov, 2015 1 commit
    • Adam Barth's avatar
      Reduce record time in Stocks drawer animation by 55% · 298f4a6e
      Adam Barth authored
      Now we use a ForcedLayer in the navigator overlay to cache the recording for
      each entry in the overlay. This mechanism just caches the display list, not the
      underlying pixels.
      
      Also, remove the "dispose" notification in the Layer tree because it was
      disposing layer too eagerly. We don't actually need this notification for
      anything other than eagerly freeing some C++ memory.
      298f4a6e
  14. 17 Nov, 2015 1 commit
  15. 16 Nov, 2015 1 commit
    • Hixie's avatar
      Move Material page animations to Material layer. · 309d25d4
      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.
      309d25d4
  16. 13 Nov, 2015 1 commit
  17. 12 Nov, 2015 1 commit
  18. 06 Nov, 2015 1 commit
    • Adam Barth's avatar
      Heroes don't reverse any more · 70b14e8a
      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
      70b14e8a
  19. 03 Nov, 2015 1 commit
    • Adam Barth's avatar
      Stocks list doesn't update when stocks are loaded · 78d35391
      Adam Barth authored
      Previously, we passed widgets up the hierarchy to display them in the overlay,
      but that breaks the change propagation logic because those widgets won't get
      rebuilt.  Now we pass WidgetBuilders instead, which can be rebuilt when the
      overlay rebuilds.
      
      Fixes #1913
      78d35391
  20. 30 Oct, 2015 1 commit