Skip to content

Conversation

@dkwingsmt
Copy link
Contributor

@dkwingsmt dkwingsmt commented Jun 18, 2024

This PR rewrites CupertinoAlertDialog in a cleaner logic, mostly its layout.

There are two major difficulties to lay out CupertinoAlertDialog:

  • Laying out the actions section, which switches between a horizontal mode (two buttons in a row) and a vertical mode (several buttons in a column). This PR rewrites it in a special layout widget, _CupertinoAlertActionSection.
  • Allocating vertical space between the content section and the actions section. This reuses _PriorityColumn, which was created for the action sheet.

In a similar fashion to the action sheet, the management and configuration for dividers and background (overscrolls) were rewritten as well.

This PR tries to keep as much original code and behavior as possible since this PR is already very large. As a result, almost no tests are broken. Further improvement will be done in future PRs.

  • The test that verifies painting overscrolls is replaced by a golden test, since the original test assumes that the background is painted in one rectangle.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: cupertino flutter/packages/flutter/cupertino repository labels Jun 18, 2024
@auto-submit auto-submit bot merged commit 748afd9 into flutter:master Jul 24, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 27, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 27, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 28, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 28, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jul 29, 2024
Roll Flutter from 7d5c1c0 to 031dc3d (97 revisions)

flutter/flutter@7d5c1c0...031dc3d

2024-07-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from 342a42547822 to 354abf2800a0 (7 revisions) (flutter/flutter#152385)
2024-07-26 ryjohn@google.com Use more CORS headers for flutter run server (flutter/flutter#152249)
2024-07-26 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 8714b54a87c0 to 342a42547822 (6 revisions) (flutter/flutter#152379)
2024-07-26 34465683+rkishan516@users.noreply.github.com feat: Add drag handle size to be configurable based on given size (flutter/flutter#152085)
2024-07-26 matanlurey@users.noreply.github.com Add and use an integration test with native(ADB) screenshots (flutter/flutter#152326)
2024-07-26 engine-flutter-autoroll@skia.org Roll Packages from 19daf6f to 3d358d9 (4 revisions) (flutter/flutter#152372)
2024-07-26 32538273+ValentinVignal@users.noreply.github.com Add test for range_slider.0.dart (flutter/flutter#152152)
2024-07-26 tessertaha@gmail.com Introduce `TabBar.indicatorAnimation` to customize tab indicator animation (flutter/flutter#151746)
2024-07-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from 21629ece8b72 to 8714b54a87c0 (3 revisions) (flutter/flutter#152351)
2024-07-26 kevmoo@users.noreply.github.com Cleanup examples/api web load logic to latest (flutter/flutter#152349)
2024-07-26 gspencergoog@users.noreply.github.com Adds a call to the `PlatformDispatcher` whenever the focus changes (flutter/flutter#151268)
2024-07-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from d665bf82dc32 to 21629ece8b72 (4 revisions) (flutter/flutter#152344)
2024-07-25 31859944+LongCatIsLooong@users.noreply.github.com `docImport`s for the widgets library (flutter/flutter#152339)
2024-07-25 jacksongardner@google.com Set dart defines properly while in debug mode. (flutter/flutter#152262)
2024-07-25 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.13 to 3.25.14 (flutter/flutter#152342)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74785a771ae6 to d665bf82dc32 (2 revisions) (flutter/flutter#152340)
2024-07-25 leroux_bruno@yahoo.fr Cleanup InputDecoration.collapsed constructor (flutter/flutter#152165)
2024-07-25 32538273+ValentinVignal@users.noreply.github.com Add test for expansion_panel_list.expansion_panel_list_radio.0_test.dart (flutter/flutter#151730)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from f862a620cee4 to 74785a771ae6 (2 revisions) (flutter/flutter#152333)
2024-07-25 engine-flutter-autoroll@skia.org Roll Packages from 1c319ac to 19daf6f (3 revisions) (flutter/flutter#152327)
2024-07-25 31859944+LongCatIsLooong@users.noreply.github.com Add a more typical / concrete example to IntrinsicHeight / IntrinsicWidth (flutter/flutter#152246)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from f47b4d8e145a to f862a620cee4 (1 revision) (flutter/flutter#152320)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74737820a8ee to f47b4d8e145a (7 revisions) (flutter/flutter#152314)
2024-07-25 42016383+DBowen33@users.noreply.github.com Flutter Web App: adds a11y semantic attributes to slider (flutter/flutter#151985)
2024-07-25 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from eb8fac2b1703 to 74737820a8ee (8 revisions) (flutter/flutter#152305)
2024-07-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from eb8fac2b1703 to a57655cccb55 (6 revisions) (#152293)" (flutter/flutter#152304)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from eb8fac2b1703 to a57655cccb55 (6 revisions) (flutter/flutter#152293)
2024-07-25 biggs0125@gmail.com Modify stepping integration test to accommodate new DDC async semantics. (flutter/flutter#152204)
2024-07-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from eb8fac2b1703 to e1259b86ba02 (2 revisions) (#152285)" (flutter/flutter#152289)
2024-07-25 biggs0125@gmail.com Update fake_codec.dart to use Future.value instead of SynchronousFuture (flutter/flutter#152182)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from eb8fac2b1703 to e1259b86ba02 (2 revisions) (flutter/flutter#152285)
2024-07-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 4b952093cb99 to eb8fac2b1703 (3 revisions) (flutter/flutter#152278)
2024-07-24 dkwingsmt@users.noreply.github.com [CupertinoAlertDialog] Rewrite (flutter/flutter#150410)
2024-07-24 victorsanniay@gmail.com Revert "Make `CupertinoRadio`'s `mouseCursor` a `WidgetStateProperty`" (flutter/flutter#152254)
2024-07-24 rmolivares@renzo-olivares.dev Fix: A selectable's selection under the active selection should not be cleared on right-click (flutter/flutter#151851)
2024-07-24 fluttergithubbot@gmail.com Marks Mac channels_integration_test to be flaky (flutter/flutter#151882)
2024-07-24 engine-flutter-autoroll@skia.org Roll Flutter Engine from c2f489d783d6 to 4b952093cb99 (3 revisions) (flutter/flutter#152264)
2024-07-24 42016383+DBowen33@users.noreply.github.com added Semantics label to TextField with InputDecoration to let user k� (flutter/flutter#151996)
2024-07-24 jasonkang14@gmail.com feat: Add alignmentOffset to DropdownMenu (flutter/flutter#151731)
2024-07-24 engine-flutter-autoroll@skia.org Roll Flutter Engine from 490576daf810 to c2f489d783d6 (6 revisions) (flutter/flutter#152260)
2024-07-24 matanlurey@users.noreply.github.com Scaffolding for `NativeDriver` and `AndroidNativeDriver` for taking screenshots using `adb`. (flutter/flutter#152194)
2024-07-24 31859944+LongCatIsLooong@users.noreply.github.com `widgets` docImport (flutter/flutter#152146)
2024-07-24 engine-flutter-autoroll@skia.org Roll Flutter Engine from 3078f6a90e71 to 490576daf810 (1 revision) (flutter/flutter#152239)
2024-07-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Use more CORS headers for `flutter run` server (#152048)" (flutter/flutter#152248)
2024-07-24 ryjohn@google.com Use more CORS headers for `flutter run` server (flutter/flutter#152048)
2024-07-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Enable Swift Package Manager by default on master channel (#152049)" (flutter/flutter#152243)
...
TytaniumDev pushed a commit to TytaniumDev/flutter that referenced this pull request Aug 7, 2024
This PR rewrites `CupertinoAlertDialog` in a cleaner logic, mostly its layout.

There are two major difficulties to lay out `CupertinoAlertDialog`:
* Laying out the actions section, which switches between a horizontal mode (two buttons in a row) and a vertical mode (several buttons in a column). This PR rewrites it in a special layout widget, `_CupertinoAlertActionSection`.
* Allocating vertical space between the content section and the actions section. This reuses `_PriorityColumn`, which was created for the action sheet.

In a similar fashion to the action sheet, the management and configuration for dividers and background (overscrolls) were rewritten as well.

This PR tries to keep as much original code and behavior as possible since this PR is already very large. As a result, almost no tests are broken. Further improvement will be done in future PRs.
* The test that verifies painting overscrolls is replaced by a golden test, since the original test assumes that the background is painted in one rectangle.
Buchimi pushed a commit to Buchimi/flutter that referenced this pull request Sep 2, 2024
This PR rewrites `CupertinoAlertDialog` in a cleaner logic, mostly its layout.

There are two major difficulties to lay out `CupertinoAlertDialog`:
* Laying out the actions section, which switches between a horizontal mode (two buttons in a row) and a vertical mode (several buttons in a column). This PR rewrites it in a special layout widget, `_CupertinoAlertActionSection`.
* Allocating vertical space between the content section and the actions section. This reuses `_PriorityColumn`, which was created for the action sheet.

In a similar fashion to the action sheet, the management and configuration for dividers and background (overscrolls) were rewritten as well.

This PR tries to keep as much original code and behavior as possible since this PR is already very large. As a result, almost no tests are broken. Further improvement will be done in future PRs.
* The test that verifies painting overscrolls is replaced by a golden test, since the original test assumes that the background is painted in one rectangle.
@dkwingsmt dkwingsmt deleted the ad-rewrite branch September 5, 2024 22:07
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 f: cupertino flutter/packages/flutter/cupertino repository framework flutter/packages/flutter repository. See also f: labels. will affect goldens Changes to golden files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants