You are really supposed to use 17.12 for .NET9 support.
Also, when I used 17.11, though it mostly worked, I saw the error "The 'interceptors' feature is not enabled in this namespace. Add '<InterceptorsNamespaces>...". That error went away when moving to 17.12 P5.
Co-authored-by: Bret Johnson <bretjohn@microsoft.com>
### Description of Change
This change is for Android layout only: Clamp the final width/height
within the minimum/maximum sizes. Since the layout mode is being set to
`MeasureSpecMode.Exactly`, we need to give Android the exact final
measurement, it will not take minimum/maximum size requests into
account.
See the bug for full info.
### Issues Fixed
Fixes:
* https://github.com/dotnet/maui/issues/25163
* Delay binding context type check until relative binding source is resolved
* Add test
* Fix test name
* Check that we produce a warning when there is a mismatch
* Make the exception message exactly the same between compiled and non-compiled binding
Android 35+ enforces apps extending "Edge to Edge" by default. See
https://github.com/dotnet/maui/issues/24742 for details.
For now, a better compromise is to disable this by default in MAUI apps,
until we can provide better support for edge to edge within .NET MAUI
itself as well as better safe area insets on Android.
If you still want to manually make your app more compatible with edge to
edge, you can disable this implicit opt out by overriding the default
theme, changing the `maui_edgetoedge_optout` attribute to `false` and
the theme yourself:
```xml
<style name="MainThemeEdgeToEdge" parent="Maui.MainTheme.NoActionBar">
<item name="maui_edgetoedge_optout">false</item>
</style>
```
And then applying the theme by calling it before the `base.OnCreate(..)`
in your activity subclass (in the OnCreate method override):
```csharp
protected override void OnCreate(Bundle? savedInstanceState)
{
SetTheme(Resource.Style.MainThemeEdgeToEdge);
base.OnCreate(savedInstanceState);
}
```
This also fixes a previous bug where we were always switching the theme
based on the presence of the `maui_splash` attribute, not the actual
value of the attribute.
Finally, it moves more calls into native android and reduces the
boundary crossing for this specific method.
The new "Default" of opting out of the Edge to Edge enforcement on an
Android 35+ device looks now like this:
![Screenshot_1729819287](https://github.com/user-attachments/assets/15ddc7fc-9334-4f92-82de-c0b7e19921db)
If you revert to the old behaviour by disabling the opt out, it will
look like this:
![Screenshot_1729819354](https://github.com/user-attachments/assets/1770259e-0a9e-49ea-860e-37e6131a09c4)
don t do xcode
No secrets
Skip provisioning on templates
Skip for uitests
Try xcode select
try again
Fix yml
fix sikpXcode
fix variable
again
Fix skip xcode
This moves most of our MauiAppCompatActivity override into a platform interop method.
The other key change is switching how we check for the maui_splash attribute. Previously we were really just resolving that it exists, not checking the actual value, so the theme was always going to be switched out.
This should 'fix' the splash attribute check.
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 10.0.0-prerelease.24514.1 -> To Version 10.0.0-prerelease.24524.9
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Remove warning suppressions
Remove unnecessary rsp files
* Make CsWinRT happy by making classes partial and allowing unsafe blocks
* Use generic Marshal.SizeOf
* Use source generated JSON serialization
---------
Co-authored-by: Simon Rozsival <srozsival@microsoft.com>