1. 27 Jul, 2018 1 commit
  2. 13 Jun, 2018 1 commit
    • Chris Bracken's avatar
      Revert elimination of Dart 1 (#18460) · 2ae48845
      Chris Bracken authored
      fuchsia_tester.dart still assumes Dart 1. Previously, it ran tests directly
      from source, flutter_platform.dart automatically runs a kernel compile when
      operating in Dart 2 mode, but this assumes a functional Dart SDK is available
      in the artifacts directly, and fuchsia_tester.dart mocks out the artifacts
      directory with an empty temp dir.
      
      Remaining work is:
      1. Get the frontend server building as a dependency on Fuchsia.
      2. Patch fuchsia_tester.dart to use a valid Dart SDK and frontend server.
      
      This also reverts migration to Dart 2 typedef syntax.
      
      This reverts commit 6c56bb24. (#18362)
      This reverts commit 3daebd05. (#18316)
      2ae48845
  3. 11 Jun, 2018 1 commit
    • Greg Spencer's avatar
      Update typedef syntax to use Function notation and turn on lint for old notation. (#18362) · 6c56bb24
      Greg Spencer authored
      Now that Dart 1 is turned off, reapplying my change to turn on the prefer_generic_function_type_aliases analysis option, and fix all the typedefs to Dart 2 preferred syntax.
      
      Also eliminated the unused analysis_options_repo.yaml file and turned on public_member_api_docs in analysys_options.yaml.
      
      No logic changes, just changing the typedef syntax for all typedefs, and updating analysis options.
      6c56bb24
  4. 05 Jun, 2018 1 commit
  5. 30 May, 2018 2 commits
  6. 06 Apr, 2018 1 commit
  7. 09 Jan, 2018 1 commit
  8. 09 Dec, 2017 1 commit
  9. 21 Sep, 2017 1 commit
  10. 21 Jun, 2017 3 commits
  11. 12 May, 2017 1 commit
  12. 05 May, 2017 1 commit
  13. 28 Apr, 2017 1 commit
  14. 15 Apr, 2017 1 commit
    • Ian Hickson's avatar
      Support chaining await calls on controllers (#9389) · 14e728d0
      Ian Hickson authored
      With this patch, you can do:
      
      ```dart
         Future<Null> foo() async {
           try {
             await controller.forward().orCancel;
             await controller.reverse().orCancel;
             await controller.forward().orCancel;
           } on TickerCanceled {
             // did not complete
           }
         }
      ```
      
      ...in a State's async method, and so long as you dispose of the
      controller properly in your dispose, you'll have a nice way of doing
      animations in sequence without leaking the controller. try/finally
      works as well, if you need to allocate resources and discard them when
      canceled.
      
      Simultaneously, you can do:
      
      ```dart
         Future<Null> foo() async {
           await controller.forward().orCancel;
           await controller.reverse().orCancel;
           await controller.forward().orCancel;
         }
      ```
      
      ...and have the same effect, where the method will just silently hang
      (and get GC'ed) if the widget is disposed, without leaking anything,
      if you don't need to catch the controller being killed.
      
      And all this, without spurious errors for uncaught exceptions on
      controllers.
      14e728d0
  15. 07 Apr, 2017 1 commit
  16. 17 Mar, 2017 1 commit
  17. 15 Mar, 2017 1 commit
  18. 04 Mar, 2017 1 commit
  19. 13 Jan, 2017 1 commit
  20. 19 Nov, 2016 1 commit
  21. 17 Nov, 2016 1 commit
  22. 26 Sep, 2016 1 commit
    • Ian Hickson's avatar
      Turn off AnimationControllers when not in use (#5902) · 9e673853
      Ian Hickson authored
      This requires all AnimationController objects to be given a
      TickerProvider, a class that can create the Ticker.
      
      It also provides some nice mixins for people who want to have their
      State provide a TickerProvider. And a schedulerTickerProvider for those
      cases where you just want to see your battery burn.
      
      Also, we now enforce destruction order for elements.
      9e673853
  23. 08 Sep, 2016 1 commit
    • Ian Hickson's avatar
      Make tests more realistic (#5762) · 5bc8888e
      Ian Hickson authored
      Previously, pumpWidget() would do a partial pump (it didn't trigger
      Ticker callbacks or post-frame callbacks), and pump() would do a full
      pump. This patch brings them closer together. It also makes runApp run a
      full actual frame, rather than skipping the transient callback part of
      the frame logic. Having "half-frames" in the system was confusing and
      could lead to bugs where code expecting to run before the next layout
      pass didn't because a "half-frame" ran first.
      
      Also, make Tickers start ticking in the frame that they were started in,
      if they were started during a frame. This means we no longer spin a
      frame for t=0, we jump straight to the first actual frame.
      
      Other changes in this patch:
      
      * rename WidgetsBinding._runApp to WidgetsBinding.attachRootWidget, so
        that tests can use it to more accurately mock out runApp.
      
      * allow loadStructuredData to return synchronously.
      
      * make handleBeginFrame handle not being given a time stamp.
      
      * make DataPipeImageProvider.loadAsync protected (rather than private),
        and document it. There wasn't really a reason for it to be private.
      
      * fix ImageConfiguration.toString.
      
      * introduce debugPrintBuildScope and debugPrintScheduleBuildForStacks,
        which can help debug problems with widgets getting marked as dirty but
        not cleaned.
      
      * make debugPrintRebuildDirtyWidgets say "Building" the first time and
        "Rebuilding" the second, to make it clearer when a widget is first
        created. This makes debugging widget lifecycle issues much easier.
      
      * make debugDumpApp more resilient.
      
      * debugPrintStack now takes a label that is printed before the stack.
      
      * improve the banner shown for debugPrintBeginFrameBanner.
      
      * various and sundry documentation fixes
      5bc8888e
  24. 25 May, 2016 1 commit
  25. 22 Apr, 2016 1 commit
  26. 19 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Rearrange scheduling library (#3388) · 61605a9d
      Ian Hickson authored
      To be more consistent with other parts of the platform:
      
      * put the binding in a binding.dart file.
      
      * rearrange some members of the Scheduler class to be more close to
        execution order.
      
      * factor out Priority class into its own file.
      
      * add more dart docs.
      61605a9d
  27. 13 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Fix dependency skew. (#3306) · 7861d029
      Ian Hickson authored
      ...by adding tests to our examples that don't import flutter_test, which
      pins the relevant dependencies.
      
      Also, provide more information when complaining about leaked transient
      callbacks in tests.
      
      Also, make tests display full information when they have an exception,
      by bypassing the throttling we have for Android logging in tests.
      
      Also, make the word wrapping not wrap stack traces if they happen to
      be included in exception output.
      
      Also, fix a leaked transient callback in the checkbox code.
      7861d029
  28. 12 Mar, 2016 3 commits
  29. 04 Mar, 2016 1 commit
  30. 11 Feb, 2016 2 commits
    • Ian Hickson's avatar
      Ticker typedef had no defined return type · 4d90194e
      Ian Hickson authored
      4d90194e
    • Ian Hickson's avatar
      Clean up imports and exports. · a94999ba
      Ian Hickson authored
      Each layer is supposed to reexport the parts of the previous layer
      that are part of its API.
      
      - In painting.dart, export from dart:ui all the Canvas-related APIs
        that make sense to be used at higher levels, e.g. PaintingStyle.
      
      - Delete painting/shadows.dart. It was dead code.
      
      - In rendering/object.dart, export all of painting.dart.
      
      - In widgets/basic.dart, export all of painting.dart and
        animation.dart. Some classes in animation/ are renamed to make this
        less disruptive and confusing to the namespace.
      
      - Split out Stocks back into an import model rather than a part model,
        so that it's easier to manage its dependencies on a per-file basis.
      
      - Move Ticker to scheduler library.
      
      - Remove as many redundant imports as possible now.
      
      - Some minor nit picking cleanup in various files.
      a94999ba
  31. 14 Dec, 2015 1 commit
  32. 10 Dec, 2015 2 commits
  33. 02 Dec, 2015 1 commit
    • Florian Loitsch's avatar
      Rename some of the functions from the scheduler. · 72821152
      Florian Loitsch authored
      The names are probably less familiar, but more consistent:
      - FrameCallback: a callback that is relative to the frame and wants the
        frame offset (a duration) as argument.
      - addXFrameCallback: adds the given callback to the internal lists/maps.
      - scheduleXFrameCallback (currently only X = ""): add the callback, but
        also trigger a new frame.
      - handleX: the method that is invoked when the event-loop or the frame
        calls into the scheduler.
      - ensureXYZ: ensure that the callback happens.
        Unfortunately there is the ambiguity between a "callback": it can be a
        closure, or the action of doing a callback, so we end up with:
        ensureBeginFrameCallback, and ensureEventLoopCallback, where
        "callback" means the action of being called back.
      72821152