Skip to content

Conversation

@PureWeen
Copy link
Member

@PureWeen PureWeen commented Sep 8, 2025

No description provided.

github-actions bot and others added 30 commits September 8, 2025 14:00
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
HarishKumarSF4517 and others added 3 commits September 8, 2025 15:17
* 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>
```
Copilot AI review requested due to automatic review settings September 8, 2025 20:19
@PureWeen PureWeen requested a review from a team as a code owner September 8, 2025 20:19
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 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);
Copy link

Copilot AI Sep 8, 2025

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.

Suggested change
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

Copilot uses AI. Check for mistakes.
Comment on lines +34 to 38
var searchBar = new UITestSearchBar
{
AutomationId = "SearchBar",
IsCursorVisible = false
};
Copy link

Copilot AI Sep 8, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +54 to +70
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;
}
}
}
Copy link

Copilot AI Sep 8, 2025

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.

Suggested change
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;

Copilot uses AI. Check for mistakes.
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
Copy link

Copilot AI Sep 8, 2025

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.

Suggested change
using System.Runtime.CompilerServices;

Copilot uses AI. Check for mistakes.
@PureWeen PureWeen added this to the .NET 9 SR12 milestone Sep 8, 2025
* WIP

* update snapshot

* update snapshots again

* revert
@PureWeen PureWeen added the p/0 Current heighest priority issues that we are targeting for a release. label Sep 10, 2025
@sheiksyedm
Copy link
Contributor

@kubaflo More test failed due to this PR changes. Can you look it?
#30501

Device test:
FlyoutHeaderScroll - (3 test cases) (iOS)
FlyoutHeaderContentAndFooterAllMeasureCorrectly (64 Test cases) (iOS)

@sheiksyedm
Copy link
Contributor

@kubaflo Below UI test failed due this PR change. #27653

CarouselViewVirtualViewNotNull

@kubaflo
Copy link
Contributor

kubaflo commented Sep 13, 2025

@kubaflo Below UI test failed due this PR change. #27653

CarouselViewVirtualViewNotNull

Here's the fix: #31603

@kubaflo
Copy link
Contributor

kubaflo commented Sep 14, 2025

@kubaflo More test failed due to this PR changes. Can you look it? #30501

Device test: FlyoutHeaderScroll - (3 test cases) (iOS) FlyoutHeaderContentAndFooterAllMeasureCorrectly (64 Test cases) (iOS)

Here's the fix: #31607

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.
@github-project-automation github-project-automation bot moved this from Ready To Review to Approved in MAUI SDK Ongoing Sep 18, 2025
@PureWeen PureWeen merged commit 3cc91b0 into main Sep 18, 2025
129 checks passed
@PureWeen PureWeen deleted the inflight/candidate branch September 18, 2025 13:27
@github-project-automation github-project-automation bot moved this from Approved to Done in MAUI SDK Ongoing Sep 18, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Oct 19, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

p/0 Current heighest priority issues that we are targeting for a release.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.