KEMBAR78
July 21st, 2025 Candidate by PureWeen · Pull Request #30696 · dotnet/maui · GitHub
Skip to content

Conversation

PureWeen
Copy link
Member

@PureWeen PureWeen commented Jul 17, 2025


layout: release-notes
title: ".NET MAUI Inflight Candidate Release Notes"
date: 2025-07-18
version: "inflight-candidate"
comparison: "main...inflight/candidate"
full_changelog: "3f5adff...90ff8cf"
description: "Release notes for .NET MAUI inflight candidate build, covering 20 commits with platform fixes, testing improvements, and code quality enhancements."
permalink: /release-notes/release-notes-inflight-candidate/

.NET MAUI Inflight Candidate Build

What's Changed

This inflight candidate build includes 20 commits with significant improvements across all platforms, comprehensive testing enhancements, and code quality improvements.

Summary

  • Platform Fixes: Critical fixes for Android AppShell, iOS/MacCatalyst crashes, Windows StackLayout and password visibility issues
  • Testing Enhancements: Extensive Feature Matrix UI test coverage for multiple controls
  • Code Quality: Fixed casting issues and typos to improve code reliability
  • Cross-Platform: Enhanced ScrollView, permissions handling, and gesture recognition

MAUI Product Fixes

Testing

Housekeeping

Key Contributors

This release includes significant contributions from:

Platform Highlights

Android

  • Fixed OnSizeAllocated reporting for AppShell Flyout content
  • Improved Search Handler behavior in subtabs
  • Enhanced Bluetooth and WiFi permissions handling

iOS/MacCatalyst

  • Fixed crash when setting SelectedItem and clearing ItemsSource
  • Improved ContextMenu handling in Catalyst
  • Enhanced ScrollView FlowDirection alignment

Windows

  • Fixed StackLayout crashes with HeightRequest as 0
  • Resolved CanvasDrawingSession exceptions during image clipping
  • Fixed password visibility issue when pasting text

Cross-Platform

  • Enhanced TapGestureRecognizer ButtonMask functionality
  • Improved RealParent warning handling
  • Better permissions management for location services

Full Changelog: 3f5adff...90ff8cf

@Copilot Copilot AI review requested due to automatic review settings July 17, 2025 22:20
@PureWeen PureWeen requested a review from a team as a code owner July 17, 2025 22:20
@PureWeen PureWeen requested review from jsuarezruiz and rmarinho July 17, 2025 22:20
Copy link
Contributor

@Copilot 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 PR introduces a "July 21st, 2025 Candidate" build that adds comprehensive test coverage for several MAUI controls and fixes an iOS-specific ScrollView issue. The changes include extensive feature matrix tests for UI controls and address various platform-specific bugs.

Key changes:

  • Added comprehensive test suites for TimePicker, SearchBar, ScrollView, and DatePicker controls
  • Added test cases for 7 bug fixes covering iOS, Android, Windows, and macOS issues
  • Implemented iOS-specific custom ScrollView handler to address content offset reset issue

Reviewed Changes

Copilot reviewed 65 out of 428 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
TestCases.Shared.Tests/Tests/Issues/*.cs Test implementations for 7 bug fixes (Issues 30147, 29937, 29919, 24734, 22045, 21119, 18430)
TestCases.Shared.Tests/Tests/FeatureMatrix/*.cs Comprehensive test suites for TimePicker, SearchBar, ScrollView, and DatePicker feature matrices
TestCases.HostApp/Issues/*.cs Host app implementations for the reported issues
TestCases.HostApp/FeatureMatrix/* Complete ViewModel and UI implementations for feature matrix testing
MauiProgram.cs Registration of iOS custom ScrollView handler

[Category(UITestCategories.ScrollView)]
public void VerifyScrollViewContentOffsetValue()
{
App.WaitForElement("OffsetLabel");
Copy link

Copilot AI Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test should have a corresponding UI implementation in TestCases.HostApp. Please ensure that Issue30147 is properly implemented in the HostApp with the required AutomationId 'OffsetLabel' and that the test can execute properly.

Copilot uses AI. Check for mistakes.

[Category(UITestCategories.CollectionView)]
public void SettingSelectedItemAndItemSourceShouldNotCrash()
{
App.WaitForElement("MauiButton");
Copy link

Copilot AI Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test references AutomationIds 'MauiButton' and 'MauiCollectionView'. Please ensure these AutomationIds are UNIQUE across the test suite and that the corresponding UI elements exist in TestCases.HostApp with proper test coverage.

Copilot uses AI. Check for mistakes.

[Category(UITestCategories.TimePicker)]
public void TimePicker_InitialState_VerifyVisualState()
{
App.WaitForElement("TimePickerControl");
Copy link

Copilot AI Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This extensive test suite uses numerous AutomationIds. Please verify that all AutomationIds used in this test (like 'TimePickerControl', 'Done', 'OK', etc.) are UNIQUE and properly implemented in the corresponding HostApp pages to ensure WaitForElement calls succeed.

Copilot uses AI. Check for mistakes.

Comment on lines +51 to +55
myScroll.OffsetChanged += (s, e) =>
{
offsetLabel.Text = e.X.ToString();
};

Copy link

Copilot AI Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider extracting the anonymous event handler into a named method to improve code readability and maintainability, especially since this handler contains business logic for updating the UI.

Suggested change
myScroll.OffsetChanged += (s, e) =>
{
offsetLabel.Text = e.X.ToString();
};
myScroll.OffsetChanged += OnOffsetChanged;

Copilot uses AI. Check for mistakes.

jfversluis and others added 19 commits August 1, 2025 15:30
…ScrollView (#30241)

* fix added

* Revert "fix added"

This reverts commit 138797f.

* fix added

* fix updated
…l Flyout content. (#30069)

* fix-22045 - Made changes on Android ShellFlyout sizing by adding OnDrawerOpened event and updating Content so OnSizeAllocated is called with correct values when drawer opens.

* fix-22045- Set the contentview frame value when the FlyoutView layout change.

* fix-22045- Changes committed.
…missions if NeverForLocation flag is present (#20874)

* otherwise the permission-status will be 'denied' if AccessFineLocation is in the manifest, but denied at runtime
  (even if it is not strictly required)
* Safe Get of RealParent to avoid warnings

* Optimized the fix

* Make it as default private

* Optimized the fix

* Modified the fix and added test

* Modified the fix based on concern and added test

* unwanted spacing

* Replaced the Parent property directly
… Immediately Setting ItemsSource to Null Causes a Crash (#29940)

* Re-evaluate indexpaths in PerformBatchUpdates

* Add UI test

* update test

* bring back null check

* add a check to see if ItemsSource is disposed
#29926)

* Fixed StackLayout crashes on Windows with HeightRequest 0, padding, and opposing alignment.

* Included test case for Vertical StackLayout

* Updated label content
)

* [Windows] Fixed CanvasDrawingSession Exception

* Update in description label

* Updated Suggested Changes
* Added Feature Matrix for ScrollView

* Updated changes

* Changes updated

* Modified the test cases

* Modified UI

* Added snapshots

* Added images

* Modified Test Case

* Added images

* Resaved images
# Conflicts:
#	src/Controls/tests/TestCases.HostApp/CoreViews/CorePageView.cs
* modified UI and test cases

* updated test cases

* added new test cases

* updated test cases

* added android and iOS snapshots

* updated format

* updated flow direction code

* added mac and windows snapshots

* updated iOS snapshots
… fix (#30307)

* Disconnect context flyout handler

* Update MenuFlyoutHandler.iOS.cs
* Fix for TapGesture ButtonMask

* Added TestCase

* Update Testcase

* Modified Testcase
if the type is known then a direct cast should be used instead of an as.
since, in the case where the assumption is wrong, then it is better to
get a cast exception instead of a null ref exception.

basically if code uses `as` and does not check for null when that
variable is used, then it is likely problematic code.
* added test cases

* added snapshots

* comment added

* snapshot added

* changed method name
* added test cases

* added new test cases

* removed test cases

* updated test cases

* updated test cases

* changes in test case

* added new event

* updated test cases

* added culture test cases

* added snapshots

* added the failing condition

* modified test case

* added new test case code

* added mac and windows snapshots
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Conflicts:
#	src/Compatibility/Core/src/Tizen/Forms.cs
* fix added

* Revert "fix added"

This reverts commit 138797f.

* test case added

* test sample modified

* test sample updated

* affected platform changed

* sample changes added
…#30467)

* fix-21119-Made changes to ShellToolbarTracker.cs to prevent search handler stacking on Android Shell tab navigation by removing existing menu items before adding new ones.

* fix-21119-Testcase and test snapshot added.

* fix-21119-Updated code changes. Also added Mac and Windows snapshots.
Ahamed-Ali and others added 5 commits August 1, 2025 15:30
…s Enabled (#30353)

* Fixed the masked text issue of same value pasted into the textbox field

* Added the test for verifying the masked text
#30711)

* added new snapshots

* updated test cases

* updated iOS snapshot
…lure in PR 30696 - [07/21/2025] Candidate (#30738)

* updated test case

* added WaitForElement line
…lure in PR 30696 - [07/21/2025] Candidate (#30759)

* updated test case

* added additional ScrollRight

* modified EntryFeatureTests and Bugzilla34632Test

* removed Sleep line
… - [07/21/2025] Candidate (#30841)

* Added a failing condition for iOS

* removed spaces
@PureWeen PureWeen force-pushed the inflight/candidate branch from ab2fbf2 to 96e9a51 Compare August 1, 2025 20:32
@PureWeen
Copy link
Member Author

PureWeen commented Aug 4, 2025

Failure is fixed here on main
#31004

@PureWeen PureWeen merged commit 99e0f14 into main Aug 4, 2025
127 of 129 checks passed
@PureWeen PureWeen deleted the inflight/candidate branch August 4, 2025 20:39
@github-actions github-actions bot locked and limited conversation to collaborators Sep 4, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.