1. 15 Sep, 2016 1 commit
  2. 07 Sep, 2016 1 commit
  3. 16 Jun, 2016 2 commits
    • pq's avatar
      Dead code and switch cleanup (continued). · 3e9067a4
      pq authored
      Prep to get us ready to pull in a new dev SDK and bump our analyzer DEP.
      
      * updates `crypto` (required by fresh analyzer)
      * fixes newly flagged dead code warnings
      * fixes switches that fall through and don't return
      3e9067a4
    • pq's avatar
      Dead code and switch cleanup (continued). · e8d1df07
      pq authored
      Prep to get us ready to pull in a new dev SDK and bump our analyzer DEP.
      
      * updates `crypto` (required by fresh analyzer)
      * fixes newly flagged dead code warnings
      * fixes switches that fall through and don't return
      e8d1df07
  4. 14 Jun, 2016 2 commits
    • pq's avatar
      Added asserts. · f5a4e632
      pq authored
      f5a4e632
    • pq's avatar
      Add missing returns. · 7a955487
      pq authored
      As of `1.18.0-dev-0`, these cases will get flagged.  In the meantime, the
      7a955487
  5. 07 Jun, 2016 1 commit
  6. 25 Apr, 2016 1 commit
    • Adam Barth's avatar
      Block should work inside LazyBlock (#3546) · cc9d602b
      Adam Barth authored
      Previously we were locking down the state even when calling layout in
      LazyBlock. Now we lock only when building children. Making this work well
      involved moving the catch out of lockState and into the few callers who
      actually wanted it.
      
      Fixes #3534
      cc9d602b
  7. 23 Apr, 2016 1 commit
  8. 05 Apr, 2016 1 commit
    • Adam Barth's avatar
      Adds a first draft of LazyBlock · 618e7e49
      Adam Barth authored
      LazyBlock is intended as a replacement for MixedViewport. Rather than
      
      maintaining a table of all the observed child sizes (like
      
      MixedViewport), LazyBlock works by dead reckoning the location of the
      
      children based on the existing viewport. This approach makes it easier
      
      to resize children because LazyBlock doesn't cache any additional
      
      information that would need to be invalidated.
      
      
      
      This patch contains a first draft of LazyBlock that works in a simple
      
      usage scenario. Subsequent patches will replace
      
      ScrollableMixedWidgetList with LazyBlock and port the existing
      
      ScrollableMixedWidgetList tests over to LazyBlock.
      
      
      
      Related to #3075
      618e7e49
  9. 02 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Rationalise all our exception handling. · ee703da9
      Ian Hickson authored
      - Create a FlutterErrorDetails struct-like class that describes an
      
        exception along with more details that aren't in the exception, like
      
        where it was caught and what was going on when it was caught.
      
      
      
      - Provide a FlutterError static API for handling these objects:
      
      
      
        - FlutterError.onError which is called whenever Flutter catches an
      
          error.
      
      
      
        - FlutterError.reportError() which handles an error.
      
      
      
        - FlutterError.dumpErrorToConsole() which is the default behavior
      
          for onError.
      
      
      
      - Removes all the existing exception handler callbacks.
      
      
      
      - Replaces all the existing places that described exceptions using
      
        debugPrint with calls to FlutterError.reportError().
      
      
      
      - Extend lockState() to also catch exceptions, so that we catch
      
        exceptions that happen during finalizers.
      
      
      
      - Make the test framework catch errors and treat them as failures.
      
      
      
      - Provide a mechanism to override this behavior in the test framework.
      
      
      
      - Make the tests that used to depend on the exception handler
      
        callbacks use this new mechanism.
      
      
      
      - Make pump() also support the phase argument.
      
      
      
      - Improve some tests using these new features.
      
      
      
      Fixes #2356, #2988, #2985, #2220.
      ee703da9
  10. 31 Mar, 2016 1 commit
    • Kris Giesing's avatar
      Part 2 of independent layout pipelines · 9dfd5d40
      Kris Giesing authored
      Adds BuildOwner to manage the dirty list and build processing for
      widgets/elements, and adds a widget unit test to make sure separation
      is enforced.
      
      Fixes #2723
      9dfd5d40
  11. 23 Mar, 2016 1 commit
  12. 22 Mar, 2016 1 commit
  13. 21 Mar, 2016 1 commit
  14. 14 Mar, 2016 2 commits
  15. 12 Mar, 2016 5 commits
  16. 11 Mar, 2016 1 commit
    • Adam Barth's avatar
      Prepare to make RenderObjectElement buildable · 0327141c
      Adam Barth authored
      This patch prepares us to pass a BuildContext to RenderObjectWidgets, which
      will make it possible to rebuild RenderObjectElements:
      
       * Delay creation of the render object until mount(). That will let us pass
         `this` to createRenderObject and have the inherited elements be initialized.
      
       * Cleanup widgets that take builder closures to prepare for their
         RenderObjectElement to be rebuilt more often.
      
       * Add a test for the interaction between inherited widgets and
         MixedViewport.
      
      Related to #2598
      0327141c
  17. 04 Mar, 2016 1 commit
  18. 12 Feb, 2016 1 commit
  19. 10 Feb, 2016 1 commit
  20. 06 Feb, 2016 1 commit
    • Adam Barth's avatar
      Remove HomogeneousViewport · 5b896694
      Adam Barth authored
      The virtual viewport machinery now handles all of these use cases.
      Previous clients of ScrollableWidgetList can use ScrollableLazyList
      instead.
      5b896694
  21. 27 Jan, 2016 1 commit
    • Adam Barth's avatar
      updateChildren() needs to walk the list forward · 05839e51
      Adam Barth authored
      This patch changes the framework to walk the child list forwards so that build
      functions with global side effects do sensible things. Specifically, if you
      have a number of autofocusable children, the first one the list will acquire
      the focus because it gets built first now.
      
      Fixes #182
      05839e51
  22. 14 Jan, 2016 1 commit
    • Adam Barth's avatar
      Stocks has both tabs reified in the wiget tree · b5ed355b
      Adam Barth authored
      We were recomputing which widgets to show only when we were on the other side
      of the repaint boundaries. That doesn't work well for pageable lists because we
      come to rest exactly on a repaint boundary, which means we don't cull the other
      page.
      
      After this patch, we recompute the set of widgets using an edge-trigger when we
      hit the boundary. That's better than using a level-trigger so that we don't
      continuously recompute the set of widget as we sit at the boundary.
      b5ed355b
  23. 11 Jan, 2016 1 commit
  24. 07 Jan, 2016 1 commit
  25. 06 Jan, 2016 3 commits
    • Adam Barth's avatar
      Switch PageableList over to using RenderList · e64d93a5
      Adam Barth authored
      This patch moves PageableList off HomogeneousViewport and onto RenderList and
      friends, making it match the new ScrollableList.
      e64d93a5
    • Adam Barth's avatar
      Fix assert in Stocks app · d2a1389e
      Adam Barth authored
      When paging a scrollable list, we were trying to read the render object's size
      at a time when we're not allowed to read it. Instead, encode the information
      into the repaint limit, which is more correct (and faster) anyway.
      d2a1389e
    • Adam Barth's avatar
      Switch clients of ScrollableList to ScrollableList2 · b1f9138f
      Adam Barth authored
      This patch also changed ScrollableList2 to use an Iterable instead of an
      List for its children. This change lets clients map their underlying
      data lazily. If the clients actually have a concrete list, we skip the
      extra copy and grab the child list directly.
      b1f9138f
  26. 05 Jan, 2016 2 commits
    • Adam Barth's avatar
      Complete features of ScrollableList2 · 37106ea6
      Adam Barth authored
      This patch implements the remaining missing features of ScrollableList2.
      It should now be nearly a drop-in replacement for ScrollableList. The
      next patch will switch callers over to the new machinery.
      37106ea6
    • Adam Barth's avatar
      Introduce ScrollableList2 · 99bca282
      Adam Barth authored
      ScrollableList2 uses the same pattern as ScrollableGrid, which requires the
      client to allocate widgets for every list item but doesn't inflate them unless
      they're actually needed for the view. It improves on the original
      ScrollableList by not requiring a rebuild of the whole visible portion of the
      list when scrolling. In fact, small scrolls can often be handled entirely by
      repainting.
      99bca282