-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[inflight/candidate] September 15th, 2025 #31525
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
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
fix the text prediction issue for android Removed unwanted codes remove unwanted codes simplified the fix Added test case Remove ui test Added a device test
Updated concerns Updated review concern Added snapshots and requested changes Modified the sample used HashSet Used FlyoutItems Count directly
Added a comment with a link to Apple docs Refactor
Revert "fix added" This reverts commit 138797f. fix added test case added snapshot added fix updated
Update issue string Added more tests related to Dispatcher Extensions and addresssed copilot suggestions
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
* feature_matrix_TitleBar * Update TitleBarFeatureTests.cs * Update TitleBarFeatureTests.cs * Added_Properties Icon,IsVisible,ForegroundColor * Update CorePageView.cs * Updated_TitlebarFeature_Matrix * Updated TitleBar Control * Added the Issue link and Comment * Added Snapshots --------- Co-authored-by: Shane Neuville <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! <!-- !!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING MAIN. !!!!!!! --> ### Issues Fixed Fixes #28716 Fixes #31085 |Before|After| |--|--| |<video src="https://github.com/user-attachments/assets/f94e034a-99d4-4846-9fa0-bb8f2d547bdc" width="300px"/>|<video src="https://github.com/user-attachments/assets/797fb522-cffe-4566-a301-4a035093b0b5" width="300px"/>| ```xaml <Grid RowDefinitions="Auto, *"> <Button Text="Add Item" Clicked="Button_Clicked" HorizontalOptions="Center" VerticalOptions="Center"/> <CollectionView ItemsUpdatingScrollMode="KeepLastItemInView" Grid.Row="1" x:Name="cv"> <CollectionView.ItemTemplate> <DataTemplate> <Grid ColumnDefinitions="*,Auto"> <Label Text="{Binding Text}" HeightRequest="100" VerticalOptions="Center"/> </Grid> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView> </Grid> ```
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 a significant update for September 15th, 2025, that includes multiple test additions, new feature implementations, and code improvements across the .NET MAUI Controls library. The changes span UI testing, new feature matrix implementations, bug fixes, and documentation enhancements.
Key changes include:
- Addition of comprehensive UI test cases for various issues (31377, 31139, 30601, etc.)
- Implementation of new Feature Matrix test frameworks for TitleBar, Picker, and IndicatorView controls
- Bug fixes for TabbedPage, SearchBar theme handling, and iOS layout improvements
- Enhanced documentation for core classes like BindableProperty, BindingBase, and VisualElement
Reviewed Changes
Copilot reviewed 91 out of 381 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Issue test files (31377, 31139, etc.) | New UI test implementations for various bug fixes and feature validations |
| TitleBar/Picker/IndicatorView Feature Matrix | Complete feature testing frameworks with ViewModels, pages, and test cases |
| SearchBar/InputView theme handling | Added theme change event handling for proper color updates |
| TabbedPage improvements | Fixed iOS "More" button behavior and Windows icon color updates |
| Core documentation | Enhanced XML documentation for BindableProperty, BindingBase, VisualElement, etc. |
| iOS layout fixes | Improved flow direction handling and NavigationPage title view positioning |
| public void WebViewShouldNotMirrored() | ||
| { | ||
| App.WaitForElement("WebViewLabel"); | ||
| Thread.Sleep(3000); |
Copilot
AI
Sep 8, 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.
Using Thread.Sleep() in UI tests is problematic as it can lead to flaky tests and poor performance. Consider using WaitForElement() or other async waiting mechanisms instead.
| Thread.Sleep(3000); | |
| // Wait for the WebView to be fully loaded instead of sleeping | |
| App.WaitForElement("WebViewLabel"); // Replace with a more specific wait if possible |
| var searchBar = new UITestSearchBar | ||
| { | ||
| AutomationId = "SearchBar", | ||
| IsCursorVisible = false | ||
| }; |
Copilot
AI
Sep 8, 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 creation of UITestSearchBar is duplicated between the code-behind and XAML. Consider consolidating to use only one approach for consistency and maintainability.
| if (e.PropertyName == Page.IconImageSourceProperty.PropertyName) | ||
| { | ||
| if (sender is Page page) | ||
| { | ||
| //Find the corresponding ViewModel for the triggering Page | ||
| if (Handler?.MauiContext is not null && _navigationView?.MenuItemsSource is IList<NavigationViewItemViewModel> menuItems) | ||
| { | ||
| foreach (var item in menuItems) | ||
| { | ||
| if (item.Data == page) | ||
| { | ||
| item.Icon = page.IconImageSource?.ToIconSource(Handler.MauiContext)?.CreateIconElement(); | ||
| item.IconColor = (page.IconImageSource as FontImageSource)?.Color?.AsPaint()?.ToPlatform(); | ||
| break; | ||
| } | ||
| } | ||
| } |
Copilot
AI
Sep 8, 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.
[nitpick] The method has deeply nested if statements that could be simplified using guard clauses or early returns to improve readability.
| if (e.PropertyName == Page.IconImageSourceProperty.PropertyName) | |
| { | |
| if (sender is Page page) | |
| { | |
| //Find the corresponding ViewModel for the triggering Page | |
| if (Handler?.MauiContext is not null && _navigationView?.MenuItemsSource is IList<NavigationViewItemViewModel> menuItems) | |
| { | |
| foreach (var item in menuItems) | |
| { | |
| if (item.Data == page) | |
| { | |
| item.Icon = page.IconImageSource?.ToIconSource(Handler.MauiContext)?.CreateIconElement(); | |
| item.IconColor = (page.IconImageSource as FontImageSource)?.Color?.AsPaint()?.ToPlatform(); | |
| break; | |
| } | |
| } | |
| } | |
| if (e.PropertyName != Page.IconImageSourceProperty.PropertyName) | |
| return; | |
| if (sender is not Page page) | |
| return; | |
| // Find the corresponding ViewModel for the triggering Page | |
| if (Handler?.MauiContext is null) | |
| return; | |
| if (_navigationView?.MenuItemsSource is not IList<NavigationViewItemViewModel> menuItems) | |
| return; | |
| foreach (var item in menuItems) | |
| { | |
| if (item.Data == page) | |
| { | |
| item.Icon = page.IconImageSource?.ToIconSource(Handler.MauiContext)?.CreateIconElement(); | |
| item.IconColor = (page.IconImageSource as FontImageSource)?.Color?.AsPaint()?.ToPlatform(); | |
| break; |
| using System.Collections.Specialized; | ||
| using System.ComponentModel; | ||
| using System.Linq; | ||
| using System.Runtime.CompilerServices; |
Copilot
AI
Sep 8, 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 using statements include System.Linq and System.Runtime.CompilerServices which may not be necessary. Consider removing unused using statements to reduce compilation overhead.
| using System.Runtime.CompilerServices; |
* WIP * update snapshot * update snapshots again * revert
Added null-conditional operator when accessing Handler.PlatformView in ItemsViewController and ItemsViewController2 to prevent potential null reference exceptions when updating flow direction for child views.
No description provided.