Revert public API surface from #34228 on inflight/candidate#35024
Revert public API surface from #34228 on inflight/candidate#35024PureWeen merged 1 commit intoinflight/candidatefrom
Conversation
PR #34228 made IAlertManager and IAlertManagerSubscription public, but it was merged to inflight/current when it likely should have targeted main. This reverts the public API surface on inflight/candidate while keeping the interfaces in place (as internal) so the refactor remains. - Mark IAlertManager as internal - Mark IAlertManagerSubscription as internal - Remove corresponding entries from all PublicAPI.Unshipped.txt files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://github.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35024Or
iex "& { $(irm https://github.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35024" |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR aims to revert the public API exposure introduced by #34228 on inflight/candidate (by making IAlertManager / IAlertManagerSubscription internal and reverting PublicAPI baselines), but the diff also includes a large set of unrelated control/handler behavior changes, tests, and build/dependency updates.
Changes:
- Internalizes
IAlertManagerandIAlertManagerSubscriptionand adjustsWindowDI resolution to support custom alert managers. - Updates multiple Controls runtime behaviors (VSM specificity promotion, Shell/FlowDirection fixes, iOS/Android/Windows handler fixes, Brush transparency handling, etc.) and adds/updates tests.
- Modifies PublicAPI baselines and build configuration (including package version updates).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Controls/tests/TestCases.HostApp/Issues/Issue23921.cs | Adds HostApp issue reproduction page for SwipeView tap propagation (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue23902.cs | Adds HostApp issue reproduction pages for duplicated OnNavigatedTo (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue23854.cs | Adds HostApp issue reproduction for ImageButton CornerRadius (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue22769.cs | Adds HostApp repro for Brush.Transparent background behavior. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue22197.xaml.cs | Adds HostApp page backing for HTML Label line-height scenario. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue22197.xaml | Adds XAML scenario for HTML vs plain Label line height / decorations. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue22104.xaml | Updates VSM setters and layout in existing HostApp issue XAML. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue22038.cs | Adds HostApp repro for opacity clipping overflow (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue21983.xaml.cs | Adds HostApp page backing for Shape stroke GradientBrush scenario. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue21983.xaml | Adds XAML scenario for gradient stroke/fill on shapes. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue20991.cs | Adds HostApp repro for IDrawable binding in GraphicsView. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue20834.cs | Adds HostApp repro for GraphicsView drawing outside canvas (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue20348.cs | Adds HostApp repro for SearchBar text copying after back navigation (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue20062.cs | Adds HostApp repro for CollectionView Selected VSM state (Android). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue19168.cs | Adds HostApp repro for dismissing iOS Picker by tapping outside. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue18657.cs | Adds HostApp repro for removing CollectionView.EmptyView (UWP). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue18200.cs | Adds HostApp repro for FlyoutPage collapse style changes (UWP). |
| src/Controls/tests/TestCases.HostApp/Issues/Issue11404.cs | Adds HostApp repro for Line coordinate transformation correctness. |
| src/Controls/tests/TestCases.HostApp/Issues/Issue10987.cs | Adds HostApp repro for Editor alignment behavior. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Slider/SliderViewModal.cs | Adds ViewModel state for Slider ValueChanged diagnostics. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Slider/SliderControlPage.xaml.cs | Wires Slider.ValueChanged to update ViewModel state. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Slider/SliderControlPage.xaml | Updates UI to show ValueChanged status and old/new values. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/ScrollView/ScrollViewViewModel.cs | Adds state tracking for ScrollToRequested event diagnostics. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/ScrollView/ScrollViewControlPage.xaml.cs | Handles ScrollToRequested event and updates diagnostics state. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/ScrollView/ScrollViewControlPage.xaml | Adds UI to display ScrollToRequested args and trigger scroll-to-pixel. |
| src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj | Adds additional images (Challenges) to MAUI assets. |
| src/Controls/tests/DeviceTests/Elements/Shell/ShellFlyoutTests.cs | Adjusts assertions around flyout header height with safe-area considerations. |
| src/Controls/tests/DeviceTests/Elements/RadioButton/RadioButtonTests.cs | Adds device tests for templated RadioButton semantics description behavior. |
| src/Controls/tests/DeviceTests/Elements/Label/LabelTests.iOS.cs | Updates test data for character spacing / line height / decorations case. |
| src/Controls/tests/DeviceTests/Elements/Entry/EntryTests.cs | Adds tests for long Entry text scenarios and MaxLength/Text order. |
| src/Controls/tests/DeviceTests/Elements/Editor/EditorTests.iOS.cs | Adds iOS test for Editor placeholder horizontal alignment. |
| src/Controls/tests/DeviceTests/Elements/CollectionView/CollectionViewTests.iOS.cs | Adds iOS test for CarouselView scroll indicator visibility updates. |
| src/Controls/tests/DeviceTests/Elements/CarouselView/CarouselViewTests.cs | Re-enables a test previously excluded from Android builds. |
| src/Controls/tests/DeviceTests/Elements/CarouselView/CarouselViewTests.Android.cs | Adds Android accessibility test for IndicatorView talkback descriptions. |
| src/Controls/tests/Core.UnitTests/VisualStateManagerTests.cs | Adds regression tests for implicit-style VSM specificity behavior. |
| src/Controls/tests/Core.UnitTests/SolidColorBrushTests.cs | Adds tests for Brush transparency detection for SolidColorBrush. |
| src/Controls/tests/Core.UnitTests/RadialGradientBrushTests.cs | Adds tests for Brush transparency detection for RadialGradientBrush. |
| src/Controls/tests/Core.UnitTests/LinearGradientBrushTests.cs | Adds tests for Brush transparency detection for LinearGradientBrush. |
| src/Controls/tests/Core.UnitTests/BindablePropertyUnitTests.cs | Adds unit test for CollectionView header unwrapping OnPlatform. |
| src/Controls/tests/Core.UnitTests/AlertManagerTests.cs | Updates tests for alert manager DI/refactor and adds new ordering/DI tests. |
| src/Controls/src/Core/Window/Window.cs | Resolves custom IAlertManager from DI and manages subscribe/unsubscribe. |
| src/Controls/src/Core/VisualStateManager.cs | Promotes implicit VSM specificity only for system-driven states. |
| src/Controls/src/Core/VisualElement/VisualElement.cs | Adds internal IsExplicitlyEnabled and adjusts loaded/unloaded wiring logic. |
| src/Controls/src/Core/VisualElement/VisualElement.Platform.cs | Fires Loaded/Unloaded for native-hosted views without MAUI Window. |
| src/Controls/src/Core/TitleBar/TitleBar.cs | Adds FlowDirection visual states and binding-context propagation for content. |
| src/Controls/src/Core/Style.cs | Adjusts BasedOn style application order (UnApply then Apply). |
| src/Controls/src/Core/Shell/ShellItem.cs | Changes TabBarIsVisible effective value computation to respect ShellContent. |
| src/Controls/src/Core/Shell/ShellElementCollection.cs | Propagates dynamic TabBarIsVisible changes from ShellContent to displayed Page. |
| src/Controls/src/Core/Shapes/Shape.cs | Fixes translation logic for Stretch.None path alignment within bounds. |
| src/Controls/src/Core/SetterSpecificity.cs | Adds helpers/masks and promotes implicit VSM specificity via WithFullVsmPriority. |
| src/Controls/src/Core/Setter.cs | Changes name resolution to walk parent NameScopes and adjusts exceptions. |
| src/Controls/src/Core/RadioButton/RadioButton.cs | Improves semantics description derivation for templated content. |
| src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt | Updates public API baselines (new overrides recorded). |
| src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt | Updates public API baselines (new overrides recorded). |
| src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt | Updates baseline and records additional overrides (CarouselViewHandler.ScrollTo). |
| src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt | Updates public API baselines (new overrides recorded). |
| src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt | Updates baseline and records new overrides (incl. Items2 changes). |
| src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt | Updates baseline and records new overrides (incl. Items2 changes). |
| src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt | Updates baseline and records new overrides (GraphicsView/TitleBar overrides). |
| src/Controls/src/Core/PlatformConfiguration/WindowsSpecific/FlyoutPage.cs | Adds propertyChanged to CollapseStyle attached property to trigger handler updates. |
| src/Controls/src/Core/Platform/iOS/ControlsModalWrapper.cs | Uses Brush transparency to select OverFullScreen modal presentation style. |
| src/Controls/src/Core/Platform/Windows/Extensions/AutoSuggestBoxExtensions.cs | Adds SearchHandler-specific update helpers (colors, alignments, cancel button). |
| src/Controls/src/Core/Platform/Windows/CollectionView/ItemContentControl.cs | Re-adds logical children on recycle and fixes selection equality comparisons. |
| src/Controls/src/Core/Platform/ModalNavigationManager/ModalNavigationManager.Android.cs | Uses DismissNow during batch pops and forwards dialog touch events to Window. |
| src/Controls/src/Core/Platform/GestureManager/GesturePlatformManager.Android.cs | Adds RecyclerView touch listener to route gestures before child consumption. |
| src/Controls/src/Core/Platform/AlertManager/IAlertManagerSubscription.cs | Introduces IAlertManagerSubscription (now internal per metadata intent). |
| src/Controls/src/Core/Platform/AlertManager/IAlertManager.cs | Introduces IAlertManager (now internal per metadata intent). |
| src/Controls/src/Core/Platform/AlertManager/AlertManager.cs | Refactors AlertManager to implement IAlertManager. |
| src/Controls/src/Core/Page/Page.cs | Adds Window-null guard for alerts and changes navigation event dispatch/disposal logic. |
| src/Controls/src/Core/Label/Label.iOS.cs | Ensures formatting map updates line height/decorations/character spacing. |
| src/Controls/src/Core/Label/Label.cs | Adjusts invalidation when text toggles empty/non-empty for sizeable labels. |
| src/Controls/src/Core/Label/Label.Mapper.cs | Skips mapping for formatted spans using HasFormattedTextSpans. |
| src/Controls/src/Core/Items/MarshalingObservableCollection.cs | Uses weak proxy and adds Dispose to unsubscribe. |
| src/Controls/src/Core/Handlers/Shell/ShellItemHandler.Windows.cs | Improves SearchHandler updates and applies cancel button color on Loaded. |
| src/Controls/src/Core/Handlers/Items2/iOS/StructuredItemsViewController2.cs | Updates header/footer flow direction when layout changes. |
| src/Controls/src/Core/Handlers/Items2/iOS/ReorderableItemsViewDelegator2.cs | Reuses shared grouped-move logic via new helper extensions. |
| src/Controls/src/Core/Handlers/Items2/iOS/ReorderableItemsViewController2.cs | Adds grouped reordering validation and section reload after interactive move. |
| src/Controls/src/Core/Handlers/Items2/iOS/ItemsViewController2.cs | Simplifies flow direction update logic for templated vs default cells. |
| src/Controls/src/Core/Handlers/Items2/iOS/CarouselViewController2.cs | Adds iOS 26 debounce and bounds checks; disposes debounce token source. |
| src/Controls/src/Core/Handlers/Items2/CarouselViewHandler2.iOS.cs | Adds controller cast safety and supports swipe-enabled for compositional layout. |
| src/Controls/src/Core/Handlers/Items/iOS/ReorderableItemsViewExtensions.cs | Adds shared helper for grouped move target index logic. |
| src/Controls/src/Core/Handlers/Items/iOS/ReorderableItemsViewDelegator.cs | Uses shared helper for grouped reorder targeting. |
| src/Controls/src/Core/Handlers/Items/iOS/ReorderableItemsViewController.cs | Adds grouped reordering validation and header reload after movement. |
| src/Controls/src/Core/Handlers/Items/iOS/MauiCollectionView.cs | Intercepts AddSubview to apply swipe-enabled to embedded UIScrollView. |
| src/Controls/src/Core/Handlers/Items/iOS/CarouselViewController.cs | Adds bounds checks around ScrollTo and UpdateFromCurrentItem logic. |
| src/Controls/src/Core/Handlers/Items/StructuredItemsViewHandler.Windows.cs | Cleans up header/footer when being removed from logical tree. |
| src/Controls/src/Core/Handlers/Items/SelectableItemsViewHandler.Windows.cs | Uses object.Equals for selection comparisons. |
| src/Controls/src/Core/Handlers/Items/ItemsViewHandler.Windows.cs | Refactors empty view removal/disconnect/templating handling. |
| src/Controls/src/Core/Handlers/Items/CarouselViewHandler.Windows.cs | Adds goto-position suppression and commits position prior to animated scroll. |
| src/Controls/src/Core/Handlers/Items/Android/SimpleItemTouchHelperCallback.cs | Changes move blocking logic for reordering structural elements. |
| src/Controls/src/Core/Handlers/Items/Android/MauiRecyclerView.cs | Changes disabled touch handling based on explicit vs inherited IsEnabled. |
| src/Controls/src/Core/Handlers/Items/Android/MauiCarouselRecyclerView.cs | Adjusts goto-position tracking across animated scroll operations. |
| src/Controls/src/Core/Handlers/Items/Android/ItemsSources/ObservableItemsSource.cs | Adds option to dispose wrapped items sources and disposes marshaling collection. |
| src/Controls/src/Core/Handlers/Items/Android/ItemsSources/ItemsSourceFactory.cs | Passes dispose flag when wrapping in MarshalingObservableCollection. |
| src/Controls/src/Core/Handlers/Items/Android/Adapters/SelectableItemsViewAdapter.cs | Forces selection visuals update in single mode for value-equal items. |
| src/Controls/src/Core/Handlers/Items/Android/Adapters/ReorderableItemsViewAdapter.cs | Adds safeguards and header targeting rules for grouped item moves. |
| src/Controls/src/Core/GraphicsView/GraphicsView.cs | Adds binding context propagation to Drawable and property changed handling. |
| src/Controls/src/Core/FlyoutPage/FlyoutPage.Mapper.cs | Registers Windows mapping for CollapseStyle to update platform behavior. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/SlideFlyoutTransition.cs | Adjusts RTL locked flyout positioning. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellTableViewSource.cs | Forces FlowDirection resolution for disconnected Shell menu items. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRootRenderer.cs | Resolves MatchParent flow direction on tracked pages. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRenderer.cs | Updates TabBar flow direction in addition to navigation bar/view. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellPageRendererTracker.cs | Ensures visibility state resets when page set ordering changes. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellFlyoutHeaderContainer.cs | Implements measure invalidation controller for flyout header container. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellFlyoutContentRenderer.cs | Updates footer flow direction and resolves header flow direction. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarTracker.cs | Improves back icon override and clears SearchView state on handler swap. |
| src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellItemRenderer.cs | Requests insets when tab bar goes Gone→Visible to avoid stale padding. |
| src/Controls/src/Core/Brush/Brush.cs | Adds internal HasTransparency(Brush) helper. |
| src/Controls/src/Core/BindableProperty.cs | Prevents assignable wrapped values from bypassing conversion/unwrapping. |
| src/Controls/Maps/src/AppHostBuilderExtensions.cs | Updates docs and removes Windows NotImplementedException path. |
| src/BlazorWebView/src/Wpf/BlazorWebView.cs | Marks WebView manager disposing before async cleanup. |
| src/BlazorWebView/src/SharedSource/WebView2WebViewManager.cs | Prevents sending messages during disposal / after CoreWebView2 disposal. |
| src/BlazorWebView/src/Maui/build/Microsoft.AspNetCore.Components.WebView.Maui.targets | Filters out compressed alternatives when CompressionEnabled=false. |
| src/AI/src/Essentials.AI/PublicAPI/net-macos/PublicAPI.Unshipped.txt | Moves AI APIs out of Unshipped. |
| src/AI/src/Essentials.AI/PublicAPI/net-macos/PublicAPI.Shipped.txt | Marks AI APIs as shipped (MAUIAI0001). |
| src/AI/src/Essentials.AI/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt | Moves AI APIs out of Unshipped. |
| src/AI/src/Essentials.AI/PublicAPI/net-maccatalyst/PublicAPI.Shipped.txt | Marks AI APIs as shipped (MAUIAI0001). |
| src/AI/src/Essentials.AI/PublicAPI/net-ios/PublicAPI.Unshipped.txt | Moves AI APIs out of Unshipped. |
| src/AI/src/Essentials.AI/PublicAPI/net-ios/PublicAPI.Shipped.txt | Marks AI APIs as shipped (MAUIAI0001). |
| eng/Versions.props | Updates MonoApiTools MSBuild tasks version. |
There was a problem hiding this comment.
The PR title/description says this change is focused on reverting the public API surface from #34228 (AlertManager interfaces) on inflight/candidate, but the diff includes many unrelated behavioral changes, new/updated tests, PublicAPI baseline additions, and even a tooling dependency bump. This makes the PR hard to review and increases risk for servicing branches. Consider splitting: (1) the AlertManager API-surface revert into its own minimal PR, and (2) the remaining fixes/tests/tooling changes into separate, scoped PRs (or update the PR description/title to accurately reflect the full scope).
There was a problem hiding this comment.
As written, the ?.Alpha < 1 comparisons will produce a nullable boolean when Color is nullable (and will not compile where a non-nullable bool is required/returned). This should be rewritten to avoid nullable comparisons (e.g., pattern-match the color and compare Alpha), and similarly for gradient stop colors.
There was a problem hiding this comment.
This return; exits SendNavigatedFrom(...) entirely, not just the handler-disposal portion. That risks skipping any subsequent navigation bookkeeping in the remainder of the method (e.g., state resets, events, or other cleanup which should still happen even when the Handler isn’t disposed). Safer approach: avoid returning from the method; instead, conditionally skip only the handler disposal/disconnect call and allow the rest of SendNavigatedFrom to run.
There was a problem hiding this comment.
New HostApp issue pages are being added under TestCases.HostApp/Issues/, but there are no corresponding UI tests under src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/. In this repo, issue pages are typically paired with an Appium-based _IssuesUITest to prevent regressions. Please add matching tests (and ensure unique AutomationIds) for the new issue pages introduced in this PR.
There was a problem hiding this comment.
This test relies on multiple fixed Task.Delay(...) calls and polling loops, which is a common source of device-test flakiness. Prefer using existing test infra patterns like an AssertEventually(...)/retry helper (or a single bounded wait that checks the actual condition) so timing adapts to device load rather than depending on hardcoded delays.
There was a problem hiding this comment.
This test relies on multiple fixed Task.Delay(...) calls and polling loops, which is a common source of device-test flakiness. Prefer using existing test infra patterns like an AssertEventually(...)/retry helper (or a single bounded wait that checks the actual condition) so timing adapts to device load rather than depending on hardcoded delays.
There was a problem hiding this comment.
This test relies on multiple fixed Task.Delay(...) calls and polling loops, which is a common source of device-test flakiness. Prefer using existing test infra patterns like an AssertEventually(...)/retry helper (or a single bounded wait that checks the actual condition) so timing adapts to device load rather than depending on hardcoded delays.
There was a problem hiding this comment.
async void test methods can cause unobserved exceptions and incorrect test results because the test framework can’t reliably await completion. This should return Task instead (public async Task ...). This is especially important now that the test is no longer conditionally excluded from Android builds in this PR.
| public async Task DisconnectedCarouselViewDoesNotHookCollectionViewChanged() |
<!-- 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 PR #34228 added public `IAlertManager` and `IAlertManagerSubscription` interfaces, but it was merged into `inflight/current` when the public API change likely should have gone through `main` first. This PR reverts the **public API surface** of those changes on `inflight/candidate`, while keeping the refactor (the interfaces, the DI wiring, the `AlertManager : IAlertManager` split) in place. The interfaces are now marked `internal` so no new public API is shipped from the inflight branches, and the `PublicAPI.Unshipped.txt` files are restored to their pre-#34228 state. ### Changes - Mark `IAlertManager` as `internal` - Mark `IAlertManagerSubscription` as `internal` - Remove the corresponding entries from all 7 `PublicAPI.Unshipped.txt` files (net, net-android, net-ios, net-maccatalyst, net-tizen, net-windows, netstandard) All existing consumers (`AlertManager`, `Window`, `AlertManagerTests`) are internal to the `Controls.Core` assembly and/or have `InternalsVisibleTo`, so no other code changes are needed. ### Follow-up The public API change can be re-introduced via a separate PR targeting `main` if/when desired. Targets: `inflight/candidate` Related: #34228 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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 from this PR and let us know in a comment if this change resolves your issue. Thank you!
Description
PR #34228 added public
IAlertManagerandIAlertManagerSubscriptioninterfaces, but it was merged intoinflight/currentwhen the public API change likely should have gone throughmainfirst.This PR reverts the public API surface of those changes on
inflight/candidate, while keeping the refactor (the interfaces, the DI wiring, theAlertManager : IAlertManagersplit) in place. The interfaces are now markedinternalso no new public API is shipped from the inflight branches, and thePublicAPI.Unshipped.txtfiles are restored to their pre-#34228 state.Changes
IAlertManagerasinternalIAlertManagerSubscriptionasinternalPublicAPI.Unshipped.txtfiles (net, net-android, net-ios, net-maccatalyst, net-tizen, net-windows, netstandard)All existing consumers (
AlertManager,Window,AlertManagerTests) are internal to theControls.Coreassembly and/or haveInternalsVisibleTo, so no other code changes are needed.Follow-up
The public API change can be re-introduced via a separate PR targeting
mainif/when desired.Targets:
inflight/candidateRelated: #34228