Skip to content

Feat: Add full screen dialog support for dialog routes #167794

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 21, 2025

Conversation

rkishan516
Copy link
Contributor

Feat: Add full screen dialog support for dialog routes
fixes: #165478

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. f: routes Navigator, Router, and related APIs. labels Apr 25, 2025
@dkwingsmt dkwingsmt self-requested a review April 30, 2025 18:34
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

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

Using is to behave differently based on type is a bad style. It was bad before, and having to use two now is a scream for a change.

I suggest we expose this property to ModalRoute to allow subclass override. This makes sense because ModalRoute has a impliesAppBarDismissal to control whether to display this button at all, and it's fair for another method to define what kind of button it should display. We might name this property as bool appBarDismissByClosing, or something else you can think of.

@rkishan516
Copy link
Contributor Author

Using is to behave differently based on type is a bad style. It was bad before, and having to use two now is a scream for a change.

I suggest we expose this property to ModalRoute to allow subclass override. This makes sense because ModalRoute has a impliesAppBarDismissal to control whether to display this button at all, and it's fair for another method to define what kind of button it should display. We might name this property as bool appBarDismissByClosing, or something else you can think of.

Sure, Even I was hesitating writing that code, but yes moving it to ModalRoute make sensse. I will push the change sometime today.

@rkishan516 rkishan516 force-pushed the fullscreen-dialog branch 3 times, most recently from 660fa47 to 2de0aa3 Compare May 10, 2025 01:09
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

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

LGTM except for the comments.

@dkwingsmt dkwingsmt requested a review from MitchellGoodwin May 14, 2025 18:36
@rkishan516 rkishan516 force-pushed the fullscreen-dialog branch from 2de0aa3 to b84c543 Compare May 15, 2025 01:26
@dkwingsmt
Copy link
Contributor

dkwingsmt commented May 15, 2025

I've discussed with @MitchellGoodwin offline and here is the takeaway:

  • In terms of design:
    • The name shouldUseAppBarClose is not ideal (not anyone's fault; naming is hard)
    • The property fullscreenDialog is used more widely than it should be. Notably, PageRoute shouldn't have fullscreenDialog, since it's not a dialog yet at this level.
    • This means that ModelRoute shouldn't have fullscreenDialog either. However, since we're not 100% sure where this property is used, it's hard to decide the solution without the compiler and discussions beyond the scope of this PR.
  • What we'll do:
    • We'll approve this PR as it is now, which adds a new property fullscreenDialog to ModelRoute.
    • We'll open a new PR that addresses the last issue above, renaming this property to something else. Specifically,
      • ModelRoute.fullscreenDialog will be directly renamed, since its addition is recent.
      • PageRoute.fullscreenDialog will be renamed with a deprecation.

Copy link
Contributor

@MitchellGoodwin MitchellGoodwin left a comment

Choose a reason for hiding this comment

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

LGTM, pending the TODO comment request

@dkwingsmt dkwingsmt force-pushed the fullscreen-dialog branch from 1ceffdc to b7f5666 Compare May 16, 2025 18:09
@dkwingsmt dkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label May 21, 2025
@auto-submit auto-submit bot added this pull request to the merge queue May 21, 2025
Merged via the queue into flutter:master with commit 78df503 May 21, 2025
76 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 23, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 23, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request May 23, 2025
Roll Flutter from 33cdd8ef31dc to 85564cbba9e7 (39 revisions)

flutter/flutter@33cdd8e...85564cb

2025-05-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (flutter/flutter#169347)
2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334)
2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333)
2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329)
2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323)
2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322)
2025-05-23 matanlurey@users.noreply.github.com Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306)
2025-05-23 jsimionato@google.com Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254)
2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315)
2025-05-23 simonhadenius@gmail.com Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133)
2025-05-23 30870216+gaaclarke@users.noreply.github.com [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276)
2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312)
2025-05-23 52160996+FMorschel@users.noreply.github.com Removes unnecessary parentheses (flutter/flutter#169015)
2025-05-22 danny@tuppeny.com Unpin test/test_core/test_api packages (flutter/flutter#169198)
2025-05-22 dkwingsmt@users.noreply.github.com [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977)
2025-05-22 victorsanniay@gmail.com Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172)
2025-05-22 engine-flutter-autoroll@skia.org Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303)
2025-05-22 danny@tuppeny.com Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307)
2025-05-22 rmolivares@renzo-olivares.dev Fix crash on two finger selection gesture (flutter/flutter#168598)
2025-05-22 matanlurey@users.noreply.github.com Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283)
2025-05-22 47866232+chunhtai@users.noreply.github.com Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233)
2025-05-22 matanlurey@users.noreply.github.com Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴  (flutter/flutter#169305)
2025-05-22 matanlurey@users.noreply.github.com Update tool-internal `generateLocalizations...()` to never use synthetic (`flutter_gen`) packages (flutter/flutter#169285)
2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make `build_android_host_app_with_module_aar` build using an aar (#169171)" (flutter/flutter#169287)
2025-05-22 mdebbar@google.com Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277)
2025-05-22 mohellebiabdessalem@gmail.com refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894)
2025-05-22 kevmoo@users.noreply.github.com [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102)
2025-05-22 bruno.leroux@gmail.com Update ButtonStyle documentation (flutter/flutter#168062)
2025-05-22 ybz975218925@live.com Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541)
2025-05-22 alex.medinsh@gmail.com Add bottomSheetScrimBuilder to Scaffold (flutter/flutter#167335)
2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (#168914)" (flutter/flutter#169250)
2025-05-21 engine-flutter-autoroll@skia.org Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237)
2025-05-21 kyle.finlinson@verygood.ventures Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549)
2025-05-21 huy@nevercode.io Normalize BottomAppBarTheme (continue) (flutter/flutter#168966)
2025-05-21 30870216+gaaclarke@users.noreply.github.com [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914)
2025-05-21 sarbagyastha@gmail.com Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290)
2025-05-21 34871572+gmackall@users.noreply.github.com Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171)
2025-05-21 jason-simmons@users.noreply.github.com Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135)
2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add full screen dialog support for dialog routes (flutter/flutter#167794)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC muhatashim@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f: material design flutter/packages/flutter/material repository. f: routes Navigator, Router, and related APIs. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dialog.fullscreen should set a parentRoute.fullscreenDialog
3 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy