-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Adaptive alert dialog #124336
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
Adaptive alert dialog #124336
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have a pattern of adaptive functions? I wasn't sure the right way to name this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This name sounds good to me. I don't think we have any patterns for the name of the adaptive function. But I'm not very sure. Maybe we can collect some suggestions from @HansMuller ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@HansMuller if you could take a quick peek at this.
QuncCccccc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM:) !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This name sounds good to me. I don't think we have any patterns for the name of the adaptive function. But I'm not very sure. Maybe we can collect some suggestions from @HansMuller ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: maybe two space indent.
a41e9fe to
52ae952
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
| enum _DialogType {material, adaptive } | |
| enum _DialogType { material, adaptive } |
52ae952 to
2aa7c6d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the newly added params are NOT ignored in case of CupertinoAlertDialog. they're only ignored in case of material AlertDialog.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm sorry, but i feel stating it as a positive instead of a double negative would be easier to understand, something like ... only these parameters are used:. could you check other adaptive widgets / functions for similar documentation?
moving the statement for AlertDialog to a newline would help too.
lemme know your thoughts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, that makes sense. On the other adaptive widgets we so far have only called out which ones are ignored, instead of which ones aren't.
QuncCccccc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good! Just left one comment for the newly added fields:) Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Maybe we can add {@template ...}... {@endtemplate} for the cupertino AlertDialog's API documentation so that here we can directly use {@macro ...}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: would this be necessary if we go with the factory implementation you mentioned below? That would hide the Cupertino specific properties somewhat. I can add them with the documentation for the .adaptive but I'm thinking it's better to just let them go to the page for CupertinoAlertDialog at that point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah that makes sense. SGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm considering if we should add these 4 APIs here because the material AlertDialog will not use them at all. Another way I can think of is to use factory keyword when we create AlertDialog.adaptive constructor, and the factory constructor will be assigned to a private subclass which has the extra APIs. An example can be FilledButton.icon(). By using factory, we can add new parameters only in the AlertDialog.adaptive constructor without adding new fields for AlertDialog. I think that would be something like: https://gist.github.com/QuncCccccc/93f22070b6b459912eeddb03ff55d1ec
But please let me know if this doesn't make sense:)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No that makes sense, and that looks a lot cleaner. Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's way better.
c0b1485 to
d875fcd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah just one more minor comment(Sorry!). I'm just thinking to follow Greg's this PR: #124080, probably it's better to rename the MyApp class to AdaptiveAlertDialogApp or something else:)
d875fcd to
acececd
Compare
QuncCccccc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM:)
werainkhatri
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM :D
flutter/flutter@42fb0b2...3476b96 2023-04-19 [email protected] Update helper message for `--suppress-analytics` (flutter/flutter#124810) 2023-04-19 [email protected] Roll Flutter Engine from 8b7cdb02f7f3 to 609f9d536494 (1 revision) (flutter/flutter#125097) 2023-04-19 [email protected] Roll Flutter Engine from 099ed6c62d04 to 8b7cdb02f7f3 (6 revisions) (flutter/flutter#125094) 2023-04-19 [email protected] Roll Flutter Engine from 5fcc7b719029 to 099ed6c62d04 (3 revisions) (flutter/flutter#125078) 2023-04-19 [email protected] Disableable ContextMenuButtonItems (flutter/flutter#124253) 2023-04-18 [email protected] Adaptive alert dialog (flutter/flutter#124336) 2023-04-18 [email protected] Roll Flutter Engine from 6d263ea56a62 to 5fcc7b719029 (4 revisions) (flutter/flutter#125069) 2023-04-18 [email protected] Remove package:js/dart:js_interop conflicts (flutter/flutter#124879) 2023-04-18 [email protected] Remove double.fromEnvironment from dart-define doc (flutter/flutter#124102) 2023-04-18 [email protected] Update to add Kim Jiun to `AUTHORS` (flutter/flutter#125026) 2023-04-18 [email protected] Add controller argument to SubmenuButton (flutter/flutter#125000) 2023-04-18 [email protected] Roll Flutter Engine from 879308a52228 to 6d263ea56a62 (1 revision) (flutter/flutter#125060) 2023-04-18 [email protected] Limit the number of Material spell check suggestions to 3 (flutter/flutter#124899) 2023-04-18 [email protected] Remove impeller testowners (flutter/flutter#125056) 2023-04-18 [email protected] [web] - Clean up skipped tests (flutter/flutter#124981) 2023-04-18 [email protected] Roll Flutter Engine from 72b68622fffa to 879308a52228 (1 revision) (flutter/flutter#125057) 2023-04-18 [email protected] Remove unused getRootRenderObject and getSelectedRenderObject service extensions (flutter/flutter#124805) 2023-04-18 [email protected] l10n.yaml's nullable-getter option should default to true (flutter/flutter#124353) 2023-04-18 [email protected] Roll Flutter Engine from 55bb065c607b to 72b68622fffa (1 revision) (flutter/flutter#125053) 2023-04-18 [email protected] Add vmservice for android build options (flutter/flutter#123034) 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 [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/flutter@42fb0b2...3476b96 2023-04-19 [email protected] Update helper message for `--suppress-analytics` (flutter/flutter#124810) 2023-04-19 [email protected] Roll Flutter Engine from 8b7cdb02f7f3 to 609f9d536494 (1 revision) (flutter/flutter#125097) 2023-04-19 [email protected] Roll Flutter Engine from 099ed6c62d04 to 8b7cdb02f7f3 (6 revisions) (flutter/flutter#125094) 2023-04-19 [email protected] Roll Flutter Engine from 5fcc7b719029 to 099ed6c62d04 (3 revisions) (flutter/flutter#125078) 2023-04-19 [email protected] Disableable ContextMenuButtonItems (flutter/flutter#124253) 2023-04-18 [email protected] Adaptive alert dialog (flutter/flutter#124336) 2023-04-18 [email protected] Roll Flutter Engine from 6d263ea56a62 to 5fcc7b719029 (4 revisions) (flutter/flutter#125069) 2023-04-18 [email protected] Remove package:js/dart:js_interop conflicts (flutter/flutter#124879) 2023-04-18 [email protected] Remove double.fromEnvironment from dart-define doc (flutter/flutter#124102) 2023-04-18 [email protected] Update to add Kim Jiun to `AUTHORS` (flutter/flutter#125026) 2023-04-18 [email protected] Add controller argument to SubmenuButton (flutter/flutter#125000) 2023-04-18 [email protected] Roll Flutter Engine from 879308a52228 to 6d263ea56a62 (1 revision) (flutter/flutter#125060) 2023-04-18 [email protected] Limit the number of Material spell check suggestions to 3 (flutter/flutter#124899) 2023-04-18 [email protected] Remove impeller testowners (flutter/flutter#125056) 2023-04-18 [email protected] [web] - Clean up skipped tests (flutter/flutter#124981) 2023-04-18 [email protected] Roll Flutter Engine from 72b68622fffa to 879308a52228 (1 revision) (flutter/flutter#125057) 2023-04-18 [email protected] Remove unused getRootRenderObject and getSelectedRenderObject service extensions (flutter/flutter#124805) 2023-04-18 [email protected] l10n.yaml's nullable-getter option should default to true (flutter/flutter#124353) 2023-04-18 [email protected] Roll Flutter Engine from 55bb065c607b to 72b68622fffa (1 revision) (flutter/flutter#125053) 2023-04-18 [email protected] Add vmservice for android build options (flutter/flutter#123034) 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 [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Fixes #102811. Adds an adaptive constructor to AlertDialog, along with the adaptive function showAdaptiveDialog.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.