[automated] Merge branch 'net11.0' => 'release/11.0.1xx-preview7' - #37042
Merged
PureWeen merged 6 commits intoAug 3, 2026
Merged
Conversation
…essibility setting (#35846) <!-- 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. !!!!!!! --> ### Issue Details - `PlatformTicker` on iOS and Windows does not respect the OS animation accessibility settings. - On iOS, enabling **Reduce Motion** (Settings → Accessibility → Motion → Reduce Motion) has no effect — MAUI animations continue to play normally. - On Windows, disabling **Animation effects** (Settings → Accessibility → Visual effects → Animation effects) has no effect — MAUI animations continue to play normally. - Android already honors these settings via `ValueAnimator.AreAnimatorsEnabled()` and the energy-saver / duration-scale listeners. ### Root Cause of the issue **iOS** - The PlatformTicker.iOS.cs never sets SystemEnabled on the base Ticker class. The SystemEnabled property defaults to true, meaning AnimationManager always allows animations to run. - AnimationManager.Add() checks Ticker.SystemEnabled — if false, it rejects the animation. - AnimationManager.OnFire() checks Ticker.SystemEnabled — if false, it force-finishes all running animations. **Windows** - PlatformTicker.Windows.cs never checked the system animation accessibility setting. Ticker.SystemEnabled defaults to true, so MAUI animations always played regardless of the "Show animations in Windows" setting (Settings → Accessibility → Visual effects → Animation effects). **Android wires this up correctly:** - Checks ValueAnimator.AreAnimatorsEnabled() at construction - Listens for energy-saver and duration-scale changes to update SystemEnabled at runtime - iOS does none of this — SystemEnabled stays true forever regardless of accessibility settings. ### Description of Change **Accessibility and Animation Behavior:** * `PlatformTicker` now observes system accessibility settings—on Windows, it listens to the "Show animations in Windows" setting, and on iOS/MacCatalyst, it respects the "Reduce Motion" setting. The ticker automatically enables or disables animations based on these settings. **Resource Management and Disposal:** * Both platform-specific `PlatformTicker` classes now implement `IDisposable` and provide `Dispose()` and `Dispose(bool disposing)` methods to clean up event handlers and observers, preventing potential memory leaks. * The public API surface is updated to include the new `Dispose` methods for `PlatformTicker` on all relevant platforms. **Robustness Improvements:** * Added checks to prevent starting or responding to events if the ticker has already been disposed, enhancing the safety and reliability of the animation system. ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #35845 ### Tested the behaviour in the following platforms - [ ] - Windows - [ ] - Android - [x] - iOS - [x] - Mac | Platform | Before | After | |----------|----------|----------| | iOS | <video src="https://github.com/user-attachments/assets/8f4e0d0f-4fdb-4b8b-9d61-9391a6d3f510"> | <video src="https://github.com/user-attachments/assets/c3d76d1b-0ef0-4c7a-9a40-a01213ebb31e"> | | Mac | <video src="https://github.com/user-attachments/assets/558b4b2d-5298-4da8-9db0-03f9104309f3"> | <video src="https://github.com/user-attachments/assets/064a8241-88e7-4148-9ff1-2356cf21756c"> | | Windows | <video src="https://github.com/user-attachments/assets/e99dca29-97ed-4cad-a5d7-6a4484e5e309"> | <video src="https://github.com/user-attachments/assets/a0398403-18f5-4a8b-bb29-e2c37f854614"> | <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> --------- Co-authored-by: Jakub Florkowski <42434498+kubaflo@users.noreply.github.com>
…er override (#37030) ## Description This pull request fixes a `CS0115` build error on Android caused by a signature mismatch between PR #36328 and PR #36109. The `SetupBuilder` method in `ModalTests` is now `protected virtual` and accepts an optional `includeNavigationViewHandler` parameter, which allows subclasses like `ModalHandlerTests` to override it with the same signature. ### Changes - **ModalTests.cs**: Changed `SetupBuilder` to `protected virtual void SetupBuilder(bool includeNavigationViewHandler = true)` for better extensibility. - **ShellHandlerSubclasses.Android.cs**: Updated the override in `ModalHandlerTests` to match the new method signature, ensuring consistency between base and derived test classes. Co-authored-by: Jakub Florkowski <42434498+kubaflo@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! ### Description This PR resolves a build error on `net11.0` caused by duplicate public API entries. Build Link: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1536553&view=logs&j=a4801b0c-147f-5c8c-962a-741d86502051&t=a2489dc5-c5a7-5201-88b6-5de312b29600 **Fix:** Removed the 14 duplicate lines from: - `src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt` - `src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt` No functional or API changes — just removes the duplicates so the build passes again. #35846 - This PR introduced the unwanted changes
…ailure (#37027) <!-- Please keep the note below for people who 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 whether this change resolves your issue. Thank you! **Failure Test on windows collectionview** : _**HorizontalGridFooterExpandsToContentWidth**_ This pull request refines the layout logic for horizontal `MauiItemsView` on Windows, ensuring that the items area stretches appropriately when headers or footers are present. The main improvement is more accurate sizing of the items area by subtracting header and footer widths, which fixes stretching issues in layouts with few items. **Layout logic improvements:** * Added `ApplyItemsRepeaterMinWidth()` to compute the items area width by subtracting header and footer widths from the available viewport, ensuring correct stretching for layouts like `UniformGridLayout` with `ItemsStretch=Fill` and few items. This method only updates the width if it changes. * Updated `ApplyLayoutOrientation()` to use the new sizing method and to re-measure the layout only if the items width or empty view size changed, reducing unnecessary layout passes. [[1]](diffhunk://#diff-2dd8ad3a609ad111709aca5f67a8af9abd6aa793328409811f72d3c97a653931R337-R342) [[2]](diffhunk://#diff-2dd8ad3a609ad111709aca5f67a8af9abd6aa793328409811f72d3c97a653931L363-R367) **Code quality:** * Added missing `using System;` directive to support new code. <!-- Enter description of the fix in this section --> ### Why no tests added : - No new automated test was added in this PR because the existing UI test `HorizontalGridFooterExpandsToContentWidth` already covers this behavior — it was the test that started failing in net11 CI, which is what prompted this fix. Rather than adding a new test, this PR restores the passing behavior of that existing test ### Tested the behavior in the following platforms - [x] Windows - [ ] Android - [ ] iOS - [ ] Mac | Before Issue Fix | After Issue Fix | |----------|----------| | <video src="https://github.com/user-attachments/assets/ca60350b-9eda-4da2-bb48-0215c8fa1ac9"> | <video src="https://github.com/user-attachments/assets/232cb201-84af-4e27-b508-83dc1df286e6"> | <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. -->
Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Versions.props - eng/common/*
Resolve the ModalTests.SetupBuilder conflict by preserving the net11.0 parameterized virtual signature. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7d88fab8-4419-47a0-b004-097af176c7e9
Contributor
Author
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 37042Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 37042" |
kubaflo
approved these changes
Aug 3, 2026
Contributor
|
/azp run maui-pr-uitests |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Contributor
|
@PureWeen Build 1537961 contains the current head |
PureWeen
added a commit
that referenced
this pull request
Aug 4, 2026
<!-- 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! Replaces #37050 with a clean, one-commit branch from current `main`. ## Motivation Live generated inter-branch PRs #37007 and #37042 matched the configured bot sender, `Opened` event, exact title, and exact target branch, but hosted Policy Service supplied neither an approval nor an auto-merge request. Local evaluation with the production package successfully deserializes and matches the current nested rule, while Policy Service remains active for other MAUI rules. The nested `or`-of-`and` structure is therefore the remaining evidence-backed hosted-runtime compatibility hypothesis. This is **not** a service-log-confirmed root cause: hosted evaluation catches task exceptions internally, so predicate-level diagnostics are unavailable from GitHub. ## Change Replace the single nested matcher with four flat rules, one for each allowed title/target pair. Every rule preserves the existing security restrictions: - sender must be `github-actions[bot]` - action must be `Opened` - title must match the exact anchored regular expression - target branch must match the exact allow-listed branch - auto-merge uses a merge commit - Policy Service does not retrigger on its own actions No `Synchronize` behavior or broader matching is added. ## Validation - full YAML parse - production `GitOps.PullRequestIssueManagement` `0.1.182` deserialization: 24 tasks, 4 flat inter-branch tasks - exact sender, title regex, target branch, approval, merge-auto-merge, and `triggerOnOwnActions` assertions for all four rules - CRLF-aware `git diff --check` This change is an experiment to remove the remaining unique matcher shape. Definitive validation requires merging it and observing a fresh generated inter-branch PR receive the Policy Service approval and auto-merge request. Co-authored-by: Vally Fixture <vally-fixture@example.invalid> Copilot-Session: 1b2b2dd6-bf5f-4179-8a8f-c4c85b9bce26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the net11.0 branch which have not been merged yet to release/11.0.1xx-preview7. I'm a robot and am configured to help you automatically keep release/11.0.1xx-preview7 up to date, so I've opened this PR.
This PR merges commits made on net11.0 by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/net11.0-to-release/11.0.1xx-preview7'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.