1. 03 Nov, 2017 1 commit
    • xster's avatar
      Add an iOS style demo to the gallery (#12651) · 89405002
      xster authored
      * Built first tab
      
      * Small additions
      
      * started tab 3
      
      * Need color arithmetics
      
      * tab 2 built
      
      * finalize
      
      * lint and tests
      
      * review
      
      * Reapply docs after rebase
      
      * use color.computeLuminance
      
      * linter
      
      * nit
      89405002
  2. 22 Oct, 2017 1 commit
  3. 14 Oct, 2017 1 commit
  4. 11 Sep, 2017 1 commit
  5. 09 Aug, 2017 1 commit
  6. 08 Aug, 2017 1 commit
    • Michael Goderbauer's avatar
      Don't trigger an assert when markNeedsSemanticsUpdate is called multiple times... · b551f534
      Michael Goderbauer authored
      Don't trigger an assert when markNeedsSemanticsUpdate is called multiple times in edge cases (#11544)
      
      * Don't trigger assert if a render object ceases to be a semantic boundary
      
      This bug was exposed by https://github.com/flutter/flutter/pull/11309, which caused the following assertion to trigger when scrolling in the Animation demo:
      
      ```
      The following assertion was thrown during _updateSemantics():
      'package:flutter/src/rendering/object.dart': Failed assertion: line 2626 pos 16: 'fragment is
      _InterestingSemanticsFragment': is not true.
      ```
      
      A minimal reproduction of the bug can be found in `semantics_10_test.dart`, which has been added as a regression test for the bug by this PR.
      
      Looking at that test, here is a description of the faulty behaviour:
      1. During the second `pumpWidget` call `RenderExcludeSemantics` marks itself as needing a semantics update (due to excluding going from `false` -> `true`).
      2. This causes the nearest ancestor with semantics information (here: `RenderSemanticsAnnotations` representing the "container" Semantics widget) to be added to the `_nodesNeedingSemantics` list.
      3. `RenderSliverList` (implementation behind ListView) marks itself as needing a semantics update (due to its changing children).
      4. This causes the `RenderSemanticsGestureHandler` to be added to the `_nodesNeedingSemantics` list.
      5. Next, canDrag is updated from `true` -> `false`. This means, `RenderSemanticsGestureHandler` is no longer a semantics boundary, it marks itself as needing a semantics update.
      6. The nearest ancestor with semantics (`RenderSemanticsAnnotations`, the "container") is added to the `_nodesNeedingSemantics` list (this is a no-op because it is already in the list).
      7. During `flushSemantics`, the `_nodesNeedingSemantics` list is walked. The first entry (`RenderSemanticsAnnotations`) updates the semantics tree to only contain the container widget and drop everything else (= no children of the ExcludeSemantics widget are walked).
      8. The second entry (`RenderSemanticsGestureHandler`) is updated. It does not add any semantics of its own and is no longer a semantics boundary. Therefore, it wants to merge its descendent semantics into its parents. Here is where the assert throws because the algorithm assumes that every entry in the `_nodesNeedingSemantics` list will produce and own an `_InterestingSemanticsFragment` (passing your semantics on to your parents is not interesting).
      
      The problem here seems to be step 4 in combination with step 5. In step 4 we rely on the fact that `RenderSemanticsGestureHandler` is an (explicit or implicit) semantics boundary and that it will be able to absorb the semantics change of `RenderSliverList`. This is true
      at this time. However, in step 4 `RenderSemanticsGestureHandler` decides to no longer be an (explicit or implicit) semantics boundary and our assumption from step 5 becomes incorrect. We did nothing to correct this assumption.
      
      This PR removes a node, that could potentially cease to be a (explicit or implicit) semantics boundary from the `_nodesNeedingSemantics` list to fix that problem. Please node that this does not mean that the node's semantics will not be updated: The node's closest ances
      tor with semantics is added to that list during the `markNeedsSemanticsUpdate` call. During `flushSemantics` we will walk from this node to update the semantics of it's children (if changed), which will include the node in question.
      
      * tiny fix
      
      * simplify test
      
      * analyzer fixes
      
      * review comments
      b551f534
  7. 11 Jul, 2017 1 commit
    • Yegor's avatar
      add Android instrumentation test (#11063) · 18d9b20f
      Yegor authored
      * add Android instrumentation test
      
      * add devicelab test
      
      * add to manifest.yaml
      
      * rename _smoke_test.dart to _smoketest.dart to prevent flutter test from picking it up
      
      * volatile fields; style fixes
      
      * use ConditionVariable; fix sh script
      18d9b20f
  8. 27 Apr, 2017 1 commit
  9. 21 Apr, 2017 1 commit
  10. 12 Apr, 2017 2 commits
    • Ian Hickson's avatar
      Move Point to Offset (#9277) · bf017b79
      Ian Hickson authored
      * Manually fix every use of Point.x and Point.y
      
      Some of these were moved to dx/dy, but not all.
      
      * Manually convert uses of the old gradient API
      
      * Remove old reference to Point.
      
      * Mechanical changes
      
      I applied the following at the root of the Flutter repository:
      
      git ls-files -z | xargs -0 sed -i 's/\bPoint[.]origin\b/Offset.zero/g'
      git ls-files -z | xargs -0 sed -i 's/\bPoint[.]lerp\b/Offset.lerp/g'
      git ls-files -z | xargs -0 sed -i 's/\bnew Point\b/new Offset/g'
      git ls-files -z | xargs -0 sed -i 's/\bconst Point\b/const Offset/g'
      git ls-files -z | xargs -0 sed -i 's/\bstatic Point /static Offset /g'
      git ls-files -z | xargs -0 sed -i 's/\bfinal Point /final Offset /g'
      git ls-files -z | xargs -0 sed -i 's/^\( *\)Point /\1Offset /g'
      git ls-files -z | xargs -0 sed -i 's/ui[.]Point\b/ui.Offset/g'
      git ls-files -z | xargs -0 sed -i 's/(Point\b/(Offset/g'
      git ls-files -z | xargs -0 sed -i 's/\([[{,]\) Point\b/\1 Offset/g'
      git ls-files -z | xargs -0 sed -i 's/@required Point\b/@required Offset/g'
      git ls-files -z | xargs -0 sed -i 's/<Point>/<Offset>/g'
      git ls-files -z | xargs -0 sed -i 's/[.]toOffset()//g'
      git ls-files -z | xargs -0 sed -i 's/[.]toPoint()//g'
      git ls-files -z | xargs -0 sed -i 's/\bshow Point, /show /g'
      git ls-files -z | xargs -0 sed -i 's/\bshow Point;/show Offset;/g'
      
      * Mechanical changes - dartdocs
      
      I applied the following at the root of the Flutter repository:
      
      git ls-files -z | xargs -0 sed -i 's/\ba \[Point\]/an [Offset]/g'
      git ls-files -z | xargs -0 sed -i 's/\[Point\]/[Offset]/g'
      
      * Further improvements and a test
      
      * Fix minor errors from rebasing...
      
      * Roll engine
      bf017b79
    • Ian Hickson's avatar
      Fix tests to use Ahem, and helpful changes around that (#9332) · 2a545243
      Ian Hickson authored
      * Fix tests to use Ahem, and helpful changes around that
      
      - Fix fonts that had metric-specific behaviours.
      
      - LiveTestWidgetsFlutterBinding.allowAllFrames has been renamed
        to LiveTestWidgetsFlutterBinding.framePolicy.
      
      - LiveTestWidgetsFlutterBinding now defaults to using a frame policy
        that pumps slightly more frames, to animate the pointer crosshairs.
      
      - Added "flutter run --use-test-fonts" to enable Ahem on devices.
      
      - Changed how idle() works to be more effective in live mode.
      
      - Display the test name in live mode (unless ahem fonts are enabled).
      
      - Added a toString to TextSelectionPoint.
      
      - Style nit fixes.
      
      * Roll engine to get Ahem changes.
      
      * Update tests for dartdoc changes.
      
      * Fix flutter_tools tests
      2a545243
  11. 04 Apr, 2017 1 commit
  12. 28 Mar, 2017 1 commit
    • Phil Quitslund's avatar
      Bump to Dart SDK 1.23.0-dev.10 (#9051) · ab6df3af
      Phil Quitslund authored
      * Bump to Dart SDK 1.23.0-dev.10
      
      * allows us to understand flutter usage via telemetry
      * brings in `@immutable`
      
      Fixes: #9042
      
      * completer fix
      
      * Update to platform 1.1.1.
      ab6df3af
  13. 24 Mar, 2017 1 commit
  14. 13 Mar, 2017 1 commit
  15. 04 Mar, 2017 1 commit
  16. 21 Feb, 2017 1 commit
  17. 17 Feb, 2017 3 commits
  18. 09 Feb, 2017 1 commit
    • Ian Hickson's avatar
      Port AppBar to Scrollable2 (#7996) · 83a4cf26
      Ian Hickson authored
      Move the back button and drawer opening logic into the app bar.
      
      Move the tap-status-bar-to-scroll-to-top logic to using
      ScrollControllers. Provide a PrimaryScrollController and a `primary`
      flag on scroll views.
      
      Make it possible to track when a route becomes or stops being poppable.
      83a4cf26
  19. 03 Feb, 2017 1 commit
  20. 23 Jan, 2017 1 commit
  21. 18 Jan, 2017 1 commit
  22. 30 Nov, 2016 1 commit
  23. 22 Nov, 2016 1 commit
    • Adam Barth's avatar
      Rename Flexible to Expanded and improve docs (#6978) · 8ca4caa4
      Adam Barth authored
      This patch replaces uses of Flexible with Expanded where we're using
      FlexFit.tight. We still need to think of a better name for the
      FlexFit.loose variant.
      
      Also, improve the docs for Row, Column, Flex, and RenderFlex to be more
      problem-oriented and to give a complete account of the layout algorithn.
      
      Fixes #6960
      Fixes #5169
      8ca4caa4
  24. 10 Nov, 2016 1 commit
  25. 27 Oct, 2016 1 commit
  26. 20 Oct, 2016 1 commit
  27. 03 Oct, 2016 2 commits
  28. 21 Sep, 2016 1 commit
  29. 09 Sep, 2016 1 commit
  30. 02 Sep, 2016 1 commit
  31. 29 Aug, 2016 1 commit
  32. 24 Aug, 2016 1 commit
  33. 17 Aug, 2016 1 commit
  34. 11 Aug, 2016 1 commit
  35. 05 Aug, 2016 2 commits