-
Notifications
You must be signed in to change notification settings - Fork 1.9k
December 1st, Inflight Candidate #32841
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
Conversation
* Added size update for Shell Popup Overlay after rotation # Conflicts: # src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt * Fix resizing on rotation * - fix publicapi # Conflicts: # src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt * - apply copilot suggested change * - Add Tests * - fix test * - make backdrop orange --------- Co-authored-by: Shane Neuville <[email protected]>
Deleted the OnDestroy method and its dispatcher-based disposal logic from ShellFragmentContainer. Cleanup is unnecessary in this context and causes Android.Runtime.JavaProxyThrowable exception
* Fix RTL column mirroring in UICollectionView Explicitly sets the semantic content attribute on the native UICollectionView to ensure compositional layouts mirror columns correctly in right-to-left (RTL) scenarios. This addresses an issue where the platform view's semantic attribute does not propagate to native children not backed by IView. * - add UITests * Improvements --------- Co-authored-by: Shane Neuville <[email protected]>
Since TimePicker now supports nullable, the casts need to be nullable to match the TimeChangedEventArgs properties. Otherwise, `timeSpan.Time = null` throws a NullReferenceException.
… Back to a ContentPage with NavigationBar Hidden (#32622) * [iOS] Fix for Shell Navigation Bar Remaining Visible After Navigating Back to a ContentPage with NavigationBar Hidden * Added test cases and snapshots for both iOS and Android platforms * Added snapshot for windows platform
…m change with PresentationMode set to Modal (#32582) * Fix for Page OnAppearing triggered twice when navigating via ShellItem change with PresentationMode set to Modal * - generate tests with copilot * Removed the UI test since unit tests have been added, and also removed duplicate tests in the unit tests --------- Co-authored-by: Shane Neuville <[email protected]>
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.
Pull request overview
This is an "Inflight Candidate" PR containing multiple bug fixes and improvements for .NET MAUI, primarily focused on Shell navigation, UI test coverage, and platform-specific rendering fixes.
Key Changes
- Shell Navigation Bar Fix (Issue 32583): Fixed navigation bar visibility persistence after navigating back in Shell
- CollectionView RTL Support (Issue 32359): Added FlowDirection support for CollectionView with VerticalGrid layout on iOS
- Shell Flyout Rotation (Issue 15173): Fixed flyout overlay resizing during device rotation on iOS
- Shell Modal Lifecycle (Issue 31584): Fixed modal page appearing/disappearing events during ShellItem switches
- Template improvements: Refined Background/BackgroundColor property usage in maui-mobile template
- Platform fixes: Alert manager standard implementation, Android Shell fragment lifecycle
Reviewed changes
Copilot reviewed 22 out of 25 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
AppStyles.xaml |
Removed default Background from Border style for more flexible theming |
ProjectListPage.xaml |
Added explicit Background to Border in CollectionView template |
ProjectDetailPage.xaml |
Changed Background to BackgroundColor in VisualStates for consistency |
ProjectDetailPageModel.cs |
Fixed icon selection logic to find matching icon from collection |
Issue32583.cs (HostApp + Tests) |
New test for Shell navigation bar visibility persistence |
Issue32359.xaml/.cs (HostApp + Tests) |
New test for CollectionView RTL behavior |
Issue15173.xaml.cs (HostApp + Tests) |
New test for Shell flyout rotation handling |
ShellModalAppearingTests.cs |
Comprehensive unit tests for modal lifecycle during ShellItem switches |
TimePicker.cs |
Fixed TimeChangedEventArgs to use nullable TimeSpan consistently |
ShellSection.cs |
Fixed modal disappearing logic to prevent incorrect lifecycle calls |
ItemsViewController2.cs |
Added FlowDirection update to CollectionView |
ItemsViewHandler2.iOS.cs |
Added layout update call for RTL/LTR changes |
ShellSectionRenderer.cs |
Enhanced navigation bar visibility update during transitions |
ShellFlyoutRenderer.cs |
Added ViewWillTransitionToSize override for rotation handling |
AlertManager.Standard.cs |
Fixed NotImplementedException by returning AlertRequestHelper instance |
ShellFragmentContainer.cs |
Removed redundant OnDestroy override |
| Snapshot files | New baseline screenshots for UI tests |
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
| }; | ||
|
|
||
| // Set the flyout content using the property | ||
| FlyoutContentTemplate = new DataTemplate(() => flyoutContent); |
Copilot
AI
Nov 24, 2025
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 FlyoutContentTemplate property expects a DataTemplate that returns a View, but this code returns the same flyoutContent instance each time the template is invoked. This creates a shared instance issue where the same view instance could be reused, potentially causing unexpected behavior.
Consider using a lambda that creates a new instance: FlyoutContentTemplate = new DataTemplate(() => new VerticalStackLayout { ... });
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
#32868) This PR addresses the UI test image failures that occurred in the inflight/candidate branch #32841 and includes updates to improve rendering and test stability across platforms. - In ShouldFlyoutTextWrapsInLandscape test case, added the resaved CI snapshot caused by changes from fix PR - #15866 - In FlyoutOverlayResizesOnRotation test cases, disable for android platform, because the Shell FlyoutContent overlaps the navigation bar due to SafeArea during Landscape Orientation, Related issue: #32275 **Test cases:** - ShouldFlyoutTextWrapsInLandscape - NavigationBarShouldRemainHiddenAfterNavigatingBack - FlyoutOverlayResizesOnRotation - VerticalGridCollectionViewLTRToRTLToggleShouldWork - VerticalGridCollectionViewRTLColumnMirroringShouldWork
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
No description provided.