Skip to content

Conversation

@PureWeen
Copy link
Member

No description provided.

cat0363 and others added 8 commits November 24, 2025 20:15
* 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]>
Copilot AI review requested due to automatic review settings November 24, 2025 20:18
Copy link
Contributor

Copilot AI left a 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);
Copy link

Copilot AI Nov 24, 2025

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 { ... });

Copilot uses AI. Check for mistakes.
@sheiksyedm
Copy link
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link

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
@sheiksyedm
Copy link
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@PureWeen PureWeen merged commit 59bf90a into main Dec 3, 2025
163 checks passed
@PureWeen PureWeen deleted the inflight/candidate branch December 3, 2025 00:19
@PureWeen PureWeen added the area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions label Dec 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions

Projects

None yet

Development

Successfully merging this pull request may close these issues.