Skip to content

[material_ui] Migrate M3 ListTile template to use new gen_defaults - #13056

Merged
auto-submit[bot] merged 5 commits into
flutter:mainfrom
QuncCccccc:list_tile_m3_defaults_migration
Sep 30, 2026
Merged

auto-submit[bot] merged 5 commits into
flutter:mainfrom
QuncCccccc:list_tile_m3_defaults_migration

Conversation

@QuncCccccc

Copy link
Copy Markdown
Contributor

Work toward flutter/flutter#187899.
Fixes flutter/flutter#188420.

This PR migrates the M3 ListTile defaults template to use the new gen_defaults in material_ui.
The generated defaults remain unchanged.

Pre-Review Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools.
  • I read the [Tree Hygiene] page, which explains my responsibilities.
  • I read and followed the [relevant style guides] and ran [the auto-formatter].
  • I signed the [CLA].
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I [linked to at least one issue that this PR fixes] in the description above.
  • I followed [the version and CHANGELOG instructions], using [semantic versioning] and the [repository CHANGELOG style], or I have commented below to indicate which documented exception this PR falls under[^1].
  • I updated/added any relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or I have commented below to indicate which [test exemption] this PR falls under[^1].
  • All existing and new tests are passing.

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 28, 2026
@github-actions github-actions Bot added p: material_ui triage-design Should be looked at in design triage labels Sep 28, 2026
@QuncCccccc QuncCccccc added override: no versioning needed Override the check requiring version bumps for most changes override: no changelog needed Override the check requiring CHANGELOG updates for most changes and removed p: material_ui triage-design Should be looked at in design triage labels Sep 28, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the Material 3 ListTile defaults to the token-based generator by introducing ListTileTemplateM3, enabling it in the generator tool, and replacing the manually written _LisTileDefaultsM3 class with a generated part file. A review comment identifies a typo in the class name _LisTileDefaultsM3 (missing 't') and suggests renaming it to _ListTileDefaultsM3 across the template, main code, and tests.

static const TokenColorRole _legacySelectedColor = TokenColorRole.primary;

@override
String get className => '_LisTileDefaultsM3';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a typo in the class name _LisTileDefaultsM3 (missing the letter 't' in ListTile). Since this is a private class, it should be corrected to _ListTileDefaultsM3 to improve code readability and maintainability. Note: If you apply this suggestion, you will also need to manually update the reference in packages/material_ui/lib/src/list_tile.dart (line 889) and the test assertion in packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart (line 614) to avoid compilation errors.

Suggested change
String get className => '_LisTileDefaultsM3';
String get className => '_ListTileDefaultsM3';

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

@github-actions github-actions Bot added p: material_ui triage-design Should be looked at in design triage labels Sep 28, 2026
@elliette
elliette self-requested a review September 29, 2026 21:18
Comment on lines +14 to 15
minLeadingWidth: 24.0,
minVerticalPadding: 8,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bit strange that minLeadingWidth is a double (with .0) and minVerticalPadding is an int. I wonder if we could keep minLeadingWidth as an int somehow?

$className(this.context)
: super(
contentPadding: const EdgeInsetsDirectional.only(start: 16.0, end: 24.0),
minLeadingWidth: ${number(TokenList.listItemLeadingIconSize)},

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might need to modify number so we can specify whether it should format the number as an int or a double.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel the number helper function is a bit useless. Maybe we should remove it. For this PR, I'll remove the use of number() because the result is identical no matter we use it or not.

…ts_migration

# Conflicts:
#	packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart
#	packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart
@QuncCccccc QuncCccccc added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 30, 2026
@auto-submit
auto-submit Bot merged commit 6f11020 into flutter:main Sep 30, 2026
13 checks passed
jesswrd pushed a commit to jesswrd/flutter that referenced this pull request Oct 1, 2026
…er#193641)

flutter/packages@0ba9a82...d5ec6db

2026-10-01 [email protected] [tool] Enforce README package table
order (flutter/packages#12316)
2026-09-30 [email protected] [various] Allow plugin example apps
to build and test on JDK 25 (flutter/packages#13031)
2026-09-30 [email protected] [go_router] Expose
Navigator clipBehavior on ShellRoute and StatefulShellBranch
(flutter/packages#12646)
2026-09-30 [email protected] [google_maps_flutter] Convert unit
tests to Kotlin (flutter/packages#13072)
2026-09-30 [email protected] [material_ui]
Migrate M3 ListTile template to use new gen_defaults
(flutter/packages#13056)
2026-09-30 [email protected] Allow tests to
use macOS 15.7 or macOS 26.6 (flutter/packages#13007)
2026-09-30 [email protected]
[camera_android_camerax] Fix exposure offset setting error thrown when
canceled by a new request (flutter/packages#12582)
2026-09-30 [email protected] Roll Flutter from
55b8f88 to d649d2b (27 revisions) (flutter/packages#13080)
2026-09-30 [email protected] [material_ui]
Migrate M3 InputDecorator template to use new gen_defaults
(flutter/packages#13024)
2026-09-30 [email protected] [pigeon] Fix JNI/FFI typed data memory
lifetime bugs and update docs (flutter/packages#13061)
2026-09-30 [email protected]
[camera_android_camerax] Correct `pre-push` skill version validation
logic (flutter/packages#12371)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: material_ui triage-design Should be looked at in design triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

list_tile_template.dart

2 participants