Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

R8 : warning : Missing class androidx.window.extensions.WindowExtensions #10901

Closed
tranb3r opened this issue Oct 25, 2022 · 12 comments · Fixed by dotnet/android#7643
Closed

R8 : warning : Missing class androidx.window.extensions.WindowExtensions #10901

tranb3r opened this issue Oct 25, 2022 · 12 comments · Fixed by dotnet/android#7643
Labels
area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) platform/android 🤖 s/needs-info Issue needs more info from the author t/bug Something isn't working

Comments

@tranb3r
Copy link

tranb3r commented Oct 25, 2022

Description

When building a dotnet maui app for net6.0-android with R8 enabled, I get the following warning:
R8 : warning : Missing class androidx.window.extensions.WindowExtensions

Could be related to dotnet/android#6809

Steps to Reproduce

  1. Create a Maui app for net6.0-android.
  2. Enable R8 (add r8 PropertyGroup to csproj for Release configuration).
  3. Build the app for Release configuration.
  4. Check the build log

Link to public reproduction project repository

https://github.com/tranb3r/SecureHttpClient/tree/maui

Version with bug

6.0.400

Last version that worked well

Unknown/Other

Affected platforms

Android

Affected platform versions

net6.0-android31.0

Did you find any workaround?

No response

Relevant log output

No response

@tranb3r tranb3r added the t/bug Something isn't working label Oct 25, 2022
@PureWeen PureWeen added area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) platform/android 🤖 labels Oct 25, 2022
@PureWeen PureWeen added this to the Backlog milestone Oct 25, 2022
@ghost
Copy link

ghost commented Oct 25, 2022

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@PureWeen
Copy link
Member

@jonathanpeppers

@jonathanpeppers
Copy link
Member

This is duplicate of dotnet/android#6809, do we just close it?

The gist, is there are some "optional" .jar files and r8 warns if it can't find them. OEMs put them on some devices, and we are not sure of the right fix yet. At the time, some of these packages were still listed versioned as alpha...

@angelru
Copy link

angelru commented Dec 15, 2022

the same issue with net7.0:
R8 : warning : Missing class androidx.window.extensions.WindowExtensions (referenced from: androidx.window.extensions.layout.WindowLayoutComponent androidx.window.layout.SafeWindowLayoutComponentProvider$windowLayoutComponent$2.invoke())

@jonathanpeppers
Copy link
Member

If you want to suppress these warnings, you can set these in your .csproj:

<AndroidD8ExtraArguments>--map-diagnostics warning info</AndroidD8ExtraArguments>
<AndroidR8ExtraArguments>--map-diagnostics warning info</AndroidR8ExtraArguments>

jonathanpeppers added a commit to jonathanpeppers/xamarin-android that referenced this issue Dec 15, 2022
Fixes: dotnet/maui#10901

Building a .NET MAUI project such as:

    dotnet new maui
    dotnet build -c Release -f net6.0-android -p:AndroidLinkMode=r8

Results in build warnings from R8 such as:

    R8 : warning : Missing class androidx.window.extensions.WindowExtensions

In 92bc705, we already had attempted to silence warnings from R8 such as:

    R8 : warning : Resource 'META-INF/MANIFEST.MF' already exists.

At the time, there was no option to hide warnings, now there is!

    --map-diagnostics[:<type>] <from-level> <to-level>
        # Map diagnostics of <type> (default any) reported as
        # <from-level> to <to-level> where <from-level> and
        # <to-level> are one of 'info', 'warning', or 'error' and the
        # optional <type> is either the simple or fully qualified
        # Java type name of a diagnostic. If <type> is unspecified,
        # all diagnostics at <from-level> will be mapped.
        # Note that fatal compiler errors cannot be mapped.

We can pass:

    --map-diagnostics warning info

Which can be done in existing apps via:

    <AndroidD8ExtraArguments>--map-diagnostics warning info</AndroidD8ExtraArguments>
    <AndroidR8ExtraArguments>--map-diagnostics warning info</AndroidR8ExtraArguments>

To solve this problem, let's create a new `$(AndroidD8IgnoreWarnings)`
MSBuild property and make use of one we already have
`$(AndroidR8IgnoreWarnings)`:

    <ItemGroup>
      <_AndroidD8MapDiagnostics Condition=" '$(AndroidD8IgnoreWarnings)' == 'true' " Include="warning" To="info" />
      <_AndroidR8MapDiagnostics Condition=" '$(AndroidR8IgnoreWarnings)' == 'true' " Include="warning" To="info" />
    </ItemGroup>

We can then use these item groups to pass `--map-diagnostics` as
appropriate. Developers can turn off either property to disable this
behavior.

We can then remove the weird `Regex` code added in 92bc705. The
existing tests from 92bc705 should also be sufficient for testing
this change.
@jonathanpeppers
Copy link
Member

We're going to be able to suppress these warnings in .NET 8: dotnet/android#7643

But I would use the workaround above for now.

@tranb3r
Copy link
Author

tranb3r commented Dec 16, 2022

In dotnet/android/issues/6809, I understood that ignoring warnings was not an option.
Why have you changed your mind about that ?
Is there really no other option ?

@jonathanpeppers
Copy link
Member

The problem is these warnings are not actionable, so they are not useful. In my opinion, the purpose of a warning is to say "improve your code by doing this".

For the long-term fix, I installed the AndroidX packages one-by-one that MAUI depends on, and it appears Xamarin.AndroidX.Legacy.Support.V4 is the cause. I believe this is only for supporting really old Android versions? We could stop using this package in MAUI, but I haven't looked into how it's used yet.

@tranb3r
Copy link
Author

tranb3r commented Dec 16, 2022

The problem is these warnings are not actionable, so they are not useful. In my opinion, the purpose of a warning is to say "improve your code by doing this".

I disagree.
Maybe this very specific warning is not actionable.
But usually when I get a warning from R8, I need to do something, either fix my code or modify proguard rules.
So, in my opinion, disabling all R8 warnings is not a very good solution.

@jonathanpeppers
Copy link
Member

jonathanpeppers commented Dec 16, 2022

@tranb3r can you share a sample project that illustrates this? What is the alternate solution here?

jonathanpeppers added a commit to jonathanpeppers/maui that referenced this issue Dec 20, 2022
In reviewing:

dotnet#10901 (comment)

I found `Xamarin.AndroidX.Legacy.Support.V4` triggers the warning:

    R8 : warning : Missing class androidx.window.extensions.WindowExtensions

`AndroidX.Legacy.Support.V4` is a package for supporting *really* old
Android API levels like 7, 11, etc.

Details here: https://stackoverflow.com/a/59484158

The Android workload in .NET 6/7 only supports API 21+. That made me
think, why is .NET MAUI using `AndroidX.Legacy.Support.V4` at all?
Turns out, it's not!

I tried directly removing the package, and got:

    src\Core\src\Platform\Android\MauiSwipeRefreshLayout.cs(10,16): error CS0234: The type or namespace name 'SwipeRefreshLayout' does not exist in
the namespace 'AndroidX' (are you missing an assembly reference?)

It looks like this is just a dependency of
`Xamarin.AndroidX.Legacy.Support.V4`. Instead we can just use this
package directly instead:

    <PackageReference Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.10" />

The end result, is we just removed Android packages that are not used
at all. We still use the same library for `SwipeRefreshLayout`.

~~ Results ~~

Android app sizes improved from this change:

    > apkdiff -f com.companyname.maui_before-Signed.apk com.companyname.maui_after-Signed.apk
    Size difference in bytes ([*1] apk1 only, [*2] apk2 only):
    +   1,598,040 classes.dex
    -           6 META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version *1
    -           6 META-INF/androidx.legacy_legacy-support-core-ui.version *1
    -           6 META-INF/androidx.legacy_legacy-support-v4.version *1
    -           6 META-INF/androidx.media_media.version *1
    -         455 assemblies/assemblies.blob
    -         564 res/layout/notification_media_action.xml *1
    -         744 res/layout/notification_media_cancel_action.xml *1
    -       1,292 res/layout/notification_template_media.xml *1
    -       1,584 META-INF/BNDLTOOL.SF
    -       1,584 META-INF/MANIFEST.MF
    -       1,696 res/layout/notification_template_big_media.xml *1
    -       1,824 res/layout/notification_template_big_media_narrow.xml *1
    -       2,456 resources.arsc
    -       2,756 res/layout/notification_template_media_custom.xml *1
    -       2,872 res/layout/notification_template_lines_media.xml *1
    -       3,044 res/layout/notification_template_big_media_custom.xml *1
    -       3,216 res/layout/notification_template_big_media_narrow_custom.xml *1
    -   2,030,636 classes2.dex
    Summary:
    -      24,111 Other entries -0.35% (of 6,880,759)
    -     432,596 Dalvik executables -3.46% (of 12,515,440)
    +           0 Shared libraries 0.00% (of 12,235,904)
    -     169,179 Package size difference -1.12% (of 15,123,185)

Most notably, `*.dex` executables are ~432kb smaller. So small, in
fact, that the project template no longer needs multi-dex anymore!
PureWeen pushed a commit that referenced this issue Dec 28, 2022
In reviewing:

#10901 (comment)

I found `Xamarin.AndroidX.Legacy.Support.V4` triggers the warning:

    R8 : warning : Missing class androidx.window.extensions.WindowExtensions

`AndroidX.Legacy.Support.V4` is a package for supporting *really* old
Android API levels like 7, 11, etc.

Details here: https://stackoverflow.com/a/59484158

The Android workload in .NET 6/7 only supports API 21+. That made me
think, why is .NET MAUI using `AndroidX.Legacy.Support.V4` at all?
Turns out, it's not!

I tried directly removing the package, and got:

    src\Core\src\Platform\Android\MauiSwipeRefreshLayout.cs(10,16): error CS0234: The type or namespace name 'SwipeRefreshLayout' does not exist in
the namespace 'AndroidX' (are you missing an assembly reference?)

It looks like this is just a dependency of
`Xamarin.AndroidX.Legacy.Support.V4`. Instead we can just use this
package directly instead:

    <PackageReference Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.10" />

The end result, is we just removed Android packages that are not used
at all. We still use the same library for `SwipeRefreshLayout`.

~~ Results ~~

Android app sizes improved from this change:

    > apkdiff -f com.companyname.maui_before-Signed.apk com.companyname.maui_after-Signed.apk
    Size difference in bytes ([*1] apk1 only, [*2] apk2 only):
    +   1,598,040 classes.dex
    -           6 META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version *1
    -           6 META-INF/androidx.legacy_legacy-support-core-ui.version *1
    -           6 META-INF/androidx.legacy_legacy-support-v4.version *1
    -           6 META-INF/androidx.media_media.version *1
    -         455 assemblies/assemblies.blob
    -         564 res/layout/notification_media_action.xml *1
    -         744 res/layout/notification_media_cancel_action.xml *1
    -       1,292 res/layout/notification_template_media.xml *1
    -       1,584 META-INF/BNDLTOOL.SF
    -       1,584 META-INF/MANIFEST.MF
    -       1,696 res/layout/notification_template_big_media.xml *1
    -       1,824 res/layout/notification_template_big_media_narrow.xml *1
    -       2,456 resources.arsc
    -       2,756 res/layout/notification_template_media_custom.xml *1
    -       2,872 res/layout/notification_template_lines_media.xml *1
    -       3,044 res/layout/notification_template_big_media_custom.xml *1
    -       3,216 res/layout/notification_template_big_media_narrow_custom.xml *1
    -   2,030,636 classes2.dex
    Summary:
    -      24,111 Other entries -0.35% (of 6,880,759)
    -     432,596 Dalvik executables -3.46% (of 12,515,440)
    +           0 Shared libraries 0.00% (of 12,235,904)
    -     169,179 Package size difference -1.12% (of 15,123,185)

Most notably, `*.dex` executables are ~432kb smaller. So small, in
fact, that the project template no longer needs multi-dex anymore!
@PureWeen PureWeen added the s/needs-info Issue needs more info from the author label Dec 28, 2022
@ghost
Copy link

ghost commented Dec 28, 2022

Hi @tranb3r. We have added the "s/needs-info" label to this issue, which indicates that we have an open question for you before we can take further action. This issue will be closed automatically in 7 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time.

@ghost ghost added the s/no-recent-activity Issue has had no recent activity label Jan 2, 2023
@ghost
Copy link

ghost commented Jan 2, 2023

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment. If it is closed, feel free to comment when you are able to provide the additional information and we will re-investigate.

jonpryor pushed a commit to dotnet/android that referenced this issue Jan 4, 2023
…info` (#7643)

Fixes: dotnet/maui#10901

Context: https://r8.googlesource.com/r8/+/refs/tags/3.3.75/src/main/java/com/android/tools/r8/BaseCompilerCommandParser.java#246

Building a .NET MAUI project such as:

	dotnet new maui
	dotnet build -c Release -f net6.0-android -p:AndroidLinkMode=r8

Results in build warnings from R8 such as:

	R8 : warning : Missing class androidx.window.extensions.WindowExtensions

In 92bc705, we already had attempted to silence warnings from R8:

	R8 : warning : Resource 'META-INF/MANIFEST.MF' already exists.

At the time, there was no option to hide warnings, but now there is!

	--map-diagnostics[:<type>] <from-level> <to-level>
	    # Map diagnostics of <type> (default any) reported as
	    # <from-level> to <to-level> where <from-level> and
	    # <to-level> are one of 'info', 'warning', or 'error' and the
	    # optional <type> is either the simple or fully qualified
	    # Java type name of a diagnostic. If <type> is unspecified,
	    # all diagnostics at <from-level> will be mapped.
	    # Note that fatal compiler errors cannot be mapped.

We can pass:

	--map-diagnostics warning info

Which can be done in existing apps via:

	<AndroidD8ExtraArguments>--map-diagnostics warning info</AndroidD8ExtraArguments>
	<AndroidR8ExtraArguments>--map-diagnostics warning info</AndroidR8ExtraArguments>

To solve this problem, let's create a new `$(AndroidD8IgnoreWarnings)`
MSBuild property and make use of one we already have
`$(AndroidR8IgnoreWarnings)`:

	<ItemGroup>
	  <_AndroidD8MapDiagnostics Condition=" '$(AndroidD8IgnoreWarnings)' == 'true' " Include="warning" To="info" />
	  <_AndroidR8MapDiagnostics Condition=" '$(AndroidR8IgnoreWarnings)' == 'true' " Include="warning" To="info" />
	</ItemGroup>

We can then use these item groups to pass `--map-diagnostics` as
appropriate.  Developers can turn off either property to disable this
behavior.

We can then remove the weird `Regex` code added in 92bc705.
The existing tests from 92bc705 should also be sufficient for
testing this change.
mattleibow added a commit that referenced this issue Jan 19, 2023
* [net7.0] Update dependencies from xamarin/xamarin-macios (#11220)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221108.30

Microsoft.iOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1463

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221108.30

Microsoft.tvOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1463

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221108.30

Microsoft.macOS.Sdk
 From Version 12.3.2372 -> To Version 13.0.2018

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221108.30

Microsoft.MacCatalyst.Sdk
 From Version 15.4.2372 -> To Version 16.1.1463

* Bump Xcode to 14.1.0

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.4

Microsoft.iOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1465

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.4

Microsoft.tvOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1465

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.4

Microsoft.macOS.Sdk
 From Version 12.3.2372 -> To Version 13.0.2020

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.7

Microsoft.iOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1466

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.7

Microsoft.tvOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1466

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.4

Microsoft.MacCatalyst.Sdk
 From Version 15.4.2372 -> To Version 16.1.1465

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.7

Microsoft.macOS.Sdk
 From Version 12.3.2372 -> To Version 13.0.2021

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.7

Microsoft.MacCatalyst.Sdk
 From Version 15.4.2372 -> To Version 16.1.1466

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.14

Microsoft.iOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1467

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.14

Microsoft.tvOS.Sdk
 From Version 16.0.1478 -> To Version 16.1.1467

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.14

Microsoft.macOS.Sdk
 From Version 12.3.2372 -> To Version 13.0.2022

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221111.14

Microsoft.MacCatalyst.Sdk
 From Version 15.4.2372 -> To Version 16.1.1467

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Alex Soto <[email protected]>

* Bump System.CodeDom from 6.0.0 to 7.0.0 (#11179)

Bumps [System.CodeDom](https://github.com/dotnet/runtime) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/commits)

---
updated-dependencies:
- dependency-name: System.CodeDom
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add 7.0 (GA) to the list (#11294)

* restore unittests for native views binding (#11341)

* Bump Microsoft.WindowsAppSDK from 1.1.5 to 1.2.221109.1 (#11280)

* Bump Microsoft.WindowsAppSDK from 1.1.5 to 1.2.221109.1

Bumps [Microsoft.WindowsAppSDK](https://github.com/microsoft/windowsappsdk) from 1.1.5 to 1.2.221109.1.
- [Release notes](https://github.com/microsoft/windowsappsdk/releases)
- [Commits](https://github.com/microsoft/windowsappsdk/commits)

---
updated-dependencies:
- dependency-name: Microsoft.WindowsAppSDK
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update Directory.Build.targets

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Leibowitz <[email protected]>

* Bump Microsoft.CodeAnalysis.CSharp from 4.2.0 to 4.4.0 (#11365)

Bumps [Microsoft.CodeAnalysis.CSharp](https://github.com/dotnet/roslyn) from 4.2.0 to 4.4.0.
- [Release notes](https://github.com/dotnet/roslyn/releases)
- [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md)
- [Commits](https://github.com/dotnet/roslyn/compare/v4.2.0...Visual-Studio-2019-Version-16.0-Preview-4.4)

---
updated-dependencies:
- dependency-name: Microsoft.CodeAnalysis.CSharp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Xamarin.Build.Download from 0.11.3 to 0.11.4 (#11367)

Bumps [Xamarin.Build.Download](https://github.com/xamarin/XamarinComponents) from 0.11.3 to 0.11.4.
- [Release notes](https://github.com/xamarin/XamarinComponents/releases)
- [Commits](https://github.com/xamarin/XamarinComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.Build.Download
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Microsoft.Net.Compilers.Toolset from 4.3.1 to 4.4.0 (#11366)

Bumps [Microsoft.Net.Compilers.Toolset](https://github.com/dotnet/roslyn) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/dotnet/roslyn/releases)
- [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md)
- [Commits](https://github.com/dotnet/roslyn/commits/Visual-Studio-2019-Version-16.0-Preview-4.4)

---
updated-dependencies:
- dependency-name: Microsoft.Net.Compilers.Toolset
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Set window soft input via window mapper (#11356)

* Set window soft input via window mapper

* - disconnect handlers

* - add additional logging info

* - fix handler typing

* - fix formatting

* Update Microsoft.Windows.SDK.BuildTools (#11396)

* Update Versions.props

* Not needed anymore!

* Revert "Not needed anymore!"

This reverts commit 1e22ff2281d1a9ea1840ff0de55a4d7af4c83fd3.

* Bump Xamarin.UITest from 3.2.9 to 4.0.0 (#11407)

Bumps Xamarin.UITest from 3.2.9 to 4.0.0.

---
updated-dependencies:
- dependency-name: Xamarin.UITest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/xharness build 20221108.1 (#11342)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22531.1 -> To Version 1.0.0-prerelease.22558.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [main] Update dependencies from xamarin/xamarin-macios (#11338)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221114.10

Microsoft.MacCatalyst.Sdk
 From Version 15.4.2372 -> To Version 16.1.1468

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221115.12

Microsoft.iOS.Sdk
 From Version 16.1.1467 -> To Version 16.1.1469

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221115.12

Microsoft.tvOS.Sdk
 From Version 16.1.1467 -> To Version 16.1.1469

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221115.12

Microsoft.macOS.Sdk
 From Version 13.0.2022 -> To Version 13.0.2024

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221115.12

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1467 -> To Version 16.1.1469

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rui Marinho <[email protected]>

* Add NeedsExactMeasure check for Editor on Android (#10876)

* Add NeedsExactMeasure check for Editor on Android
Fixes #8232
Fixes #7627

* Add public API stuff

* Update Essentials Barometer API Docs (#11378)

* Update Essentials Barometer API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials AppActions API Docs (#11373)

* Fix Essentials AppActions API Docs

* Update AppActions.netstandard.tvos.watchos.macos.tizen.cs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Accelerometer API Docs (#11370)

* External file to inline

* Final touches

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Remove unnecessary MeasureOverride from RefreshView; (#11357)

* Remove unnecessary MeasureOverride from RefreshView;
Fixes #5772

* Fix missing api thing

* Don't set editor action to handled (#11386)

* Don't set editor action to handled

* - Add tests

* - remove for tizen

* Update Essentials Battery API Docs (#11380)

* Update Essentials Battery API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials AppInfo API Docs (#11374)

* Update Essentials AppInfo API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Browser API Docs (#11394)

* Update Essentials Browser API Docs

* Apply suggestions from code review

All the URI!

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* [iOS] Fix issue clearing MapElements in Map (#11471) Fixes #11296

* Fix issue clearing MapElements in iOS Map

* Fix XAML formatting

* Update Essentials Contacts API Docs (#11417)

* Update Essentials Contacts API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Connectivity API Docs (#11415)

* Update Essentials Connectivity API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Clipboard Docs (#11395)

* Update Essentials Clipboard Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Fix window page changed event subscriptions (#11483)

* Fix the ordering registration for tests (#11484)

* Fix the ordering registration for tests

* - fix the timing on some tests

* CodeQL only on main/non-public builds (#11273)

* CodeQL only on main/non-public builds

* Update eng/pipelines/common/variables.yml

Co-authored-by: Rui Marinho <[email protected]>

* Update dependencies from https://github.com/dotnet/xharness build 20221119.1 (#11524)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22558.1 -> To Version 1.0.0-prerelease.22569.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Ensure that UIScrollView ContentSize is set (#11175)

* Ensure that UIScrollView ContentSize is set;
Fixes #9209; also fixes #11017.

* Use EnsureHandlerCreated in tests

* Make unbounded arrange method public; move UIScrollView ContentSize test to Controls;
Write new ContentSize test in Core;

* Fix public api stuff

* Fix iOS/macOS Images not cropped inside of a Frame #6580 (#11352)

* Enable Frame to clip children content on ios by default

* use tryget properly

* fix formatting

* Reverting bool check since it is nullable

* use the correct bindable property

* use an extension method to share code for frame

* changing the extension method to internal

Co-authored-by: TJ Lambert <[email protected]>

* [Build] Clean up provisioning script (#11523)

* [Build] Clean up provisioning script

* Fix openjdk only on Mac

* [Housekeeping] Remove calls to Console.WriteLine to decrease app size (#11437) Fixes #11405

* Remove calls to Console.WriteLine to decrease app size

* Update src/Core/src/Handlers/WebView/WebViewHandler.iOS.cs

Co-authored-by: Eilon Lipton <[email protected]>

Co-authored-by: Eilon Lipton <[email protected]>

* Clean up the files in the xml-docs artifacts (#11257)

* Update dotnet.cake

* Update dotnet.cake

* Update dotnet.cake

* Update dotnet.cake

* Add BlazorWebView, enable Graphics docs gen

* Filter DesignTools assembly

* Include BlazorWebView

* Remove BlazorWebView

* [foldable] add TypeConverter to Pane1Length/Pane2Length properties (#11269)

fixes #11240

* [Tizen] Add handing Label.TextType (#11389)

* Add .NET 7 announcement (#11539)

* [Tizen] Add Shell FlyoutBackDrop (#11390)

* Bump Microsoft.WindowsAppSDK from 1.2.221109.1 to 1.2.221116.1 (#11469)

Bumps [Microsoft.WindowsAppSDK](https://github.com/microsoft/windowsappsdk) from 1.2.221109.1 to 1.2.221116.1.
- [Release notes](https://github.com/microsoft/windowsappsdk/releases)
- [Commits](https://github.com/microsoft/windowsappsdk/commits)

---
updated-dependencies:
- dependency-name: Microsoft.WindowsAppSDK
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow transparent modal pages on iOS (#11107) Fixes #8526 Fixes #11040

* Update Essentials DeviceInfo API Docs (#11431)

* Update Essentials DeviceInfo API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials DeviceDisplay API Docs (#11429)

* Update Essentials DeviceDisplay API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Possible fix for issue #10960 (#11361)

* Possible fix for issue #10960

* Update src/Controls/src/Core/Shell/Shell.cs

Co-authored-by: Matthew Leibowitz <[email protected]>

Co-authored-by: Matthew Leibowitz <[email protected]>

* Bump Microsoft.Bcl.AsyncInterfaces from 6.0.0 to 7.0.0 (#11193)

* Bump Microsoft.Bcl.AsyncInterfaces from 6.0.0 to 7.0.0

Bumps [Microsoft.Bcl.AsyncInterfaces](https://github.com/dotnet/runtime) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/commits)

---
updated-dependencies:
- dependency-name: Microsoft.Bcl.AsyncInterfaces
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump System.Text.Json

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rui Marinho <[email protected]>

* Reboot on-prem agent after job completion (#11359)

* Reboot on-prem Mac agent at the end of a test run

* Use agent-rebooter template capable of targeting the xamarin org

* Simplify agent-rebooter condition to only include the agent pool check

* Diagnostics: Show agent agentPool parameter setting

* Powershell block step

* Diagnostics: Single line echo statement

* Test: Simplify output to not include parameter setting

* Pass through the agent pool name rather than the pool object

* Show agent pool at the beginning of the job

* Remove agentPoolName parameter and condition

The agent-rebooter template will only take action when the agent is in an on-prem pool. It will not attempt to reboot an agent in a hosted pool

* Try placing group Xamarin-Secrets after the variables template

* Xamarin-Secrets is already included in the variables template

* Directly use the Xamarin public pool access token keyvault value

* Capture the agent pool access token in a variable

* Move AgentPoolAccessToken definition into device-tests

* Updated rebooter template eliminates need for organization and project parameters

* Temporarily remove all steps except the rebooter

* Restore the original steps

* Focus testing on the rebooter

* Restore all steps

* Comment noting that the rebooter template must always be the last step in the job

* Agent-rebooter capability was released to production and so target in yaml-templates main

* Trim trailing whitespace

* [main] Update dependencies from xamarin/xamarin-macios (#11553)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.6

Microsoft.iOS.Sdk
 From Version 16.1.1469 -> To Version 16.1.1474

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.6

Microsoft.tvOS.Sdk
 From Version 16.1.1469 -> To Version 16.1.1474

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.6

Microsoft.macOS.Sdk
 From Version 13.0.2024 -> To Version 13.0.2029

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.6

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1469 -> To Version 16.1.1474

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Dotnet format Microsoft.Maui.sln (#11110)

* Notify Button ImageSource changes correctly (#11146)

* Fix the issue

* Added Device Tests

* [Android] Fix Stepper IsEnabled property changes (#11053)

* Added sample to validate the issue

* Fix droid Stepper IsEnabled property

* Added Device Test

* [main] Update dependencies from xamarin/xamarin-macios (#11563)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.14

Microsoft.iOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1475

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.14

Microsoft.tvOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1475

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.14

Microsoft.macOS.Sdk
 From Version 13.0.2029 -> To Version 13.0.2030

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.14

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1474 -> To Version 16.1.1475

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.17

Microsoft.tvOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1477

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.17

Microsoft.macOS.Sdk
 From Version 13.0.2029 -> To Version 13.0.2032

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.17

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1474 -> To Version 16.1.1477

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.17

Microsoft.iOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1477

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.16

Microsoft.iOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1476

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.16

Microsoft.tvOS.Sdk
 From Version 16.1.1474 -> To Version 16.1.1476

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.16

Microsoft.macOS.Sdk
 From Version 13.0.2029 -> To Version 13.0.2031

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221122.16

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1474 -> To Version 16.1.1476

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Bump autoformatting action to v0.2. (#11580)

This new and shiny version is able to just autoformat files already modified
in a PR, so enable that mode.

* Fix ObjectDisposedException on Android resizing images (#11577)

* [Android] Fix crash using Page IsBusy property (#9783)

* Fix IsBusy crash on Android

* Added Device Test

* Align Shapes Fill property behavior with Xamarin.Forms (#10328)

* Align Shapes Fill property behavior with Xamarin.Forms

* Added device tests

* Fix brushes in Frame (#7925)

* Fix Managing Layout Children (#11581)

* Avoid propagate Map tap event tapping a Pin on iOS (#11582) Fixes #11532

* Exclude incompatible files from daily dotnet format workflow (#11590)

Some C# files use '#if' to include/exclude code and that does not work well with the dotnet format command.

* Only include MauiXaml/Css when $(UseMaui)=true (#11638)

* Add appropriate versioning attributes (#11589)

* Add a condition to skip the AutoImport.props (#11665)

Adding '$(_MauiSkipSdkAutoImport)' != 'true' so that the imports can be skipped

* Fix MauiIcon ForegroundScale on systems with comma as decimal separator

Fixes #11685

Specifying the ForegroundScale with a dot caused an issue on systems
with commas as decimal separators. The image got upscaled instead of
downscaled on those systems because the ForegroundScale was parsed
without passing InvariantCulture as culture info. Because of this,
it only worked on systems with a dot as a decimal separator.

* [Build] Update yaml for net8 (#11609)

* Make iOS Label HTML behavior compatible with Forms (#11569) Fixes #4230

* Make iOS Label HTML behavior compatible with Forms
Fixes #4230

* Fix usings

* _itemsSource may be null in CarouselViewLoopManager (#11000)

* _itemsSource may be null

I'm seeing a NullReferenceException in this method. There are no guards against `_itemsSource` being null, so dereferencing it to get its `Count` seems likely to be the problem.

* fix dropped semicolon

Co-authored-by: redth <[email protected]>

* [create-pull-request] automated change (#11671)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fix issue loading local files in iOS WebView (#10804)

* [iOS] RadioButton a11y (#10832)

* First attempt of radiobutton a11y

* Make Switch trait work as expected

* Update control gallery sample

* Make class internal for potential backport

* Update based on feedback

* Add comment

* Update based on feedback

* [main] Update dependencies from xamarin/xamarin-macios (#11696)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221128.2

Microsoft.iOS.Sdk
 From Version 16.1.1476 -> To Version 16.1.1478

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221128.2

Microsoft.tvOS.Sdk
 From Version 16.1.1476 -> To Version 16.1.1478

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221128.2

Microsoft.macOS.Sdk
 From Version 13.0.2031 -> To Version 13.0.2033

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221128.2

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1476 -> To Version 16.1.1478

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Using local function to fix multi-thread issues (#11497) Fixes #11321

* [create-pull-request] automated change (#11713)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [main] Update dependencies from xamarin/xamarin-macios (#11734)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.20

Microsoft.iOS.Sdk
 From Version 16.1.1478 -> To Version 16.1.1479

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.20

Microsoft.tvOS.Sdk
 From Version 16.1.1478 -> To Version 16.1.1479

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.20

Microsoft.macOS.Sdk
 From Version 13.0.2033 -> To Version 13.0.2034

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.20

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1478 -> To Version 16.1.1479

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.22

Microsoft.iOS.Sdk
 From Version 16.1.1478 -> To Version 16.1.1480

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.22

Microsoft.tvOS.Sdk
 From Version 16.1.1478 -> To Version 16.1.1480

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.22

Microsoft.macOS.Sdk
 From Version 13.0.2033 -> To Version 13.0.2035

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221129.22

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1478 -> To Version 16.1.1480

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [WinUI] Fix RefreshView crash if no content is specified (#11735)

* Ensure invisible views don't get rows/columns when generating AndExpand layouts (#11712)

* Ensure invisible views don't get rows/columns when generating AndExpand layouts
Fixes #11678

* Auto-format source code

* Add test for things becoming visible again

Co-authored-by: GitHub Actions Autoformatter <[email protected]>

* Fix Element.ChildRemoved event sender (#11741) Fixes #11720

* Pass correct event source

* Update ElementTests.cs

* Update ElementTests.cs

* [main] Fix up the Shipped/Unshipped APIs

* Mark the API changes as unshipped

* Correctly disable MenuBarItems on Windows (#11695)

* Notify StrokeDashPattern changes with StrokeDashArray changes (#11694)

* Invalidate Button background drawable if size changes (#11604)

* Add API changes doc (#11768)

* Add API changes doc

* spelling

* more words

* try this now

* =

* sadf

* Update docs/design/APIChangeTracking.md

Co-authored-by: MartyIX <[email protected]>

* Update docs/design/APIChangeTracking.md

Co-authored-by: Eilon Lipton <[email protected]>

* Update docs/design/APIChangeTracking.md

Co-authored-by: Eilon Lipton <[email protected]>

* Update docs/design/APIChangeTracking.md

Co-authored-by: Eilon Lipton <[email protected]>

* Update APIChangeTracking.md

Co-authored-by: MartyIX <[email protected]>
Co-authored-by: Eilon Lipton <[email protected]>

* [build] Add support for Visual Studio on win-arm64 (#11803)

Context: https://github.com/dotnet/maui/issues/11090
Context: https://github.com/xamarin/yaml-templates/pull/204
Context: https://github.com/xamarin/xamarin-android/pull/7471
Context: https://github.com/xamarin/xamarin-macios/pull/16935

Updates the VSMAN files generated for our .NET workload to support
Visual Studio on windows-arm64.

* Update templates to have separate default for framework selection (#11034)

* Update ide.host.json

* Update ide.host.json

* Update ide.host.json

* ws

Co-authored-by: Matthew Leibowitz <[email protected]>

* Add maestro-changelog workflow action (#11757)

* Bump Xamarin.UITest from 4.0.0 to 4.0.1 (#11826)

Bumps Xamarin.UITest from 4.0.0 to 4.0.1.

---
updated-dependencies:
- dependency-name: Xamarin.UITest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Reconcile PointerOver, Pressed, and Focused states  (#11840)

* Potential fix for #9753 on desktop

* Fix test for release disabled button

* Fix test for release disabled button

* Add more tests; fix issues with "stuck" PointerOver states

* Clean up extraneous debug stuff

* D'oh

* Add empty PointerOver states to Buttons to reduce confusion (#11842)

We've had multiple users run into issues with the Pressed VisualState on Buttons (see #9715 and #8309) - they set up a Pressed state, and then are confused when the state remains after releasing the Button. This is happening* because the Button is moving into the PointerOver state, which does not exist in their VisualState lists. Since the target state is not found, the Pressed state remains in effect until the user leaves the PointerOver state. 

This is similar to the behavior of a Pressed state with no PointerOver state defined in UWP/WinUI. The solution is to define a PointerOver state. To reduce confusion, we should just add a PointerOver state to our default templates.

* At the time these bugs were originally opened, the problem was likely the Focused state, because PointerOver didn't exist yet. But in the most recent release, PointerOver replaces Focused as the source of the problem; the Focused issue is dealt with by #11840.

* Remove Android LaunchAdjacent flag for Essentials (#11783)

* [create-pull-request] automated change (#11775)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [main] Update dependencies from xamarin/xamarin-macios (#11765)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221130.1

Microsoft.iOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1481

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221130.1

Microsoft.tvOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1481

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221130.1

Microsoft.macOS.Sdk
 From Version 13.0.2035 -> To Version 13.0.2036

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221130.1

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1480 -> To Version 16.1.1481

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221201.7

Microsoft.iOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1483

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221201.7

Microsoft.tvOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1483

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221201.7

Microsoft.macOS.Sdk
 From Version 13.0.2035 -> To Version 13.0.2038

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221201.7

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1480 -> To Version 16.1.1483

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.4

Microsoft.iOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1485

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.2

Microsoft.iOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1484

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.4

Microsoft.tvOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1485

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.2

Microsoft.tvOS.Sdk
 From Version 16.1.1480 -> To Version 16.1.1484

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.4

Microsoft.macOS.Sdk
 From Version 13.0.2035 -> To Version 13.0.2040

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.2

Microsoft.macOS.Sdk
 From Version 13.0.2035 -> To Version 13.0.2039

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.4

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1480 -> To Version 16.1.1485

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221202.2

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1480 -> To Version 16.1.1484

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [Build] Remove unused variable (#11727)

* Remove unused variable

* Auto-format source code

* Cleanup provisioning

* Use variable for skipping provisioning

* Try other approach

Co-authored-by: GitHub Actions Autoformatter <[email protected]>

* [build] Fix changelog workflow (#11895)

* [create-pull-request] automated change (#11888)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [main] Update dependencies from xamarin/xamarin-macios (#11892)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.4

Microsoft.iOS.Sdk
 From Version 16.1.1484 -> To Version 16.1.1487

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.4

Microsoft.tvOS.Sdk
 From Version 16.1.1484 -> To Version 16.1.1487

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.4

Microsoft.macOS.Sdk
 From Version 13.0.2039 -> To Version 13.0.2042

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.4

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1484 -> To Version 16.1.1487

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Bump Microsoft.Web.WebView2 from 1.0.1418.22 to 1.0.1462.37 (#11898)

Bumps Microsoft.Web.WebView2 from 1.0.1418.22 to 1.0.1462.37.

---
updated-dependencies:
- dependency-name: Microsoft.Web.WebView2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Only add PointerGesture if PointerOver VisualState exists (#11591)

* Don't add PGR if user hasn't added PointerOver

* - apply PR comments

* Update src/Controls/src/Core/VisualStateManager.cs

Co-authored-by: Rachel Kang <[email protected]>

* Update VisualStateManager.cs

* Update src/Controls/tests/Core.UnitTests/PointerGestureRecognizerTests.cs

Co-authored-by: Rachel Kang <[email protected]>

* Update src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs

Co-authored-by: Rachel Kang <[email protected]>

* Update src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs

Co-authored-by: Rachel Kang <[email protected]>

* Update src/TestUtils/src/DeviceTests/AssertionExtensions.iOS.cs

Co-authored-by: Rachel Kang <[email protected]>

* Update AccessibilityTests.cs

* Update VisualStateManager.cs

* - setup accessibility expectations

* - cleanup code

* - cleanup

* - fix up tests

* - fix tests

* Update AccessibilityTests.cs

* - workaround remapping issue

* - fix location of mappers

* - fix Public API

* Update PublicAPI.Unshipped.txt

Co-authored-by: Rachel Kang <[email protected]>

* [Android] Fix crash disconnecting the IndicatorView (#11346)

* Fix crash disconnecting the IndicatorView on Android

* Added IndicatorViewStub

Co-authored-by: Rui Marinho <[email protected]>

* Remove non platform TFM and sync up SupportedOSPlatformVersion (#11910)

* Fix UpdateSemantics for UIStepper and UIPagerControl (#11937)

* Make OnShouldReceiveMapTouch static (#11974)

* Bump Microsoft.CodeAnalysis.NetAnalyzers (#11958)

Bumps [Microsoft.CodeAnalysis.NetAnalyzers](https://github.com/dotnet/roslyn-analyzers) from 7.0.0-preview1.22559.1 to 7.0.0.
- [Release notes](https://github.com/dotnet/roslyn-analyzers/releases)
- [Changelog](https://github.com/dotnet/roslyn-analyzers/blob/main/PostReleaseActivities.md)
- [Commits](https://github.com/dotnet/roslyn-analyzers/commits/7.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.CodeAnalysis.NetAnalyzers
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update Essentials MainThread API Docs (#11934)

* Update Essentials MainThread API Docs

* Update MainThread.netstandard.cs

* Update src/Essentials/src/MainThread/MainThread.shared.cs

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Flashlight API Docs (#11920)

* Prepare MAUI to support building with NuGets (#11946)

* Prepare MAUI to support building with NuGets

* Exclude resizetizer when UseMauiNuGets=True

* Bump Xamarin.Firebase.AppIndexing from 120.0.0.9 to 120.0.0.10 (#11929)

Bumps [Xamarin.Firebase.AppIndexing](https://github.com/xamarin/GooglePlayServicesComponents) from 120.0.0.9 to 120.0.0.10.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.Firebase.AppIndexing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix crash typing in Shell SearchHandler on iOS (#11927)

* Fix crash using BackButtonBehavior and navigating to root (#11438) Fixes #11401 Fixes #10514

* Fix crash using BackButtonBehavior and navigating to root

* Added Device Test

* - add unit test and fixup ShellToolbar to unhook from previous command

* - remove extra call to OnBackButtonCommandPropertyChanged

* - remove excess code from ShellToolbar

Co-authored-by: Shane Neuville <[email protected]>

* [create-pull-request] automated change (#11949)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Vibrate - Detect zero duration and return early (#11314)

* Detect zero duration and return early

* Check for < 0 condition as well

Co-authored-by: Jonathan Dick <[email protected]>

* Fix SwipeItemView size issues on Android (#10522) Fixes #10065 Fixes #6018

* Update Development.md (#12005)

* Update Development.md

* Update DEVELOPMENT.md

* Update .github/DEVELOPMENT.md

Co-authored-by: Eilon Lipton <[email protected]>

* Update DEVELOPMENT.md

Co-authored-by: Eilon Lipton <[email protected]>

* Update Essentials Launcher API Docs (#11932)

* Update Essentials Launcher API Docs

* Apply suggestions from code review

* Update Launcher.netstandard.watchos.cs

* [main] Update dependencies from xamarin/xamarin-macios (#11904)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.25

Microsoft.iOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1488

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.25

Microsoft.tvOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1488

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.25

Microsoft.macOS.Sdk
 From Version 13.0.2042 -> To Version 13.0.2043

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221206.25

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1487 -> To Version 16.1.1488

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.11

Microsoft.iOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1490

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.11

Microsoft.tvOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1490

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.11

Microsoft.macOS.Sdk
 From Version 13.0.2042 -> To Version 13.0.2045

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.11

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1487 -> To Version 16.1.1490

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.3

Microsoft.iOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1489

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.3

Microsoft.tvOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1489

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.3

Microsoft.macOS.Sdk
 From Version 13.0.2042 -> To Version 13.0.2044

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.3

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1487 -> To Version 16.1.1489

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.15

Microsoft.iOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1491

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.15

Microsoft.tvOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1491

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.15

Microsoft.macOS.Sdk
 From Version 13.0.2042 -> To Version 13.0.2046

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221207.15

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1487 -> To Version 16.1.1491

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221212.3

Microsoft.iOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1492

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221212.3

Microsoft.tvOS.Sdk
 From Version 16.1.1487 -> To Version 16.1.1492

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221212.3

Microsoft.macOS.Sdk
 From Version 13.0.2042 -> To Version 13.0.2047

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221212.3

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1487 -> To Version 16.1.1492

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [Tizen] Add requesting re-layout step (#11986)

* Use a faster search when checking for item in SortedList (#12041)

* Add missing await call for color match test (#11016)

* Add missing await call for color match test

* - remove duplicated ValidateHasColor code

* - fix type

* - remove async suffix

* - clean up extension methods

* - add alpha channel to tests

* - move BoxView tests to controls from core

* - skip tests

* - skip some more android tests

* - tizen

* - skip skip skip

* Update Essentials FileSystem API Docs (#11919)

* Update Essentials FileSystem API Docs

* Update src/Essentials/src/FileSystem/FileSystemUtils.shared.cs

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Geolocation API Docs (#11924)

* Update Essentials Geolocation API Docs

* Apply suggestions from code review

Co-authored-by: MartyIX <[email protected]>

* Right some lefts

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: MartyIX <[email protected]>
Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Email API Docs (#11868)

* Update Essentials Email API Docs

* Update Email.netstandard.tvos.watchos.cs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

* Update Email.shared.cs

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials MagnetoMeter API Docs (#11933)

* [Tizen] Add missing Shell features in Tizen (#11597)

* [Tizen] Update bottom tabs of Shell

* [Tizen] Update bottom tabs of Shell

* Apply review feedback

* Update ShellSectionItemView based on PR feedback

* [Tizen] Add Shell.SearchHandler

* Update Flyout to apply ItemTemplate and MenuItemTemplate

* Update Tabbar to apply Shell.BackgroundColor

* Update based on review feedback

* Update Tab appearance

* Update Tabbar with review feedback

* Update based on review feedback

* Remove unnecessary code

* [create-pull-request] automated change

* Bump Microsoft.AspNetCore.Authorization from 7.0.0 to 7.0.1

Bumps [Microsoft.AspNetCore.Authorization](https://github.com/dotnet/aspnetcore) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Authorization
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump more AspNetCore packages

* Set windows placeholder vertical text alignment (#12059)

* Set windows entry and editor placeholder vertical text alignment
  Fixes #7844
  Fixes #8770
* Added and updated tests

* Bump System.Text.Json from 7.0.0 to 7.0.1

Bumps [System.Text.Json](https://github.com/dotnet/runtime) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Set bottom margin back to zero when removing Bottom Tabs (#12076)

* Set bottom margin back to zero

* - run for android only

* Improve design type converters (#12062)

* Update Essentials HapticFeedback API Docs (#11930)

* Update Essentials HapticFeedback API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials FilePicker API Docs (#11870)

* Update Essentials FilePicker API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Geocoding Docs (#11921)

* Update Essentials Geocoding Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Bump Microsoft.WindowsAppSDK from 1.2.221116.1 to 1.2.221209.1

Bumps [Microsoft.WindowsAppSDK](https://github.com/microsoft/windowsappsdk) from 1.2.221116.1 to 1.2.221209.1.
- [Release notes](https://github.com/microsoft/windowsappsdk/releases)
- [Commits](https://github.com/microsoft/windowsappsdk/commits)

---
updated-dependencies:
- dependency-name: Microsoft.WindowsAppSDK
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Use the UpdateHasContainer method everywhere (#12119)

NO functional change, just using the correct method instead of copying the code around.

* Update Essentials Gyroscope API Docs (#11925)

* Update Essentials Gyroscope API Docs

* Right some lefts

* Update src/Essentials/src/Gyroscope/Gyroscope.shared.cs

* Update src/Essentials/src/Gyroscope/Gyroscope.shared.cs

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: Rui Marinho <[email protected]>
Co-authored-by: E.Z. Hart <[email protected]>

* Improve BlazorWebView Docs (#12135)

* Improve BlazorWebView Docs

* Update BlazorWebViewHandler.cs

* Update BlazorWebView.cs

* Fix crash using DataTemplateSelector on iOS

* Bump Microsoft.NET.Test.Sdk from 17.4.0 to 17.4.1

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.4.0 to 17.4.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.4.0...v17.4.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Only set PublishReadyToRun for apps and not libs (#12114)

* Added StartPath to get/set initial BlazorWebView URL (#11942)

* Added StartPath - gets or sets the path for initial navigation when the application starts

* Changed summary for StartPath

* small fix

* Changed the summary for StartPath

* changed the summary of StartPath for WinForms and Wpf

* remove public from StartPath in IBlazorWebView

* [WinUI] Fix the size returned when measuring Frame (#11779)

* [WinUI] Fix measuring issue on Frame

* - add additional samples

* Update FrameTests.cs

* Update FrameTests.cs

* - fix code waiting for platformview to finish measuring

* [Android] Fix Frame to call missing mapper methods

* Add BlazorWebView binaries to xmldocs artifacts (#12215)

* [xamlc] remove `LoadInSeparateAppDomain` and `static` state (#11982)

Fixes: https://github.com/dotnet/maui/issues/11885

Looking at the JITStats report in PerfView (for MSBuild.exe):

| Name                                    | JitTime (ms) |
| ---                                     |          --: |
| Microsoft.Maui.Controls.Build.Tasks.dll |        214.0 |
| Mono.Cecil                              |        119.0 |

It appears that `Microsoft.Maui.Controls.Build.Tasks.dll` spends a lot
of time in the JIT. What is confusing, is this was an incremental
build where everything should already be loaded. The JIT's work should
be done already? I don't see the same behavior for Android MSBuild
tasks or Windows App SDK tasks.

The cause appears to be usage of `[LoadInSeparateAppDomain]` in .NET MAUI.

However, we can't just *remove this* as there would be complications...

`[LoadInSeparateAppDomain]` also conveniently resets all `static`
state when `<XamlCTask/>` runs again. Meaning that future incremental
builds would potentially use old (garbage) values. There are several
places that cache Mono.Cecil objects for performance reasons. Really
weird bugs would result if we didn't address this.

To make things correct *and* remove `[LoadInSeparateAppDomain]`:

* Move all `static` state to a `XamlCache` class as instance values.

* Each `ILContext` has an instance of `XamlCache`.

* Any child `ILContext`'s such as with `DataTemplate` are passed the
  parent's `XamlCache`.

* Various `static` extension methods now require a `XamlCache` to be
  passed in. This allows unit tests to do this as well.

* Other `*Visitor` or `*Converter` types have an instance of
  `ILContext`, so they can access `ILContext.Cache` as needed.

Unfortunately, I had to make small changes to lots of lines for this.

Testing these changes inside Visual Studio with a `dotnet new maui`
project template:

    Before:
    XamlCTask = 743 ms
    XamlCTask = 706 ms
    XamlCTask = 692 ms
    After:
    XamlCTask = 128 ms
    XamlCTask = 134 ms
    XamlCTask = 117 ms

This saves about ~587ms on incremental builds on all platforms, an 82%
improvement. This will help even more on large solutions with multiple
.NET MAUI projects, where `<XamlCTask/>` runs multiple times.

* Allow CommunityToolkit to avoid reflection to access the CollectionView controller

* Update Essentials OrientationSensor API Docs (#12247)

* Update Essentials MediaPicker API Docs (#12245)

* Update Essentials Permissions API Docs (#12252)

* Update image source after recycling bitmap in custom target (#12310)

Fixes #11519

* Initial Commit for third party notice file

* - gradle

* Update ThirdPartyNotices.txt

* - fix naming location

* - add license and TPN file

* [android] remove Xamarin.AndroidX.Legacy.Support.V4 (#12232)

In reviewing:

https://github.com/dotnet/maui/issues/10901#issuecomment-1354975448

I found `Xamarin.AndroidX.Legacy.Support.V4` triggers the warning:

    R8 : warning : Missing class androidx.window.extensions.WindowExtensions

`AndroidX.Legacy.Support.V4` is a package for supporting *really* old
Android API levels like 7, 11, etc.

Details here: https://stackoverflow.com/a/59484158

The Android workload in .NET 6/7 only supports API 21+. That made me
think, why is .NET MAUI using `AndroidX.Legacy.Support.V4` at all?
Turns out, it's not!

I tried directly removing the package, and got:

    src\Core\src\Platform\Android\MauiSwipeRefreshLayout.cs(10,16): error CS0234: The type or namespace name 'SwipeRefreshLayout' does not exist in
the namespace 'AndroidX' (are you missing an assembly reference?)

It looks like this is just a dependency of
`Xamarin.AndroidX.Legacy.Support.V4`. Instead we can just use this
package directly instead:

    <PackageReference Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.10" />

The end result, is we just removed Android packages that are not used
at all. We still use the same library for `SwipeRefreshLayout`.

~~ Results ~~

Android app sizes improved from this change:

    > apkdiff -f com.companyname.maui_before-Signed.apk com.companyname.maui_after-Signed.apk
    Size difference in bytes ([*1] apk1 only, [*2] apk2 only):
    +   1,598,040 classes.dex
    -           6 META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version *1
    -           6 META-INF/androidx.legacy_legacy-support-core-ui.version *1
    -           6 META-INF/androidx.legacy_legacy-support-v4.version *1
    -           6 META-INF/androidx.media_media.version *1
    -         455 assemblies/assemblies.blob
    -         564 res/layout/notification_media_action.xml *1
    -         744 res/layout/notification_media_cancel_action.xml *1
    -       1,292 res/layout/notification_template_media.xml *1
    -       1,584 META-INF/BNDLTOOL.SF
    -       1,584 META-INF/MANIFEST.MF
    -       1,696 res/layout/notification_template_big_media.xml *1
    -       1,824 res/layout/notification_template_big_media_narrow.xml *1
    -       2,456 resources.arsc
    -       2,756 res/layout/notification_template_media_custom.xml *1
    -       2,872 res/layout/notification_template_lines_media.xml *1
    -       3,044 res/layout/notification_template_big_media_custom.xml *1
    -       3,216 res/layout/notification_template_big_media_narrow_custom.xml *1
    -   2,030,636 classes2.dex
    Summary:
    -      24,111 Other entries -0.35% (of 6,880,759)
    -     432,596 Dalvik executables -3.46% (of 12,515,440)
    +           0 Shared libraries 0.00% (of 12,235,904)
    -     169,179 Package size difference -1.12% (of 15,123,185)

Most notably, `*.dex` executables are ~432kb smaller. So small, in
fact, that the project template no longer needs multi-dex anymore!

* Remove unnecessary Frame set; (#12326)

Fixes #11704

* Update Essentials Preferences API Docs (#12265)

* Update Essentials Preferences API Docs

* Update Preferences.shared.cs

* Update Preferences.shared.cs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Screenshot API Docs (#12269)

* Update Essentials Screenshot API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* [create-pull-request] automated change

* Update MauiSwipeView.cs

* [main] Update dependencies from xamarin/xamarin-macios (#12151)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221215.16

Microsoft.iOS.Sdk
 From Version 16.1.1492 -> To Version 16.2.1003

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221215.16

Microsoft.tvOS.Sdk
 From Version 16.1.1492 -> To Version 16.1.1500

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221215.16

Microsoft.macOS.Sdk
 From Version 13.0.2047 -> To Version 13.1.1003

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221215.16

Microsoft.MacCatalyst.Sdk
 From Version 16.1.1492 -> To Version 16.2.1003

* Bump to xcode 14.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rui Marinho <[email protected]>

* Update Essentials SecureStorage API Docs (#12360)

* Don't watch for changes on an ImmutableBrush (#12346)

* Don't watch for changes on an ImmutableBrush

* - add check to shape

* Add Graphics DeviceTests

* use correct path

* And this one

* Bump xunit from 2.4.1 to 2.4.2 (#9214)

* Bump xunit from 2.4.1 to 2.4.2

Bumps [xunit](https://github.com/xunit/xunit) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/xunit/xunit/releases)
- [Commits](https://github.com/xunit/xunit/compare/2.4.1...2.4.2)

---
updated-dependencies:
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

* Fix some ambiguity on xunit

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rui Marinho <[email protected]>
Co-authored-by: GitHub Actions Autoformatter <[email protected]>

* Use the correct property when asking the UICollectionViewLayout to update
Also, avoid caching incorrect sizes (and asking for extra updates)
Fixes #3643

* Ensure image creation on any thread (#12418)

* Ensure image creation on any thread
- Add extra view capture code to fix test code
- Fixes #12370

* Address Android SearchBar keyboard issue relating to TextTransform (#11981)

* Minimal fix for when TextTransform isn't set

* Only set query if it's new (pair-program with EZ)

* Gebertae Android splash images in splash task

* Consolidate the output filename generation

* Generate the iOS splash in the splash target

* The storyboard was not supposed to be included

* Give fallback width/height for Shapes prior to layout (#12356)

* Give fallback width/height for un-laid-out Shapes

* Add device test

* Update HandlerTestBase.cs

* [tests] Don't run RoundedRectangleBorderLayoutIsCorrect test on Tizen

* [tests] try fix again tizen test

* Make this solution more friendly to folks who've subclassed shapes

* Store fallback values per shape and update them from viewBounds so Aspect.None will still work

Co-authored-by: Shane Neuville <[email protected]>
Co-authored-by: Rui Marinho <[email protected]>

* Use an older version of Json to match VS (#12471)

* Remove old versions from bug template (#12412)

Removed old 6.0 versions and 7.0 previews. Added new 8.0 item so we don't have to rush when the first 8.0 previews are out.

* Touch does not create folders?

* [create-pull-request] automated change (#12486)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Bump Castle.Core from 5.1.0 to 5.1.1 (#12466)

Bumps [Castle.Core](https://github.com/castleproject/Core) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/castleproject/Core/releases)
- [Changelog](https://github.com/castleproject/Core/blob/master/CHANGELOG.md)
- [Commits](https://github.com/castleproject/Core/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: Castle.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed a type on the Display Info Width documentation (#12517)

Co-authored-by: Victor H Garcia <[email protected]>

* [main] Update dependencies from xamarin/xamarin-macios (#12419)

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221219.2

Microsoft.iOS.Sdk
 From Version 16.2.1003 -> To Version 16.2.1004

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221219.2

Microsoft.tvOS.Sdk
 From Version 16.1.1500 -> To Version 16.1.1501

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221219.2

Microsoft.macOS.Sdk
 From Version 13.1.1003 -> To Version 13.1.1004

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20221219.2

Microsoft.MacCatalyst.Sdk
 From Version 16.2.1003 -> To Version 16.2.1004

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update ItemsViewController.cs (#12518)

* Disable WinUI optional extras by default (#12530)

Works around https://github.com/microsoft/WindowsAppSDK/issues/3316
Avoids https://github.com/dotnet/maui/issues/12080

* Update Essentials Map API Docs (#11936)

* Update Essentials Map API Docs

* Update Map.netstandard.tvos.cs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Update Essentials Compass API Docs (#11414)

* Update Essentials Compass API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>
Co-authored-by: Jonathan Dick <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>
Co-authored-by: Jonathan Dick <[email protected]>

* Update Essentials PhoneDialer API Docs (#12253)

* Update Essentials PhoneDialer API Docs

* Apply suggestions from code review

Co-authored-by: E.Z. Hart <[email protected]>

Co-authored-by: E.Z. Hart <[email protected]>

* Notify CheckBox Foreground update after Color changed (alternative) (#12102)

* Notify CheckBox Foreground update after Color changed (alternative)

* Added Device tests

* Update Essentials Vibration API Docs (#12529)

* Moves the external comments to inline for the Essentials Vibration docs

* Update Vibration.shared.cs

Co-authored-by: Gerald Versluis <[email protected]>

* Revert "Disable WinUI optional extras by default (#12530)" (#12559)

This reverts commit 0167cd918da0c73ec6e09ce50617aa4c69938d12.

* Fix MenuFlyoutSubItemHandler (#12562)

* Fix WinUI Slider edge case (#12514) Fixes #12405

* [create-pull-request] automated change (#12561)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Process ContainerView through mapper and fix NeedsContainer logic (#12260)

* Modify generics on replaced mappers inside `Controls` to cover more types.  (#11907)

* Fix generics on replaced mappers

* - fixup tests to use local mappers

* - fix configurebuilder caller

* - fix handlers

* - set stepper back

* - undo

* Update Layout.Tizen.cs

* Update Essentials VersionTracking API Docs (#12528)

* Moves the external comments to inline for Essentials Version Tracking

* Added the missing returns from the docs

* Minor improvements for the returns information

Co-authored-by: Victor H Garcia <[email protected]>

* Fix secondary tap on Android (#10619)

Co-authored-by: Rachel Kang <[email protected]>

* Fix missing stub interface (#12586)

* Add more logging for BlazorWebView (#12357)

Fixes #9792

* Fix shapes and maps types collisions on XAML (#12568) Fixes #12364

* [create-pull-request] automated change (#12588)

…
rmarinho pushed a commit that referenced this issue Jan 27, 2023
In reviewing:

#10901 (comment)

I found `Xamarin.AndroidX.Legacy.Support.V4` triggers the warning:

    R8 : warning : Missing class androidx.window.extensions.WindowExtensions

`AndroidX.Legacy.Support.V4` is a package for supporting *really* old
Android API levels like 7, 11, etc.

Details here: https://stackoverflow.com/a/59484158

The Android workload in .NET 6/7 only supports API 21+. That made me
think, why is .NET MAUI using `AndroidX.Legacy.Support.V4` at all?
Turns out, it's not!

I tried directly removing the package, and got:

    src\Core\src\Platform\Android\MauiSwipeRefreshLayout.cs(10,16): error CS0234: The type or namespace name 'SwipeRefreshLayout' does not exist in
the namespace 'AndroidX' (are you missing an assembly reference?)

It looks like this is just a dependency of
`Xamarin.AndroidX.Legacy.Support.V4`. Instead we can just use this
package directly instead:

    <PackageReference Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.10" />

The end result, is we just removed Android packages that are not used
at all. We still use the same library for `SwipeRefreshLayout`.

~~ Results ~~

Android app sizes improved from this change:

    > apkdiff -f com.companyname.maui_before-Signed.apk com.companyname.maui_after-Signed.apk
    Size difference in bytes ([*1] apk1 only, [*2] apk2 only):
    +   1,598,040 classes.dex
    -           6 META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version *1
    -           6 META-INF/androidx.legacy_legacy-support-core-ui.version *1
    -           6 META-INF/androidx.legacy_legacy-support-v4.version *1
    -           6 META-INF/androidx.media_media.version *1
    -         455 assemblies/assemblies.blob
    -         564 res/layout/notification_media_action.xml *1
    -         744 res/layout/notification_media_cancel_action.xml *1
    -       1,292 res/layout/notification_template_media.xml *1
    -       1,584 META-INF/BNDLTOOL.SF
    -       1,584 META-INF/MANIFEST.MF
    -       1,696 res/layout/notification_template_big_media.xml *1
    -       1,824 res/layout/notification_template_big_media_narrow.xml *1
    -       2,456 resources.arsc
    -       2,756 res/layout/notification_template_media_custom.xml *1
    -       2,872 res/layout/notification_template_lines_media.xml *1
    -       3,044 res/layout/notification_template_big_media_custom.xml *1
    -       3,216 res/layout/notification_template_big_media_narrow_custom.xml *1
    -   2,030,636 classes2.dex
    Summary:
    -      24,111 Other entries -0.35% (of 6,880,759)
    -     432,596 Dalvik executables -3.46% (of 12,515,440)
    +           0 Shared libraries 0.00% (of 12,235,904)
    -     169,179 Package size difference -1.12% (of 15,123,185)

Most notably, `*.dex` executables are ~432kb smaller. So small, in
fact, that the project template no longer needs multi-dex anymore!
@ghost ghost locked as resolved and limited conversation to collaborators Feb 3, 2023
@samhouts samhouts removed this from the Backlog milestone May 24, 2023
@samhouts samhouts added this to the .NET 8 milestone May 24, 2023
@ghost ghost removed the s/no-recent-activity Issue has had no recent activity label May 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) platform/android 🤖 s/needs-info Issue needs more info from the author t/bug Something isn't working
Projects
None yet
5 participants