Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Configuration.props
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
<AndroidLatestStableApiLevel2 Condition="'$(AndroidLatestStableApiLevel2)' == ''">38.1</AndroidLatestStableApiLevel2>
-->
<!-- *Latest* *unstable* API level binding that we support; this can be the same as *stable* -->
<AndroidLatestUnstableApiLevel Condition="'$(AndroidLatestUnstableApiLevel)' == ''">$(AndroidLatestStableApiLevel)</AndroidLatestUnstableApiLevel>
<AndroidLatestUnstablePlatformId Condition="'$(AndroidLatestUnstablePlatformId)' == ''">$(AndroidLatestStablePlatformId)</AndroidLatestUnstablePlatformId>
<AndroidLatestUnstableFrameworkVersion Condition="'$(AndroidLatestUnstableFrameworkVersion)'==''">$(AndroidLatestStableFrameworkVersion)</AndroidLatestUnstableFrameworkVersion>
<AndroidLatestUnstableApiLevel Condition="'$(AndroidLatestUnstableApiLevel)' == ''">37.1</AndroidLatestUnstableApiLevel>
<AndroidLatestUnstablePlatformId Condition="'$(AndroidLatestUnstablePlatformId)' == ''">37.1</AndroidLatestUnstablePlatformId>
<AndroidLatestUnstableFrameworkVersion Condition="'$(AndroidLatestUnstableFrameworkVersion)'==''">v17.1</AndroidLatestUnstableFrameworkVersion>
<!-- The default API level used for $(TargetPlatformVersion) -->
<AndroidDefaultTargetDotnetApiLevel Condition=" '$(AndroidDefaultTargetDotnetApiLevel)' == '' ">$(AndroidLatestStableApiLevel)</AndroidDefaultTargetDotnetApiLevel>
<!-- The API level and TargetFrameworkVersion for the default Mono.Android.dll build -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public sealed class CheckApiCompatibility : Task
{ "v16.0", "v15.0" },
{ "v16.1", "v16.0" },
{ "v17.0", "v16.1" },
{ "v17.1", "v17.0" },
};

static readonly string assemblyToValidate = "Mono.Android.dll";
Expand Down
3 changes: 2 additions & 1 deletion build-tools/api-merge/merge-configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@
<File Path="api-36.xml.in" Level="36" />
<File Path="api-36.1.xml.in" Level="36.1" />
<File Path="api-37.0.xml.in" Level="37" />
<File Path="api-37.1.xml.in" Level="37.1" />
</Inputs>
<Outputs>
<File Path="api-37.0.xml" LastLevel="37" />
<File Path="api-37.1.xml" LastLevel="37.1" />
</Outputs>
</Configuration>
2 changes: 1 addition & 1 deletion build-tools/automation/yaml-templates/variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ variables:
- name: IsRelOrTargetingRel
value: $[or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['System.PullRequest.TargetBranch'], 'release/'))]
- name: DefaultTestSdkPlatforms # Comma-separated SDK Platform(s) to install on test agents (no spaces)
value: 35,36,36.1,37.0
value: 35,36,36.1,37.0,37.1
- name: DefaultJavaSdkMajorVersion
value: 17
- name: LatestJavaSdkMajorVersion
Expand Down
5 changes: 3 additions & 2 deletions build-tools/scripts/DotNet.targets
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@

<!-- Build Mono.Android.dll for additional API levels if necessary -->
<Target Name="BuildExtraApiLevels">
<!-- Project references are already built by BuildDotNet and may be loaded by MSBuild from the extracted workload. -->
<MSBuild
Condition=" '$(AndroidDefaultTargetDotnetApiLevel)' != '$(AndroidLatestStableApiLevel)' "
Projects="$(_Root)src\Mono.Android\Mono.Android.csproj"
Properties="AndroidApiLevel=$(AndroidDefaultTargetDotnetApiLevel);AndroidPlatformId=$(AndroidDefaultTargetDotnetApiLevel)"
Properties="AndroidApiLevel=$(AndroidDefaultTargetDotnetApiLevel);AndroidPlatformId=$(AndroidDefaultTargetDotnetApiLevel);BuildProjectReferences=false"
/>
<MSBuild
Condition=" '$(AndroidLatestUnstableApiLevel)' != '$(AndroidLatestStableApiLevel)' "
Projects="$(_Root)src\Mono.Android\Mono.Android.csproj"
Properties="AndroidApiLevel=$(AndroidLatestUnstableApiLevel);AndroidPlatformId=$(AndroidLatestUnstablePlatformId);AndroidFrameworkVersion=$(AndroidLatestUnstableFrameworkVersion)"
Properties="AndroidApiLevel=$(AndroidLatestUnstableApiLevel);AndroidPlatformId=$(AndroidLatestUnstablePlatformId);AndroidFrameworkVersion=$(AndroidLatestUnstableFrameworkVersion);BuildProjectReferences=false"
/>
</Target>

Expand Down
7 changes: 7 additions & 0 deletions src/Mono.Android/Mono.Android.Apis.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -240,5 +240,12 @@
<Id>37.0</Id>
<Stable>True</Stable>
</AndroidApiInfo>
<AndroidApiInfo Include="v17.1">
<Name>CinnamonBun-2</Name>
<Level>37</Level>
<VersionCodeFull>37.1</VersionCodeFull>
<Id>37.1</Id>
<Stable>False</Stable>
</AndroidApiInfo>
</ItemGroup>
</Project>
42,842 changes: 42,842 additions & 0 deletions src/Mono.Android/Profiles/api-37.1.params.txt

Large diffs are not rendered by default.

217,327 changes: 217,327 additions & 0 deletions src/Mono.Android/Profiles/api-37.1.xml

Large diffs are not rendered by default.

134,233 changes: 134,233 additions & 0 deletions src/Mono.Android/PublicAPI/API-37.1/PublicAPI.Shipped.txt

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions src/Mono.Android/PublicAPI/API-37.1/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#nullable enable
Android.App.ApplicationAttribute.EnableOnBackInvokedCallback.get -> bool
Android.App.ApplicationAttribute.EnableOnBackInvokedCallback.set -> void
11 changes: 11 additions & 0 deletions src/Mono.Android/metadata
Original file line number Diff line number Diff line change
Expand Up @@ -2050,6 +2050,15 @@
name="managedOverride"
>override</attr>

<!-- API-37.1 Adjustments -->
<!-- API-31 introduced these types as non-`final`. API-35 changed them to be `final`, but api-merge
"ignored" that change because binding them as C# `sealed` types would be a source-breaking change.
API-37.1 changed `describeContents()` from a `final` method to a non-`final` method; this doesn't
matter on the Java side because it's a method on a `final` type, so it can't actually be overridden.
Force the method to stay `final` so the C# binding doesn't change. -->
<attr api-since="37.1" path="/api/package[@name='android.app.appsearch']/class[@name='SetSchemaResponse']/method[@name='describeContents']" name="final">true</attr>
<attr api-since="37.1" path="/api/package[@name='android.app.appsearch']/class[@name='StorageInfo']/method[@name='describeContents']" name="final">true</attr>

<!--
***********************************************************************
THE FOLLOWING LINES MUST BE CREATED FOR ANY NEW PLATFORM THAT IS ADDED.
Expand Down Expand Up @@ -2082,6 +2091,7 @@
<attr api-since="36.1" path="/api/package[contains(@merge.SourceFile,'api-36.1.xml.in')]/interface" name="no-alternatives">true</attr>
<attr api-since="37" path="/api/package[contains(@merge.SourceFile,'api-CinnamonBun.xml.in')]/interface" name="no-alternatives">true</attr>
<attr api-since="37" path="/api/package[contains(@merge.SourceFile,'api-37.0.xml.in')]/interface" name="no-alternatives">true</attr>
<attr api-since="37.1" path="/api/package[contains(@merge.SourceFile,'api-37.1.xml.in')]/interface" name="no-alternatives">true</attr>

<!-- Set ApiSince based on merge sourcefile. -->
<attr api-since="22" path="/api//*[contains(@merge.SourceFile,'api-22.xml.in')]" name="api-since">22</attr>
Expand Down Expand Up @@ -2111,6 +2121,7 @@
<attr api-since="37" path="/api//*[contains(@merge.SourceFile,'api-CinnamonBun.xml.in')]" name="api-since">37.0</attr>
<attr api-since="37" path="/api//*[contains(@merge.SourceFile,'api-37.xml.in')]" name="api-since">37.0</attr>
<attr api-since="37" path="/api//*[contains(@merge.SourceFile,'api-37.0.xml.in')]" name="api-since">37.0</attr>
<attr api-since="37.1" path="/api//*[contains(@merge.SourceFile,'api-37.1.xml.in')]" name="api-since">37.1</attr>

<!-- Erase some 'api-since' attributes (This has to be done after they are set above) -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@
"linux-arm64": "Microsoft.Android.Sdk.Linux"
}
},
"Microsoft.Android.Ref.37.1": {
"kind": "framework",
"version": "@WORKLOAD_VERSION@"
},
"Microsoft.Android.Runtime.37.1.android": {
"kind": "framework",
"version": "@WORKLOAD_VERSION@"
},
"Microsoft.Android.Ref.37": {
"kind": "framework",
"version": "@WORKLOAD_VERSION@"
Expand Down
1 change: 1 addition & 0 deletions src/androidsdk/androidsdk.targets
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
<_PlatformPackage Include="platform-36_r02"> <ApiLevel>36</ApiLevel> <Hash>37607369A28C5B640B3A7998868D45898EBCB777565A0E85F9ACF36F29631D2E</Hash></_PlatformPackage>
<_PlatformPackage Include="platform-36.1_r01"> <ApiLevel>36.1</ApiLevel> <Hash>265E9AA7D8DB6ABE7AD1696085D5D62784B341084C625DE46DB530970B1E806D</Hash></_PlatformPackage>
<_PlatformPackage Include="platform-37.0_r01"> <ApiLevel>37.0</ApiLevel> <IsLatestStable>true</IsLatestStable> <Hash>19BDCF42DE0CB0E9500A27DA6833FC30CDD49A7EC690AA5CABAA0EF893AF9EBE</Hash></_PlatformPackage>
<_PlatformPackage Include="platform-37.1_r01"> <ApiLevel>37.1</ApiLevel> <IsLatestStable>true</IsLatestStable> <Hash>CADF0A541847820EA3D8FFC5C192562A18376CF9BA510BF9659C772F9A442184</Hash></_PlatformPackage>
</ItemGroup>

<!--
Expand Down
6 changes: 3 additions & 3 deletions tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2060,7 +2060,7 @@ public void DotNetInstallAndRunPreviousSdk (
[Test]
public void DotNetInstallAndRunPreviewAPILevels (
[Values (false, true)] bool isRelease,
[Values ("net11.0-android37.0")] string targetFramework,
[Values ("net11.0-android37.1")] string targetFramework,
[Values (true)] bool enablePreviewFeatures)
{
var proj = new XamarinAndroidApplicationProject () {
Expand All @@ -2080,8 +2080,8 @@ public void DotNetInstallAndRunPreviewAPILevels (
.Replace ("//${AFTER_ONCREATE}", """
// The value `ignore` is not used.
#pragma warning disable 0219
if (OperatingSystem.IsAndroidVersionAtLeast (37, 0)) {
var ignore = global::Android.Manifest.Permission.RequestCompanionProfileMedical;
if (OperatingSystem.IsAndroidVersionAtLeast (37, 1)) {
var ignore = global::Android.Manifest.Permission.AccessHid;
}
#pragma warning restore 0219
""");
Expand Down
2 changes: 2 additions & 0 deletions tests/api-compatibility/acceptable-breakages-v17.1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Compat issues with assembly Mono.Android:
CannotRemoveAttribute : Attribute 'System.Runtime.Versioning.ObsoletedOSPlatformAttribute' exists on 'Android.Graphics.Drawables.Drawable.SetDither(System.Boolean)' in the contract but not the implementation.
Loading