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: 440713c3b287
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 70a3c3cc935e
Choose a head ref
  • 11 commits
  • 22 files changed
  • 8 contributors

Commits on Jul 18, 2025

  1. Configuration menu
    Copy the full SHA
    47a476a View commit details
    Browse the repository at this point in the history
  2. TestTextInput should reset its key handler between tests (#172323)

    Looks like we forgot to reset _keyHandler in TestTextInput.
    
    Fixes #171491
    justinmc authored Jul 18, 2025
    Configuration menu
    Copy the full SHA
    b327336 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8a12504 View commit details
    Browse the repository at this point in the history
  4. Adopt Null-Aware Elements in packages/flutter/lib/src/material (#17…

    …2285)
    
    <!--
    Thanks for filing a pull request!
    Reviewers are typically assigned within a week of filing a request.
    To learn more about code review, see our documentation on Tree Hygiene:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    -->
    
    This pr aims to complete #172188 by refactoring all files in
    `packages/flutter/lib/src/material` to adopt Dart 3.8's null-aware
    elements feature. Each file was refactored in its own commit for clear,
    incremental changes and traceable history.
    
    ### Motivation
    
    Following the
    #172188 (comment),
    this PR is intentionally scoped to a single folder to keep the review
    surface manageable. Migrating package by package enables more focused
    code review, easier troubleshooting, and a safer incremental adoption of
    the new language feature.
    
    ### Approach
    
    - **Scope:** Only files under `packages/flutter/lib/src/material` have
    been refactored.
    - **Commits:** Each file refactored in its own commit for granularity
    and traceability.
    - **Code style:** Changed list element conditionals to use null-aware
    elements where applicable, improving readability and reducing verbosity.
    
    ### Testing
    
    - All existing tests were run after each change.
    - All tests passed except for `chip_test.dart`, which was already
    failing before these changes and continues to fail after. No new test
    failures were introduced by this PR.
    
    ### Additional Notes
    
    - No functional or behavioral changes were made; this is a pure refactor
    for code clarity and modernization.
    - Adhering to the incremental migration strategy proposed in the
    referenced issue for safer and more effective review.
    
    ---
    
    Ready for review! 🚀
    ## 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.
    - [ ] 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
    0xharkirat authored Jul 18, 2025
    Configuration menu
    Copy the full SHA
    50bae58 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ff45dd4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2de480c View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2025

  1. fix: produce pom/jar files with content_hash (#172378)

    fixes: #172259
    
    The contents of the files (pom, .jar) produced by android also reference
    the artifacts version number (which includes the git-hash). The flutter
    recipies are just dumb re-uploaders for the content hash at the moment.
    In order to change the contents, we can just update some GN files. This
    has some local duplication of files, but is acceptible for now.
    
    I've also added the content-hash as a string in the .so file and its
    printed out next to the hash.
    
    "Why is the folder name the git-hash?"
    
    The recipies have a quirk - the logs will have you believe they upload
    individual files such that "gsutil cp a.jar b.jar" would produce
    "b.jar"; but that's not what's going on. The recipies recurisively
    upload from the root of the temporary folder the files are copied to. At
    the moment, the "Ensure" step of builder.py updates the URL path, so it
    will handling uploading to the correct path, but not the file or its
    contents (hence this change).
    
    Plan for the future: at some point we can stop producing git-ref hashes.
    
    E.g.
    git-hash: dfd7318 content-hash:
    3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7
    
    ```shell
    zip_archives
    └── download.flutter.io
        └── io
            └── flutter
                ├── arm64_v8a_debug
                │   └── 1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9
                │       ├── arm64_v8a_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.jar
                │       ├── arm64_v8a_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.pom
                │       ├── arm64_v8a_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.jar
                │       └── arm64_v8a_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.pom
                └── flutter_embedding_debug
                    └── 1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9
                        ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7-sources.jar
                        ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.jar
                        ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.pom
                        ├── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9-sources.jar
                        ├── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.jar
                        └── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.pom
    ```
    jtmcdole authored Jul 19, 2025
    Configuration menu
    Copy the full SHA
    107997e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9eb13ff View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4b5a936 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2025

  1. Configuration menu
    Copy the full SHA
    fa5d6aa View commit details
    Browse the repository at this point in the history
  2. Add optional splashColor property to ExpansionTile (#172224)

    This PR adds support for customizing the `splashColor` in the
    `ExpansionTile` widget.
    
    Currently, ExpansionTile uses the theme’s default splash color without
    allowing overrides.
    This change introduces a new optional splashColor parameter so
    developers can better control the ripple effect color when the tile is
    tapped.
    
    ## 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.
    
    <!-- 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
    
    ---------
    
    Co-authored-by: Victor Sanni <[email protected]>
    Musaddiq625 and victorsanni authored Jul 20, 2025
    Configuration menu
    Copy the full SHA
    70a3c3c View commit details
    Browse the repository at this point in the history
Loading