Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/flutter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c4c9f47c479d
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 7fe82377f950
Choose a head ref
  • 14 commits
  • 34 files changed
  • 6 contributors

Commits on Sep 17, 2024

  1. Adds ColorSwatch matcher (#155272)

    #155113
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [x] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    gaaclarke authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    1db9a61 View commit details
    Browse the repository at this point in the history
  2. Delete packages/flutter_tools/lib/src/fuchsia directory (#154880)

    It's not being actively used, and fuchsia team does not have bandwidth
    to maintain it.
    
    Bug: https://b.corp.google.com/issues/353729557
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [x] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    zijiehe-google-com authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    a4f4547 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b99ac89 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6592368 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6fb9a19 View commit details
    Browse the repository at this point in the history
  6. Uninstall /can fail/ (#155314)

    Error != Exception.
    
    Fixes #149666
    jtmcdole authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    93eabf3 View commit details
    Browse the repository at this point in the history
  7. [CupertinoAlertDialog] Add tap-slide gesture (#154853)

    This PR adds "sliding tap" to `CupertinoAlertDialog` and fixes #19786. 
    
    Much of the needed infrastructure has been implemented in #150219, but this time with a new challenge to support disabled buttons, i.e. the button should not show tap highlight when pressed (#107371).
    * Why? Because whether a button is disabled is assigned to `CupertinoDialogAction`, while the background is rendered by a private class that wraps the action widget and built by the dialog body. We need a way to pass the boolean "enabled" from the child to the parent when the action is pressed. After much experimentation, I think the best way is to propagate this boolean using the custom gesture callback.
    * An alternative way is to make the wrapper widget use an inherited widget, which allows the child `CupertinoDialogAction` to place a `ValueGetter<bool> getEnabled` to the parent as soon as it's mounted. However, this is pretty ugly...
    
    This PR also fixes #107371, i.e. disabled `CupertinoDialogAction` no longer triggers the pressing highlight. However, while legacy buttons (custom button classes that are implemented by `GestureDetector.onTap`) still functions (their `onPressed` continues to work), disabled legacy buttons will still show pressing highlight, and there's no plan (actually, no way) to fix it. 
    
    All tests related to sliding taps in `CupertinoActionSheet` has been copied to `CupertinoAlertDialog`, with additional tests for disabled buttons.
    dkwingsmt authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    c57f99e View commit details
    Browse the repository at this point in the history
  8. Roll Flutter Engine from 0ef18a3ef064 to 311ba971bb3a (8 revisions) (#…

    …155325)
    
    flutter/engine@0ef18a3...311ba97
    
    2024-09-17 [email protected] Roll Skia from de3717fe550e to b5cc234f229d (1 revision) (flutter/engine#55266)
    2024-09-17 [email protected] Remove tinygltf (flutter/engine#55264)
    2024-09-17 [email protected] Update the Impeller Scene doc (flutter/engine#55265)
    2024-09-17 [email protected] [Flutter GPU] Add DeviceBuffer.flush & GpuContext.getMinimumUniformByteAlignment. (flutter/engine#53620)
    2024-09-17 [email protected] Remove scene GLB files (flutter/engine#55263)
    2024-09-17 [email protected] [Flutter GPU] Add golden test for rendering a triangle. (flutter/engine#55262)
    2024-09-17 [email protected] Roll Dart SDK from de4a3d63671c to 84fac36df65a (2 revisions) (flutter/engine#55255)
    2024-09-17 [email protected] Roll Skia from ad08229fd016 to de3717fe550e (5 revisions) (flutter/engine#55261)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    d0a9e3b View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2024

  1. Fix missing icon props in button styleFrom methods (#154821)

    Fixes [Add missing icon props in button `styleFrom`  methods.](#154798)
    
    ### Description
    
    Add missing icon propers in the following widgets:
    
    - `ElevatedButton.styleFrom` (missing `iconSize`)
    - `FilledButton.styleFrom` (missing `iconSize`)
    - `OutlinedButton.styleFrom` (missing `iconSize`)
    - `TextButton.styleFrom` (missing `iconSize`)
    - `MenuItemButton.styleFrom` (missing `iconSize` and `disabledIconColor`)
    - `SubmenuButton.styleFrom` (missing `iconSize` and `disabledIconColor`)
    - `SegmentedButton.styleFrom` (missing `iconSize`, `iconColor`, and `disabledIconColor`)
    
    ### Code sample
    
    <details>
    <summary>expand to view the code sample</summary> 
    
    ```dart
    import 'package:flutter/material.dart';
    
    enum Calendar { day, week, month, year }
    
    void main() => runApp(const MyApp());
    
    class MyApp extends StatefulWidget {
      const MyApp({super.key});
    
      @OverRide
      State<MyApp> createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
      Calendar calendarView = Calendar.week;
      bool isEnabled = true;
    
      @OverRide
      Widget build(BuildContext context) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          home: Scaffold(
            body: Center(
              child: Column(
                spacing: 10.0,
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  ElevatedButton.icon(
                    style: ElevatedButton.styleFrom(
                      iconSize: 30,
                      iconColor: Colors.red,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    onPressed: isEnabled ? () {} : null,
                    icon: const Icon(Icons.add),
                    label: const Text('ElevatedButton'),
                  ),
                  FilledButton.icon(
                    style: ElevatedButton.styleFrom(
                      iconSize: 30,
                      iconColor: Colors.red,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    onPressed: isEnabled ? () {} : null,
                    icon: const Icon(Icons.add),
                    label: const Text('FilledButton'),
                  ),
                  FilledButton.tonalIcon(
                    style: ElevatedButton.styleFrom(
                      iconSize: 30,
                      iconColor: Colors.red,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    onPressed: isEnabled ? () {} : null,
                    icon: const Icon(Icons.add),
                    label: const Text('Add'),
                  ),
                  OutlinedButton.icon(
                    style: ElevatedButton.styleFrom(
                      iconSize: 30,
                      iconColor: Colors.red,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    onPressed: isEnabled ? () {} : null,
                    icon: const Icon(Icons.add),
                    label: const Text('OutlinedButton'),
                  ),
                  TextButton.icon(
                    style: ElevatedButton.styleFrom(
                      iconSize: 30,
                      iconColor: Colors.red,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    onPressed: isEnabled ? () {} : null,
                    icon: const Icon(Icons.add),
                    label: const Text('TextButton'),
                  ),
                  SizedBox(
                    width: 200,
                    child: MenuItemButton(
                      style: MenuItemButton.styleFrom(
                        iconSize: 30,
                        iconColor: Colors.red,
                        disabledIconColor: Colors.red.withValues(alpha: 0.5),
                      ),
                      trailingIcon: const Icon(Icons.arrow_forward_ios),
                      onPressed: isEnabled ? () {} : null,
                      child: const Text('MenuItemButton'),
                    ),
                  ),
                  SizedBox(
                    width: 200,
                    child: SubmenuButton(
                      style: SubmenuButton.styleFrom(
                        iconSize: 30,
                        iconColor: Colors.red,
                        disabledIconColor: Colors.red.withValues(alpha: 0.5),
                      ),
                      trailingIcon: const Icon(Icons.arrow_forward_ios),
                      menuChildren: <Widget>[
                        if (isEnabled) const Text('Item'),
                      ],
                      child: const Text('SubmenuButton'),
                    ),
                  ),
                  SegmentedButton<Calendar>(
                    style: SegmentedButton.styleFrom(
                      iconColor: Colors.red,
                      iconSize: 30,
                      disabledIconColor: Colors.red.withValues(alpha: 0.5),
                    ),
                    segments: const <ButtonSegment<Calendar>>[
                      ButtonSegment<Calendar>(
                          value: Calendar.day,
                          label: Text('Day'),
                          icon: Icon(Icons.calendar_view_day)),
                      ButtonSegment<Calendar>(
                          value: Calendar.week,
                          label: Text('Week'),
                          icon: Icon(Icons.calendar_view_week)),
                      ButtonSegment<Calendar>(
                          value: Calendar.month,
                          label: Text('Month'),
                          icon: Icon(Icons.calendar_view_month)),
                      ButtonSegment<Calendar>(
                          value: Calendar.year,
                          label: Text('Year'),
                          icon: Icon(Icons.calendar_today)),
                    ],
                    selected: <Calendar>{calendarView},
                    onSelectionChanged:
                        isEnabled ? (Set<Calendar> newSelection) {} : null,
                  )
                ],
              ),
            ),
            floatingActionButton: FloatingActionButton.extended(
              onPressed: () {
                setState(() {
                  isEnabled = !isEnabled;
                });
              },
              label: Text(isEnabled ? 'Enabled' : 'Disabled'),
            ),
          ),
        );
      }
    }
    ```
    
    </details>
    
    ### Preview (Customized using icon props in `styleFrom`  methods)
    
    <img width="838" alt="Screenshot 2024-09-09 at 16 27 19" src="https://github.com/user-attachments/assets/551d328b-307f-4f63-b0e8-1358a12877f9">
    TahaTesser authored Sep 18, 2024
    Configuration menu
    Copy the full SHA
    d5e843e View commit details
    Browse the repository at this point in the history
  2. Roll Flutter Engine from 311ba971bb3a to 4f2d866aef32 (4 revisions) (#…

    …155329)
    
    flutter/engine@311ba97...4f2d866
    
    2024-09-17 [email protected] Roll Skia from b5cc234f229d to 86abf2391374 (1 revision) (flutter/engine#55269)
    2024-09-17 [email protected] Roll Dart SDK from 84fac36df65a to 50f697183f25 (3 revisions) (flutter/engine#55268)
    2024-09-17 [email protected] [Flutter GPU] Remove the redundant smoketest. (flutter/engine#55267)
    2024-09-17 [email protected] Fixed solid blur style math (flutter/engine#55194)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Sep 18, 2024
    Configuration menu
    Copy the full SHA
    708f53c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1cd629f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20ba964 View commit details
    Browse the repository at this point in the history
  5. Roll Flutter Engine from fdf38910bad4 to 4bdcbf39c200 (5 revisions) (#…

    …155368)
    
    flutter/engine@fdf3891...4bdcbf3
    
    2024-09-18 [email protected] Roll Skia from e60181fbd809 to 178a30c1efcc (1 revision) (flutter/engine#55280)
    2024-09-18 [email protected] Roll Dart SDK from b4bfea33ab1d to 84f4d161ed50 (1 revision) (flutter/engine#55279)
    2024-09-18 [email protected] Roll Skia from ae4e7753fa9b to e60181fbd809 (1 revision) (flutter/engine#55278)
    2024-09-18 [email protected] Roll Dart SDK from 089ef90b6680 to b4bfea33ab1d (1 revision) (flutter/engine#55276)
    2024-09-18 [email protected] Roll Skia from 86abf2391374 to ae4e7753fa9b (4 revisions) (flutter/engine#55275)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Sep 18, 2024
    Configuration menu
    Copy the full SHA
    d4a9fa7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7fe8237 View commit details
    Browse the repository at this point in the history
Loading