From 42a97bc076850a3545958e3a7b2df1729f9b8b17 Mon Sep 17 00:00:00 2001 From: moljac Date: Wed, 5 May 2021 16:07:28 +0200 Subject: [PATCH 01/13] jcenter/jfrog url replacements --- .../Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs | 6 +++--- .../Tests/Xamarin.Android.Build.Tests/BuildTest.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs index aed17405ea6..c6c2a378adb 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs @@ -107,7 +107,7 @@ public void BuildAarBindingLibraryStandalone (string classParser) IsRelease = true, }; proj.Jars.Add (new AndroidItem.AndroidLibrary ("Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); proj.AndroidClassParser = classParser; using (var b = CreateDllBuilder ()) { @@ -128,7 +128,7 @@ public void BuildAarBindigLibraryWithNuGetPackageOfJar (string classParser) }; proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); proj.Jars.Add (new AndroidItem.LibraryProjectZip ("Jars\\android-crop-1.0.1.aar") { - WebContent = "https://jcenter.bintray.com/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" + WebContent = "https://repo1.maven.org/maven2/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" }); proj.MetadataXml = @" @@ -491,7 +491,7 @@ public void DesignTimeBuild (string classParser) AndroidClassParser = classParser }; proj.Jars.Add (new AndroidItem.LibraryProjectZip ("Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); using (var b = CreateDllBuilder ()) { Assert.IsTrue (b.DesignTimeBuild (proj), "design-time build should have succeeded."); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index f26329d9f4d..53e04368678 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -416,7 +416,7 @@ public void SkipConvertResourcesCases ([Values (false, true)] bool useAapt2) var proj = new XamarinFormsAndroidApplicationProject (); proj.AndroidUseAapt2 = useAapt2; proj.OtherBuildItems.Add (new BuildItem ("AndroidAarLibrary", "Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); From 7932e504f791381d6e5c6ac025c73e40c77701d2 Mon Sep 17 00:00:00 2001 From: moljac Date: Wed, 5 May 2021 16:11:13 +0200 Subject: [PATCH 02/13] android-crop url replaced --- .../Tests/Xamarin.Android.Build.Tests/DesignerTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs index bdc46259e66..6034c94cf76 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs @@ -225,7 +225,7 @@ public void GetExtraLibraryLocationsForDesigner () WebContent = $"https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/{jar}" }); proj.OtherBuildItems.Add (new AndroidItem.AndroidAarLibrary ("android-crop-1.0.1.aar") { - WebContent = "https://jcenter.bintray.com/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" + WebContent = "https://repo1.maven.org/maven2/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" }); // Each NuGet package and AAR file are in libraryprojectimports.cache, AndroidJavaSource is not int libraryProjectImportsJars = 14; From 5400522dba16930e1a16110b894815b07f5bcd12 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 5 May 2021 14:41:08 -0500 Subject: [PATCH 03/13] [One .NET] workload is now Microsoft.NET.Sdk.Android.Manifest-6.0.100 (#5898) Context: https://github.com/dotnet/designs/pull/188/files#diff-8fcaa29d8e6f00b34b3cb1830d93f33e75f04424780a66a3c658c7021048e74fR125 Context: https://github.com/NuGet/NuGet.Client/blob/c529bd75d247430ed19b1713041de0b5b240ef0d/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.targets#L220-L281 The `$(PackageId)` of our workload `.nupkg` needs to be: Microsoft.NET.Sdk.Android.Manifest-6.0.100 While the `$(PackageVersion)` remains the same as before. The layout on disk will change to: dotnet\sdk-manifests\6.0.100\Microsoft.NET.Sdk.Android\ WorkloadManifest.json WorkloadManifest.targets Note that `.Manifest` and `-6.0.100` are not in the folder name on disk. The generated filename will be e.g. Microsoft.NET.Sdk.Android.Manifest-6.0.100.11.0.200-ci.microsoft-net-sdk-android-manifest.255.nupkg We could find no way to "visually separate" the ".NET version band" of `6.0.100` from the Microsoft.NET.Sdk.Android version of `11.0.200`. Additionally, update `version` in `WorkloadManifest.json` so it contains the proper version for our workload. This used to not be possible because `version` was a `long`, but it now is a `string` where we can put our version. --- .../GenerateWixFile.cs | 2 +- .../create-dotnet-msi/create-dotnet-msi.csproj | 2 +- .../create-dotnet-pkg/create-dotnet-pkg.csproj | 4 ++-- build-tools/create-packs/Directory.Build.props | 2 ++ .../create-packs/Directory.Build.targets | 14 ++++++-------- .../create-packs/Microsoft.Android.Sdk.proj | 4 ++-- ...roid.proj => Microsoft.NET.Sdk.Android.proj} | 17 +++++++++-------- .../WorkloadManifest.in.json | 10 +++++----- .../WorkloadManifest.targets | 0 9 files changed, 28 insertions(+), 27 deletions(-) rename build-tools/create-packs/{Microsoft.NET.Workload.Android.proj => Microsoft.NET.Sdk.Android.proj} (65%) rename src/Xamarin.Android.Build.Tasks/{Microsoft.NET.Workload.Android => Microsoft.NET.Sdk.Android}/WorkloadManifest.in.json (81%) rename src/Xamarin.Android.Build.Tasks/{Microsoft.NET.Workload.Android => Microsoft.NET.Sdk.Android}/WorkloadManifest.targets (100%) diff --git a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs index e92e965d507..bef793b76f2 100644 --- a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs +++ b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs @@ -93,7 +93,7 @@ public override bool Execute () packWriter.WriteAttributeString ("Id", "DOTNETVERSIONBAND"); packWriter.WriteAttributeString ("Name", version_band); packWriter.WriteAttributeString ("FileSource", sdk_manifests); - var workload = Path.Combine (sdk_manifests, "Microsoft.NET.Workload.Android"); + var workload = Path.Combine (sdk_manifests, "Microsoft.NET.Sdk.Android"); if (Directory.Exists (workload)) { RecurseDirectory (sdk_manifests, packWriter, componentWriter, workload); } else { diff --git a/build-tools/create-dotnet-msi/create-dotnet-msi.csproj b/build-tools/create-dotnet-msi/create-dotnet-msi.csproj index 73633e856e2..57460d7d9ec 100644 --- a/build-tools/create-dotnet-msi/create-dotnet-msi.csproj +++ b/build-tools/create-dotnet-msi/create-dotnet-msi.csproj @@ -45,7 +45,7 @@ - $(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Workload.Android\LICENSE + $(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\LICENSE <_LicenseDestination>$(IntermediateOutputPath)LICENSE.rtf <_WixFile>$(IntermediateOutputPath)Microsoft.NET.Workload.Android.wix <_WixObj>$(IntermediateOutputPath)Microsoft.NET.Workload.Android.wixobj diff --git a/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj b/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj index c8eda15f290..9fdd0551b59 100644 --- a/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj +++ b/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj @@ -34,12 +34,12 @@ - $(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Workload.Android\LICENSE + $(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\LICENSE $(PayloadDir)\usr\local\share\dotnet\ <_FilesToCopy Include="$(DotNetPreviewPath)\sdk\$(MicrosoftDotnetSdkInternalPackageVersion)\EnableWorkloadResolver.sentinel" /> - <_FilesToCopy Include="$(DotNetPreviewPath)\sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Workload.Android\**\*" /> + <_FilesToCopy Include="$(DotNetPreviewPath)\sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\**\*" /> <_FilesToCopy Include="$(DotNetPreviewPath)\packs\Microsoft.Android.Ref\**\*" /> <_FilesToCopy Include="$(DotNetPreviewPath)\packs\Microsoft.Android.Sdk.Darwin\**\*" /> <_FilesToCopy Include="$(DotNetPreviewPath)\packs\Microsoft.Android.Sdk.BundleTool\**\*" /> diff --git a/build-tools/create-packs/Directory.Build.props b/build-tools/create-packs/Directory.Build.props index f995b5ea737..0eea0459802 100644 --- a/build-tools/create-packs/Directory.Build.props +++ b/build-tools/create-packs/Directory.Build.props @@ -14,4 +14,6 @@ $(NoWarn);NU5128;NU5131 + + diff --git a/build-tools/create-packs/Directory.Build.targets b/build-tools/create-packs/Directory.Build.targets index 192921da238..93702405448 100644 --- a/build-tools/create-packs/Directory.Build.targets +++ b/build-tools/create-packs/Directory.Build.targets @@ -1,6 +1,4 @@ - - @@ -87,14 +85,14 @@ - + - <_WLManifest Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.NET.Workload.Android.*.nupkg" /> + <_WLManifest Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.NET.Sdk.Android.Manifest-*.nupkg" /> <_WLPacks Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.Android.Sdk.$(HostOS).*.nupkg" /> <_WLPacks Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.Android.Sdk.BundleTool.*.nupkg" /> <_WLPacks Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.Android.Ref.*.nupkg" /> @@ -103,7 +101,7 @@ - <_WLPackVersion>@(_WLManifest->'%(Filename)'->Replace('Microsoft.NET.Workload.Android.', '')) + <_WLPackVersion>@(_WLManifest->'%(Filename)'->Replace('Microsoft.NET.Sdk.Android.Manifest-$(DotNetPreviewVersionBand).', '')) <_SdkManifestsFolder>$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\ <_WLExtractedFiles Include="$(_SdkManifestsFolder)temp\data\*" /> - + <_UnixExecutables Include="$(DotNetPreviewPath)packs\Microsoft.Android.Sdk.*\*\tools\$(HostOS)\**\*.*" /> - <_FilesToTouch Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Workload.Android\**" /> + <_FilesToTouch Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\**" /> <_FilesToTouch Include="$(DotNetPreviewPath)packs\$([System.String]::Copy('%(_WLPacks.Filename)').Replace('.$(_WLPackVersion)', ''))\$(_WLPackVersion)\**" /> - <_PackFilesToDelete Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.Android.Workload\**\*.*" /> + <_PackFilesToDelete Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\**\*.*" /> <_PackFilesToDelete Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Workload.Android\**\*.*" /> <_PackFilesToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android*\**\*.*" /> <_PackFilesToDelete Include="$(DotNetPreviewPath)template-packs\Microsoft.Android.Templates.*.nupkg" /> diff --git a/build-tools/create-packs/Microsoft.Android.Sdk.proj b/build-tools/create-packs/Microsoft.Android.Sdk.proj index 1de5134caa2..5efdf3d332d 100644 --- a/build-tools/create-packs/Microsoft.Android.Sdk.proj +++ b/build-tools/create-packs/Microsoft.Android.Sdk.proj @@ -2,8 +2,8 @@ *********************************************************************************************** Microsoft.Android.Sdk.proj -This project file is used to create the Microsoft.Android.Sdk.$(RID) NuGets, which are the -core workload sdk packs imported by Microsoft.NET.Workload.Android. +This project file is used to create the Microsoft.Android.Sdk.$(HostOS) NuGets, which are the +core workload SDK packs imported by WorkloadManifest.targets. *********************************************************************************************** --> diff --git a/build-tools/create-packs/Microsoft.NET.Workload.Android.proj b/build-tools/create-packs/Microsoft.NET.Sdk.Android.proj similarity index 65% rename from build-tools/create-packs/Microsoft.NET.Workload.Android.proj rename to build-tools/create-packs/Microsoft.NET.Sdk.Android.proj index 08069060450..38372e58f47 100644 --- a/build-tools/create-packs/Microsoft.NET.Workload.Android.proj +++ b/build-tools/create-packs/Microsoft.NET.Sdk.Android.proj @@ -1,16 +1,17 @@ - Microsoft.NET.Workload.Android - Microsoft.Android workload manifest. Please do not reference directly. + Microsoft.NET.Sdk.Android.Manifest-$(DotNetPreviewVersionBand) + Microsoft.NET.Sdk.Android workload manifest. Please do not reference directly. @@ -31,13 +32,13 @@ workload manifest pack containing information about the various Microsoft.Androi + Replacements="@WORKLOAD_VERSION@=$(AndroidPackVersionLong)"> - <_PackageFiles Include="$(XamarinAndroidSourcePath)src\Xamarin.Android.Build.Tasks\Microsoft.NET.Workload.Android\WorkloadManifest.targets" PackagePath="data" /> + <_PackageFiles Include="$(XamarinAndroidSourcePath)src\Xamarin.Android.Build.Tasks\Microsoft.NET.Sdk.Android\WorkloadManifest.targets" PackagePath="data" /> <_PackageFiles Include="$(WorkloadManifestJsonPath)" PackagePath="data" /> diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.in.json b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json similarity index 81% rename from src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.in.json rename to src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json index 613a72eaab4..f5dd6e3a3a9 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.in.json +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.in.json @@ -1,5 +1,5 @@ { - "version": 6, + "version": "@WORKLOAD_VERSION@", "workloads": { "microsoft-android-sdk-full": { "description": "Android SDK", @@ -14,7 +14,7 @@ "packs": { "Microsoft.Android.Sdk": { "kind": "sdk", - "version": "@SDK_PACK_VERSION@", + "version": "@WORKLOAD_VERSION@", "alias-to": { "osx-x64": "Microsoft.Android.Sdk.Darwin", "osx-arm64": "Microsoft.Android.Sdk.Darwin", @@ -25,15 +25,15 @@ }, "Microsoft.Android.Sdk.BundleTool": { "kind": "sdk", - "version": "@SDK_PACK_VERSION@" + "version": "@WORKLOAD_VERSION@" }, "Microsoft.Android.Ref": { "kind": "framework", - "version": "@REF_PACK_VERSION@" + "version": "@WORKLOAD_VERSION@" }, "Microsoft.Android.Templates": { "kind": "template", - "version": "@TEMPLATE_PACK_VERSION@" + "version": "@WORKLOAD_VERSION@" } } } diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.targets similarity index 100% rename from src/Xamarin.Android.Build.Tasks/Microsoft.NET.Workload.Android/WorkloadManifest.targets rename to src/Xamarin.Android.Build.Tasks/Microsoft.NET.Sdk.Android/WorkloadManifest.targets From 51bb87603a6ecbcf8b74b4d1a529fbbe2feac01a Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Wed, 5 May 2021 18:15:44 -0500 Subject: [PATCH 04/13] [GitHub] Update the 'Binding Issue' template to better guide users (#5906) Point to Binding Troubleshooting Guide: * https://github.com/xamarin/java.interop/wiki/Troubleshooting-Android-Bindings-Issues Add hints to include `.jar`/`.aar`/diagnostic log. --- .../04-binding-a-java-library.md | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/04-binding-a-java-library.md b/.github/ISSUE_TEMPLATE/04-binding-a-java-library.md index cbc9515e951..0e9cf9932e4 100644 --- a/.github/ISSUE_TEMPLATE/04-binding-a-java-library.md +++ b/.github/ISSUE_TEMPLATE/04-binding-a-java-library.md @@ -7,27 +7,28 @@ assignees: 'jpobst' --- -### Steps to Reproduce + -### Expected Behavior +### Error Message or Issue + + -### Actual Behavior ### Version Information
@@ -38,12 +39,19 @@ If you have a repro project, you may drag & drop the .zip/etc. onto the issue ed ### Log File + +### Other Helpful Info + From ac9a11f1d5ba98a521a3791167604fa44748beec Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Thu, 6 May 2021 16:44:23 -0500 Subject: [PATCH 05/13] [xaprepare] cleanup past .NET 6 installs (#5918) Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=4728381&view=ms.vss-test-web.build-test-results-tab&runId=21435278&resultId=100052&paneView=attachments CI on some of our release branches is failing with errors such as: UnnamedProject.csproj: warning MSB4242: The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed to run. An item with the same key has already been added. Key: microsoft-android-sdk-full Microsoft.NET.Sdk.ImportWorkloads.props(14,3): warning MSB4242: The SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" failed to run. An item with the same key has already been added. Key: microsoft-android-sdk-full Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4236: The SDK 'Microsoft.NET.SDK.WorkloadAutoImportPropsLocator' specified could not be found. This could happen if both directories exist: dotnet/sdk-manifest/6.0.100/Microsoft.NET.Workload.Android dotnet/sdk-manifest/6.0.100/Microsoft.NET.Sdk.Android Which would define the same Android workload twice. xaprepare was setup to clean certain folders in `$(AndroidToolchainDirectory)\dotnet`, but also needs to delete: * sdk-manifests/6.0.100/*Android* * template-packs/*Android* I also changed some of the string comparisons to use `StringComparison.OrdinalIgnoreCase`. --- .../Steps/Step_InstallDotNetPreview.cs | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs index a6f6bb0e21e..4e4a9f78c07 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_InstallDotNetPreview.cs @@ -24,9 +24,26 @@ protected override async Task Execute (Context context) // Delete any custom Microsoft.Android packs that may have been installed by test runs. Other ref/runtime packs will be ignored. var packsPath = Path.Combine (dotnetPath, "packs"); if (Directory.Exists (packsPath)) { - foreach (var packToRemove in Directory.EnumerateDirectories (packsPath).Where (p => new DirectoryInfo (p).Name.Contains ("Android"))) { - Log.StatusLine ($"Removing Android pack: {packToRemove}"); - Utilities.DeleteDirectory (packToRemove); + foreach (var packToRemove in Directory.EnumerateDirectories (packsPath)) { + var info = new DirectoryInfo (packToRemove); + if (info.Name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) { + Log.StatusLine ($"Removing Android pack: {packToRemove}"); + Utilities.DeleteDirectory (packToRemove); + } + } + } + + // Delete Workload manifests, such as sdk-manifests/6.0.100/Microsoft.NET.Sdk.Android + var sdkManifestsPath = Path.Combine (dotnetPath, "sdk-manifests"); + if (Directory.Exists (sdkManifestsPath)) { + foreach (var versionBand in Directory.EnumerateDirectories (sdkManifestsPath)) { + foreach (var workloadManifestDirectory in Directory.EnumerateDirectories (versionBand)) { + var info = new DirectoryInfo (workloadManifestDirectory); + if (info.Name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) { + Log.StatusLine ($"Removing Android manifest directory: {workloadManifestDirectory}"); + Utilities.DeleteDirectory (workloadManifestDirectory); + } + } } } @@ -39,6 +56,18 @@ protected override async Task Execute (Context context) } } + // Delete Android template-packs + var templatePacksPath = Path.Combine (dotnetPath, "template-packs"); + if (Directory.Exists (templatePacksPath)) { + foreach (var templateToRemove in Directory.EnumerateFiles (templatePacksPath)) { + var name = Path.GetFileName (templateToRemove); + if (name.IndexOf ("Android", StringComparison.OrdinalIgnoreCase) != -1) { + Log.StatusLine ($"Removing Android template: {templateToRemove}"); + Utilities.DeleteFile (templateToRemove); + } + } + } + if (File.Exists (dotnetTool)) { if (!TestDotNetSdk (dotnetTool)) { Log.WarningLine ($"Attempt to run `dotnet --version` failed, reinstalling the SDK."); From 925ffadc2bc386fc815da24fb43b9e2615dd81e4 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Fri, 7 May 2021 21:18:26 +0200 Subject: [PATCH 06/13] [java-runtime] Preload net6 OpenSsl on startup (#5913) Context: https://github.com/dotnet/runtime/issues/51274 In .NET 6, `libSystem.Security.Cryptography.Native.OpenSsl.so` needs to be loaded and initialized in order for `System.Security` to be usable. Previously, nothing ensured that the library was loaded, which would result in SIGSEGVs at runtime: [monodroid-assembly] Caching p/invoke entry libSystem.Security.Cryptography.Native.OpenSsl @ AndroidCryptoNative_CipherCreate [monodroid] MonodroidRuntime::monodroid_pinvoke_override ("libSystem.Security.Cryptography.Native.OpenSsl", "AndroidCryptoNative_CipherCreate") [libc] Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 5002 (anyname.Android), pid 5002 (anyname.Android) Workaround this problem by updating `MonoPackageManager.java` so that `System.Security.Cryptography.Native.OpenSsl` is always loaded from Java as part of process startup. This is not a desirable solution, as we want to keep *required* process startup overheads as small as possible. Thus, we wish to remove this workaround in the future, once a proper solution is found. --- src/java-runtime/java/mono/android/MonoPackageManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/java-runtime/java/mono/android/MonoPackageManager.java b/src/java-runtime/java/mono/android/MonoPackageManager.java index 52451489f33..11d53b5533e 100644 --- a/src/java-runtime/java/mono/android/MonoPackageManager.java +++ b/src/java-runtime/java/mono/android/MonoPackageManager.java @@ -82,6 +82,10 @@ public static void LoadApplication (Context context, ApplicationInfo runtimePack if (!BuildConfig.DotNetRuntime) { // .net5+ APKs don't contain `libmono-native.so` System.loadLibrary("mono-native"); + } else { + // for .net6 we temporarily need to load the SSL DSO + // see: https://github.com/dotnet/runtime/issues/51274#issuecomment-832963657 + System.loadLibrary("System.Security.Cryptography.Native.OpenSsl"); } System.loadLibrary("monodroid"); From 4ed6a222ed07551734b28525dd269d50ac107ea8 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Fri, 7 May 2021 21:23:19 +0200 Subject: [PATCH 07/13] [One .NET] $(AndroidEnablePreloadAssemblies)=False by default (#5790) (#5914) Fixes: https://github.com/xamarin/xamarin-android/issues/5838 Context: e0da1f152de84c4cc39983f2fda775ec98c08250 Partially reverts 522d7fb6 which, reverted d13d0f97. The [`$(AndroidEnablePreloadAssemblies)`][0] property controls whether or not *all* `.dll` files contained within a `.apk` are loaded during process startup. *Not* doing so reduces process startup times, which is desirable, but this also caused certain Xamarin.Forms apps to fail to run as they previously had, as not loading all assemblies during startup broke their Dependency Injection infrastructure. For .NET 6, we feel we have *some* "wiggle-room" to change default semantics, so for .NET 6 projects set the default value of `$(AndroidEnablePreloadAssemblies)` to False, so that assemblies are *not* pre-loaded during process startup. `$(AndroidEnablePreloadAssemblies)` can be set to True within the app's `.csproj` file to return to "legacy" semantics. This will cause all assemblies to be loaded during startup, with a commensurate increase in app startup overheads. [0]: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/building-apps/build-properties#androidenablepreloadassemblies --- .../Tests/Xamarin.Android.Build.Tests/BuildTest.cs | 6 +++++- .../Xamarin.Android.Common.targets | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 22978f97641..f7ba75aa2ba 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -3938,7 +3938,11 @@ public void PackageNamingPolicy ([Values ("LowercaseMD5", "LowercaseCrc64")] str Assert.IsTrue (b.Build (proj), "build should have succeeded."); var environment = b.Output.GetIntermediaryPath (Path.Combine ("__environment__.txt")); FileAssert.Exists (environment); - Assert.AreEqual ($"__XA_PACKAGE_NAMING_POLICY__={packageNamingPolicy}", File.ReadAllText (environment).Trim ()); + if (Builder.UseDotNet) { + Assert.AreEqual ($"__XA_PACKAGE_NAMING_POLICY__={packageNamingPolicy}{Environment.NewLine}mono.enable_assembly_preload=0", File.ReadAllText (environment).Trim ()); + } else { + Assert.AreEqual ($"__XA_PACKAGE_NAMING_POLICY__={packageNamingPolicy}", File.ReadAllText (environment).Trim ()); + } } } diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index ed74feed490..396002fb80c 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -291,7 +291,8 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. False - <_AndroidEnablePreloadAssembliesDefault>True + <_AndroidEnablePreloadAssembliesDefault Condition=" '$(UsingAndroidNETSdk)' == 'true' ">False + <_AndroidEnablePreloadAssembliesDefault Condition=" '$(UsingAndroidNETSdk)' != 'true' ">True $(_AndroidEnablePreloadAssembliesDefault) <_NativeAssemblySourceDir>$(IntermediateOutputPath)android\ <_AndroidUseNewTypemaps>True From 4182e1ff3eb779c499402eb7016fc7de84a0f8f4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 16:29:28 -0500 Subject: [PATCH 08/13] Bump to dotnet/installer/main@8e4d77c 6.0.100-preview.5.21255.8 (#5915) Changes: https://github.com/dotnet/installer/compare/eceded1...8e4d77c Changes: https://github.com/mono/linker/compare/307f6b0...4afa105 * Update dependencies from https://github.com/dotnet/installer build 20210505.8 Microsoft.Dotnet.Sdk.Internal From Version 6.0.100-preview.5.21252.3 -> To Version 6.0.100-preview.5.21255.8 Dependency coherency updates Microsoft.NET.ILLink.Tasks From Version 6.0.100-preview.5.21229.1 -> To Version 6.0.100-preview.5.21254.1 (parent: Microsoft.Dotnet.Sdk.Internal * Update .apkdesc files Co-authored-by: Jonathan Peppers --- eng/Version.Details.xml | 8 +- eng/Versions.props | 4 +- .../BuildReleaseArm64SimpleDotNet.apkdesc | 14 +- .../BuildReleaseArm64XFormsDotNet.apkdesc | 1000 ++++++++--------- 4 files changed, 513 insertions(+), 513 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ea8dd3f130a..96de5245b80 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,12 +1,12 @@ - + https://github.com/dotnet/installer - eceded1fb7842e3460dbb1d613e20d635706a0f9 + 8e4d77c38be0f061f14c166a4bdc1bbbfa6a2073 - + https://github.com/mono/linker - 307f6b0afd2fea639fffa97e67155bafe6aa8461 + 4afa1051f5e44560368aacb21429e956ce39cc1a diff --git a/eng/Versions.props b/eng/Versions.props index 53af9de13cc..2451d3774e4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,8 +1,8 @@ - 6.0.100-preview.5.21252.3 - 6.0.100-preview.5.21229.1 + 6.0.100-preview.5.21255.8 + 6.0.100-preview.5.21254.1 5.0.0-beta.20181.7 6.0.0-beta.21212.6 diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.apkdesc index f2f2dcc1cbc..a49f7fc4438 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.apkdesc @@ -8,19 +8,19 @@ "Size": 57122 }, "assemblies/Mono.Android.dll": { - "Size": 82120 + "Size": 82119 }, "assemblies/System.Linq.dll": { - "Size": 10651 + "Size": 10642 }, "assemblies/System.Private.CoreLib.dll": { - "Size": 516048 + "Size": 515642 }, "assemblies/System.Runtime.dll": { - "Size": 2425 + "Size": 2415 }, "assemblies/UnnamedProject.dll": { - "Size": 3176 + "Size": 3162 }, "classes.dex": { "Size": 316728 @@ -29,7 +29,7 @@ "Size": 346848 }, "lib/arm64-v8a/libmonosgen-2.0.so": { - "Size": 3918016 + "Size": 3922032 }, "lib/arm64-v8a/libSystem.IO.Compression.Native.so": { "Size": 776168 @@ -44,7 +44,7 @@ "Size": 68560 }, "META-INF/ANDROIDD.RSA": { - "Size": 1211 + "Size": 1213 }, "META-INF/ANDROIDD.SF": { "Size": 2289 diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc index beefbc38bc0..173d141f481 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc @@ -5,217 +5,217 @@ "Size": 3120 }, "assemblies/FormsViewGroup.dll": { - "Size": 7241 + "Size": 7224 }, "assemblies/Java.Interop.dll": { "Size": 64262 }, "assemblies/Microsoft.Win32.Primitives.dll": { - "Size": 3931 + "Size": 3923 }, "assemblies/Mono.Android.dll": { - "Size": 433329 + "Size": 433335 }, "assemblies/mscorlib.dll": { - "Size": 3999 + "Size": 3988 }, "assemblies/netstandard.dll": { - "Size": 5677 + "Size": 5667 }, "assemblies/System.Collections.Concurrent.dll": { - "Size": 12154 + "Size": 12146 }, "assemblies/System.Collections.dll": { - "Size": 21462 + "Size": 21453 }, "assemblies/System.Collections.NonGeneric.dll": { - "Size": 9017 + "Size": 9008 }, "assemblies/System.ComponentModel.dll": { - "Size": 2188 + "Size": 2178 }, "assemblies/System.ComponentModel.Primitives.dll": { - "Size": 2786 + "Size": 2777 }, "assemblies/System.ComponentModel.TypeConverter.dll": { - "Size": 7345 + "Size": 7338 }, "assemblies/System.Console.dll": { - "Size": 6368 + "Size": 6361 }, "assemblies/System.Core.dll": { - "Size": 2138 + "Size": 2129 }, "assemblies/System.Diagnostics.TraceSource.dll": { - "Size": 7240 + "Size": 7231 }, "assemblies/System.dll": { - "Size": 2491 + "Size": 2483 }, "assemblies/System.Drawing.dll": { - "Size": 2180 + "Size": 2172 }, "assemblies/System.Drawing.Primitives.dll": { - "Size": 12491 + "Size": 12481 }, "assemblies/System.Formats.Asn1.dll": { - "Size": 28183 + "Size": 28178 }, "assemblies/System.IO.Compression.Brotli.dll": { - "Size": 12174 + "Size": 12170 }, "assemblies/System.IO.Compression.dll": { - "Size": 19626 + "Size": 19618 }, "assemblies/System.IO.FileSystem.dll": { - "Size": 24161 + "Size": 24152 }, "assemblies/System.IO.IsolatedStorage.dll": { - "Size": 11341 + "Size": 11331 }, "assemblies/System.Linq.dll": { - "Size": 20458 + "Size": 20451 }, "assemblies/System.Linq.Expressions.dll": { - "Size": 191552 + "Size": 191541 }, "assemblies/System.Net.Http.dll": { - "Size": 196301 + "Size": 196291 }, "assemblies/System.Net.NameResolution.dll": { - "Size": 10642 + "Size": 10635 }, "assemblies/System.Net.NetworkInformation.dll": { - "Size": 18060 + "Size": 18051 }, "assemblies/System.Net.Primitives.dll": { - "Size": 42860 + "Size": 42854 }, "assemblies/System.Net.Security.dll": { - "Size": 59228 + "Size": 59223 }, "assemblies/System.Net.Sockets.dll": { - "Size": 57114 + "Size": 57107 }, "assemblies/System.ObjectModel.dll": { - "Size": 12030 + "Size": 12021 }, "assemblies/System.Private.CoreLib.dll": { - "Size": 709841 + "Size": 709338 }, "assemblies/System.Private.DataContractSerialization.dll": { - "Size": 201982 + "Size": 203728 }, "assemblies/System.Private.Uri.dll": { - "Size": 44307 + "Size": 44302 }, "assemblies/System.Private.Xml.dll": { - "Size": 261419 + "Size": 261409 }, "assemblies/System.Private.Xml.Linq.dll": { - "Size": 15831 + "Size": 15816 }, "assemblies/System.Runtime.CompilerServices.Unsafe.dll": { "Size": 1487 }, "assemblies/System.Runtime.dll": { - "Size": 2621 + "Size": 2612 }, "assemblies/System.Runtime.InteropServices.RuntimeInformation.dll": { - "Size": 3095 + "Size": 3084 }, "assemblies/System.Runtime.Numerics.dll": { - "Size": 19213 + "Size": 19204 }, "assemblies/System.Runtime.Serialization.dll": { - "Size": 2108 + "Size": 2098 }, "assemblies/System.Runtime.Serialization.Formatters.dll": { - "Size": 2744 + "Size": 2736 }, "assemblies/System.Runtime.Serialization.Primitives.dll": { - "Size": 3998 + "Size": 4220 }, "assemblies/System.Security.Cryptography.Algorithms.dll": { - "Size": 26079 + "Size": 26071 }, "assemblies/System.Security.Cryptography.Encoding.dll": { - "Size": 14365 + "Size": 14358 }, "assemblies/System.Security.Cryptography.Primitives.dll": { - "Size": 5919 + "Size": 5912 }, "assemblies/System.Security.Cryptography.X509Certificates.dll": { - "Size": 58424 + "Size": 58415 }, "assemblies/System.Text.RegularExpressions.dll": { - "Size": 79220 + "Size": 79210 }, "assemblies/System.Threading.Channels.dll": { - "Size": 13941 + "Size": 13931 }, "assemblies/System.Xml.dll": { - "Size": 1999 + "Size": 1987 }, "assemblies/UnnamedProject.dll": { - "Size": 117080 + "Size": 117064 }, "assemblies/Xamarin.AndroidX.Activity.dll": { - "Size": 6265 + "Size": 6246 }, "assemblies/Xamarin.AndroidX.AppCompat.AppCompatResources.dll": { - "Size": 6326 + "Size": 6313 }, "assemblies/Xamarin.AndroidX.AppCompat.dll": { - "Size": 122439 + "Size": 122431 }, "assemblies/Xamarin.AndroidX.CardView.dll": { - "Size": 7096 + "Size": 7076 }, "assemblies/Xamarin.AndroidX.CoordinatorLayout.dll": { - "Size": 17905 + "Size": 17891 }, "assemblies/Xamarin.AndroidX.Core.dll": { - "Size": 104063 + "Size": 104046 }, "assemblies/Xamarin.AndroidX.DrawerLayout.dll": { - "Size": 15152 + "Size": 15134 }, "assemblies/Xamarin.AndroidX.Fragment.dll": { - "Size": 42704 + "Size": 42692 }, "assemblies/Xamarin.AndroidX.Legacy.Support.Core.UI.dll": { - "Size": 6434 + "Size": 6419 }, "assemblies/Xamarin.AndroidX.Lifecycle.Common.dll": { - "Size": 6788 + "Size": 6766 }, "assemblies/Xamarin.AndroidX.Lifecycle.LiveData.Core.dll": { - "Size": 6910 + "Size": 6889 }, "assemblies/Xamarin.AndroidX.Lifecycle.ViewModel.dll": { - "Size": 3297 + "Size": 3278 }, "assemblies/Xamarin.AndroidX.Loader.dll": { - "Size": 13315 + "Size": 13302 }, "assemblies/Xamarin.AndroidX.RecyclerView.dll": { - "Size": 92088 + "Size": 92067 }, "assemblies/Xamarin.AndroidX.SavedState.dll": { - "Size": 5205 + "Size": 5189 }, "assemblies/Xamarin.AndroidX.SwipeRefreshLayout.dll": { - "Size": 10949 + "Size": 10932 }, "assemblies/Xamarin.AndroidX.ViewPager.dll": { - "Size": 19145 + "Size": 19126 }, "assemblies/Xamarin.Forms.Core.dll": { "Size": 528450 }, "assemblies/Xamarin.Forms.Platform.Android.dll": { - "Size": 384976 + "Size": 384961 }, "assemblies/Xamarin.Forms.Platform.dll": { "Size": 56878 @@ -224,7 +224,7 @@ "Size": 60774 }, "assemblies/Xamarin.Google.Android.Material.dll": { - "Size": 43159 + "Size": 43148 }, "classes.dex": { "Size": 3455260 @@ -233,7 +233,7 @@ "Size": 346848 }, "lib/arm64-v8a/libmonosgen-2.0.so": { - "Size": 3918016 + "Size": 3922032 }, "lib/arm64-v8a/libSystem.IO.Compression.Native.so": { "Size": 776168 @@ -251,7 +251,7 @@ "Size": 12 }, "META-INF/ANDROIDD.RSA": { - "Size": 1211 + "Size": 1213 }, "META-INF/ANDROIDD.SF": { "Size": 80227 @@ -259,10 +259,10 @@ "META-INF/androidx.activity_activity.version": { "Size": 6 }, - "META-INF/androidx.appcompat_appcompat-resources.version": { + "META-INF/androidx.appcompat_appcompat.version": { "Size": 6 }, - "META-INF/androidx.appcompat_appcompat.version": { + "META-INF/androidx.appcompat_appcompat-resources.version": { "Size": 6 }, "META-INF/androidx.arch.core_core-runtime.version": { @@ -310,10 +310,10 @@ "META-INF/androidx.legacy_legacy-support-v4.version": { "Size": 6 }, - "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": { + "META-INF/androidx.lifecycle_lifecycle-livedata.version": { "Size": 6 }, - "META-INF/androidx.lifecycle_lifecycle-livedata.version": { + "META-INF/androidx.lifecycle_lifecycle-livedata-core.version": { "Size": 6 }, "META-INF/androidx.lifecycle_lifecycle-runtime.version": { @@ -349,10 +349,10 @@ "META-INF/androidx.transition_transition.version": { "Size": 6 }, - "META-INF/androidx.vectordrawable_vectordrawable-animated.version": { + "META-INF/androidx.vectordrawable_vectordrawable.version": { "Size": 6 }, - "META-INF/androidx.vectordrawable_vectordrawable.version": { + "META-INF/androidx.vectordrawable_vectordrawable-animated.version": { "Size": 6 }, "META-INF/androidx.versionedparcelable_versionedparcelable.version": { @@ -370,12 +370,6 @@ "META-INF/proguard/androidx-annotations.pro": { "Size": 339 }, - "res/anim-v21/design_bottom_sheet_slide_in.xml": { - "Size": 616 - }, - "res/anim-v21/design_bottom_sheet_slide_out.xml": { - "Size": 616 - }, "res/anim/abc_fade_in.xml": { "Size": 388 }, @@ -472,9 +466,6 @@ "res/anim/exittoright.xml": { "Size": 468 }, - "res/animator-v21/design_appbar_state_list_animator.xml": { - "Size": 1216 - }, "res/animator/design_fab_hide_motion_spec.xml": { "Size": 796 }, @@ -502,38 +493,14 @@ "res/animator/mtrl_fab_transformation_sheet_expand_spec.xml": { "Size": 1888 }, - "res/color-v21/abc_btn_colored_borderless_text_material.xml": { - "Size": 464 - }, - "res/color-v23/abc_btn_colored_borderless_text_material.xml": { - "Size": 500 - }, - "res/color-v23/abc_btn_colored_text_material.xml": { - "Size": 500 - }, - "res/color-v23/abc_color_highlight_material.xml": { - "Size": 544 - }, - "res/color-v23/abc_tint_btn_checkable.xml": { - "Size": 624 - }, - "res/color-v23/abc_tint_default.xml": { - "Size": 1120 - }, - "res/color-v23/abc_tint_edittext.xml": { - "Size": 668 - }, - "res/color-v23/abc_tint_seek_thumb.xml": { - "Size": 500 - }, - "res/color-v23/abc_tint_spinner.xml": { - "Size": 668 + "res/animator-v21/design_appbar_state_list_animator.xml": { + "Size": 1216 }, - "res/color-v23/abc_tint_switch_track.xml": { - "Size": 664 + "res/anim-v21/design_bottom_sheet_slide_in.xml": { + "Size": 616 }, - "res/color-v23/design_tint_password_toggle.xml": { - "Size": 376 + "res/anim-v21/design_bottom_sheet_slide_out.xml": { + "Size": 616 }, "res/color/abc_background_cache_hint_selector_material_dark.xml": { "Size": 468 @@ -637,10 +604,10 @@ "res/color/mtrl_tabs_colored_ripple_color.xml": { "Size": 948 }, - "res/color/mtrl_tabs_icon_color_selector_colored.xml": { + "res/color/mtrl_tabs_icon_color_selector.xml": { "Size": 464 }, - "res/color/mtrl_tabs_icon_color_selector.xml": { + "res/color/mtrl_tabs_icon_color_selector_colored.xml": { "Size": 464 }, "res/color/mtrl_tabs_legacy_text_color_selector.xml": { @@ -658,159 +625,375 @@ "res/color/switch_thumb_material_light.xml": { "Size": 464 }, - "res/drawable-anydpi-v21/design_ic_visibility_off.xml": { - "Size": 1144 - }, - "res/drawable-anydpi-v21/design_ic_visibility.xml": { - "Size": 540 + "res/color-v21/abc_btn_colored_borderless_text_material.xml": { + "Size": 464 }, - "res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png": { - "Size": 272 + "res/color-v23/abc_btn_colored_borderless_text_material.xml": { + "Size": 500 }, - "res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png": { - "Size": 227 + "res/color-v23/abc_btn_colored_text_material.xml": { + "Size": 500 }, - "res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png": { - "Size": 404 + "res/color-v23/abc_color_highlight_material.xml": { + "Size": 544 }, - "res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png": { - "Size": 464 + "res/color-v23/abc_tint_btn_checkable.xml": { + "Size": 624 }, - "res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png": { - "Size": 563 + "res/color-v23/abc_tint_default.xml": { + "Size": 1120 }, - "res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png": { - "Size": 1096 + "res/color-v23/abc_tint_edittext.xml": { + "Size": 668 }, - "res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png": { - "Size": 1243 + "res/color-v23/abc_tint_seek_thumb.xml": { + "Size": 500 }, - "res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png": { - "Size": 226 + "res/color-v23/abc_tint_spinner.xml": { + "Size": 668 }, - "res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png": { - "Size": 171 + "res/color-v23/abc_tint_switch_track.xml": { + "Size": 664 }, - "res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png": { - "Size": 202 + "res/color-v23/design_tint_password_toggle.xml": { + "Size": 376 }, - "res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png": { - "Size": 404 + "res/drawable/abc_btn_borderless_material.xml": { + "Size": 588 }, - "res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png": { - "Size": 226 + "res/drawable/abc_btn_check_material.xml": { + "Size": 464 }, - "res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png": { - "Size": 215 + "res/drawable/abc_btn_check_material_anim.xml": { + "Size": 816 }, - "res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png": { - "Size": 389 + "res/drawable/abc_btn_colored_material.xml": { + "Size": 344 }, - "res/drawable-hdpi-v4/abc_ic_star_black_16dp.png": { - "Size": 263 + "res/drawable/abc_btn_default_mtrl_shape.xml": { + "Size": 932 }, - "res/drawable-hdpi-v4/abc_ic_star_black_36dp.png": { - "Size": 522 + "res/drawable/abc_btn_radio_material.xml": { + "Size": 464 }, - "res/drawable-hdpi-v4/abc_ic_star_black_48dp.png": { - "Size": 668 + "res/drawable/abc_btn_radio_material_anim.xml": { + "Size": 816 }, - "res/drawable-hdpi-v4/abc_ic_star_half_black_16dp.png": { - "Size": 197 + "res/drawable/abc_cab_background_internal_bg.xml": { + "Size": 372 }, - "res/drawable-hdpi-v4/abc_ic_star_half_black_36dp.png": { - "Size": 328 + "res/drawable/abc_cab_background_top_material.xml": { + "Size": 336 }, - "res/drawable-hdpi-v4/abc_ic_star_half_black_48dp.png": { - "Size": 431 + "res/drawable/abc_dialog_material_background.xml": { + "Size": 716 }, - "res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png": { - "Size": 167 + "res/drawable/abc_edit_text_material.xml": { + "Size": 868 }, - "res/drawable-hdpi-v4/abc_list_focused_holo.9.png": { - "Size": 244 + "res/drawable/abc_ic_ab_back_material.xml": { + "Size": 692 }, - "res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png": { - "Size": 212 + "res/drawable/abc_ic_arrow_drop_right_black_24dp.xml": { + "Size": 1000 }, - "res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png": { - "Size": 208 + "res/drawable/abc_ic_clear_material.xml": { + "Size": 684 }, - "res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png": { - "Size": 208 + "res/drawable/abc_ic_go_search_api_material.xml": { + "Size": 640 }, - "res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png": { - "Size": 228 + "res/drawable/abc_ic_menu_overflow_material.xml": { + "Size": 792 }, - "res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png": { - "Size": 229 + "res/drawable/abc_ic_search_api_material.xml": { + "Size": 812 }, - "res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png": { - "Size": 738 + "res/drawable/abc_ic_voice_search_api_material.xml": { + "Size": 828 }, - "res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png": { - "Size": 1098 + "res/drawable/abc_item_background_holo_dark.xml": { + "Size": 1012 }, - "res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png": { - "Size": 201 + "res/drawable/abc_item_background_holo_light.xml": { + "Size": 1012 }, - "res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png": { - "Size": 196 + "res/drawable/abc_list_divider_material.xml": { + "Size": 480 }, - "res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png": { - "Size": 272 + "res/drawable/abc_list_selector_background_transition_holo_dark.xml": { + "Size": 424 }, - "res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png": { - "Size": 205 + "res/drawable/abc_list_selector_background_transition_holo_light.xml": { + "Size": 424 }, - "res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png": { - "Size": 196 + "res/drawable/abc_list_selector_holo_dark.xml": { + "Size": 1064 }, - "res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png": { - "Size": 345 + "res/drawable/abc_list_selector_holo_light.xml": { + "Size": 1064 }, - "res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png": { - "Size": 484 + "res/drawable/abc_ratingbar_indicator_material.xml": { + "Size": 664 }, - "res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png": { - "Size": 190 + "res/drawable/abc_ratingbar_material.xml": { + "Size": 664 }, - "res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_dark.png": { - "Size": 278 + "res/drawable/abc_ratingbar_small_material.xml": { + "Size": 664 }, - "res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_light.png": { - "Size": 278 + "res/drawable/abc_seekbar_thumb_material.xml": { + "Size": 1100 }, - "res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_dark.png": { - "Size": 398 + "res/drawable/abc_seekbar_tick_mark_material.xml": { + "Size": 516 }, - "res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_light.png": { - "Size": 396 + "res/drawable/abc_seekbar_track_material.xml": { + "Size": 1408 }, - "res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_dark.png": { - "Size": 263 + "res/drawable/abc_spinner_textfield_background_material.xml": { + "Size": 1160 }, - "res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_light.png": { - "Size": 262 + "res/drawable/abc_switch_thumb_material.xml": { + "Size": 464 }, - "res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png": { - "Size": 186 + "res/drawable/abc_tab_indicator_material.xml": { + "Size": 468 }, - "res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png": { - "Size": 192 + "res/drawable/abc_text_cursor_material.xml": { + "Size": 516 }, - "res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png": { - "Size": 178 + "res/drawable/abc_textfield_search_material.xml": { + "Size": 756 }, - "res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { - "Size": 178 + "res/drawable/abc_vector_test.xml": { + "Size": 612 }, - "res/drawable-hdpi-v4/design_ic_visibility_off.png": { - "Size": 507 + "res/drawable/btn_checkbox_checked_mtrl.xml": { + "Size": 2688 + }, + "res/drawable/btn_checkbox_checked_to_unchecked_mtrl_animation.xml": { + "Size": 688 + }, + "res/drawable/btn_checkbox_unchecked_mtrl.xml": { + "Size": 2660 + }, + "res/drawable/btn_checkbox_unchecked_to_checked_mtrl_animation.xml": { + "Size": 688 + }, + "res/drawable/btn_radio_off_mtrl.xml": { + "Size": 1728 + }, + "res/drawable/btn_radio_off_to_on_mtrl_animation.xml": { + "Size": 680 + }, + "res/drawable/btn_radio_on_mtrl.xml": { + "Size": 1656 + }, + "res/drawable/btn_radio_on_to_off_mtrl_animation.xml": { + "Size": 680 + }, + "res/drawable/design_bottom_navigation_item_background.xml": { + "Size": 784 + }, + "res/drawable/design_fab_background.xml": { + "Size": 372 + }, + "res/drawable/design_password_eye.xml": { + "Size": 464 + }, + "res/drawable/design_snackbar_background.xml": { + "Size": 484 + }, + "res/drawable/ic_mtrl_chip_checked_black.xml": { + "Size": 600 + }, + "res/drawable/ic_mtrl_chip_checked_circle.xml": { + "Size": 940 + }, + "res/drawable/ic_mtrl_chip_close_circle.xml": { + "Size": 808 + }, + "res/drawable/mtrl_snackbar_background.xml": { + "Size": 484 + }, + "res/drawable/mtrl_tabs_default_indicator.xml": { + "Size": 628 + }, + "res/drawable/navigation_empty_icon.xml": { + "Size": 516 + }, + "res/drawable/notification_bg.xml": { + "Size": 532 + }, + "res/drawable/notification_bg_low.xml": { + "Size": 532 + }, + "res/drawable/notification_icon_background.xml": { + "Size": 372 + }, + "res/drawable/notification_tile_bg.xml": { + "Size": 304 + }, + "res/drawable/tooltip_frame_dark.xml": { + "Size": 484 + }, + "res/drawable/tooltip_frame_light.xml": { + "Size": 484 + }, + "res/drawable-anydpi-v21/design_ic_visibility.xml": { + "Size": 540 + }, + "res/drawable-anydpi-v21/design_ic_visibility_off.xml": { + "Size": 1144 + }, + "res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png": { + "Size": 272 + }, + "res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png": { + "Size": 227 + }, + "res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png": { + "Size": 404 + }, + "res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png": { + "Size": 464 + }, + "res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png": { + "Size": 563 + }, + "res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png": { + "Size": 1096 + }, + "res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png": { + "Size": 1243 + }, + "res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png": { + "Size": 226 + }, + "res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png": { + "Size": 171 + }, + "res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png": { + "Size": 202 + }, + "res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png": { + "Size": 404 + }, + "res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png": { + "Size": 226 + }, + "res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png": { + "Size": 215 + }, + "res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png": { + "Size": 389 + }, + "res/drawable-hdpi-v4/abc_ic_star_black_16dp.png": { + "Size": 263 + }, + "res/drawable-hdpi-v4/abc_ic_star_black_36dp.png": { + "Size": 522 + }, + "res/drawable-hdpi-v4/abc_ic_star_black_48dp.png": { + "Size": 668 + }, + "res/drawable-hdpi-v4/abc_ic_star_half_black_16dp.png": { + "Size": 197 + }, + "res/drawable-hdpi-v4/abc_ic_star_half_black_36dp.png": { + "Size": 328 + }, + "res/drawable-hdpi-v4/abc_ic_star_half_black_48dp.png": { + "Size": 431 + }, + "res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png": { + "Size": 167 + }, + "res/drawable-hdpi-v4/abc_list_focused_holo.9.png": { + "Size": 244 + }, + "res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png": { + "Size": 212 + }, + "res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png": { + "Size": 208 + }, + "res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png": { + "Size": 208 + }, + "res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png": { + "Size": 228 + }, + "res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png": { + "Size": 229 + }, + "res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png": { + "Size": 738 + }, + "res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png": { + "Size": 1098 + }, + "res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png": { + "Size": 201 + }, + "res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png": { + "Size": 196 + }, + "res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png": { + "Size": 272 + }, + "res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png": { + "Size": 205 + }, + "res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png": { + "Size": 196 + }, + "res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png": { + "Size": 345 + }, + "res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png": { + "Size": 484 + }, + "res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png": { + "Size": 190 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_dark.png": { + "Size": 278 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_light.png": { + "Size": 278 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_dark.png": { + "Size": 398 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_light.png": { + "Size": 396 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_dark.png": { + "Size": 263 + }, + "res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_light.png": { + "Size": 262 + }, + "res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png": { + "Size": 186 + }, + "res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png": { + "Size": 192 + }, + "res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png": { + "Size": 178 + }, + "res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { + "Size": 178 }, "res/drawable-hdpi-v4/design_ic_visibility.png": { "Size": 470 }, + "res/drawable-hdpi-v4/design_ic_visibility_off.png": { + "Size": 507 + }, "res/drawable-hdpi-v4/icon.png": { "Size": 4791 }, @@ -820,12 +1003,12 @@ "res/drawable-hdpi-v4/notification_bg_low_pressed.9.png": { "Size": 225 }, - "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": { - "Size": 225 - }, "res/drawable-hdpi-v4/notification_bg_normal.9.png": { "Size": 212 }, + "res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png": { + "Size": 225 + }, "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": { "Size": 107 }, @@ -1015,12 +1198,12 @@ "res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 178 }, - "res/drawable-mdpi-v4/design_ic_visibility_off.png": { - "Size": 351 - }, "res/drawable-mdpi-v4/design_ic_visibility.png": { "Size": 309 }, + "res/drawable-mdpi-v4/design_ic_visibility_off.png": { + "Size": 351 + }, "res/drawable-mdpi-v4/icon.png": { "Size": 2200 }, @@ -1030,12 +1213,12 @@ "res/drawable-mdpi-v4/notification_bg_low_pressed.9.png": { "Size": 223 }, - "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": { - "Size": 223 - }, "res/drawable-mdpi-v4/notification_bg_normal.9.png": { "Size": 215 }, + "res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png": { + "Size": 223 + }, "res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png": { "Size": 98 }, @@ -1243,12 +1426,12 @@ "res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 182 }, - "res/drawable-xhdpi-v4/design_ic_visibility_off.png": { - "Size": 629 - }, "res/drawable-xhdpi-v4/design_ic_visibility.png": { "Size": 593 }, + "res/drawable-xhdpi-v4/design_ic_visibility_off.png": { + "Size": 629 + }, "res/drawable-xhdpi-v4/icon.png": { "Size": 7462 }, @@ -1258,12 +1441,12 @@ "res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png": { "Size": 252 }, - "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": { - "Size": 247 - }, "res/drawable-xhdpi-v4/notification_bg_normal.9.png": { "Size": 221 }, + "res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png": { + "Size": 247 + }, "res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png": { "Size": 138 }, @@ -1408,12 +1591,12 @@ "res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 186 }, - "res/drawable-xxhdpi-v4/design_ic_visibility_off.png": { - "Size": 884 - }, "res/drawable-xxhdpi-v4/design_ic_visibility.png": { "Size": 868 }, + "res/drawable-xxhdpi-v4/design_ic_visibility_off.png": { + "Size": 884 + }, "res/drawable-xxhdpi-v4/icon.png": { "Size": 13092 }, @@ -1495,207 +1678,15 @@ "res/drawable-xxxhdpi-v4/abc_text_select_handle_right_mtrl_light.png": { "Size": 513 }, - "res/drawable-xxxhdpi-v4/design_ic_visibility_off.png": { - "Size": 1201 - }, "res/drawable-xxxhdpi-v4/design_ic_visibility.png": { "Size": 1155 }, + "res/drawable-xxxhdpi-v4/design_ic_visibility_off.png": { + "Size": 1201 + }, "res/drawable-xxxhdpi-v4/icon.png": { "Size": 20118 }, - "res/drawable/abc_btn_borderless_material.xml": { - "Size": 588 - }, - "res/drawable/abc_btn_check_material_anim.xml": { - "Size": 816 - }, - "res/drawable/abc_btn_check_material.xml": { - "Size": 464 - }, - "res/drawable/abc_btn_colored_material.xml": { - "Size": 344 - }, - "res/drawable/abc_btn_default_mtrl_shape.xml": { - "Size": 932 - }, - "res/drawable/abc_btn_radio_material_anim.xml": { - "Size": 816 - }, - "res/drawable/abc_btn_radio_material.xml": { - "Size": 464 - }, - "res/drawable/abc_cab_background_internal_bg.xml": { - "Size": 372 - }, - "res/drawable/abc_cab_background_top_material.xml": { - "Size": 336 - }, - "res/drawable/abc_dialog_material_background.xml": { - "Size": 716 - }, - "res/drawable/abc_edit_text_material.xml": { - "Size": 868 - }, - "res/drawable/abc_ic_ab_back_material.xml": { - "Size": 692 - }, - "res/drawable/abc_ic_arrow_drop_right_black_24dp.xml": { - "Size": 1000 - }, - "res/drawable/abc_ic_clear_material.xml": { - "Size": 684 - }, - "res/drawable/abc_ic_go_search_api_material.xml": { - "Size": 640 - }, - "res/drawable/abc_ic_menu_overflow_material.xml": { - "Size": 792 - }, - "res/drawable/abc_ic_search_api_material.xml": { - "Size": 812 - }, - "res/drawable/abc_ic_voice_search_api_material.xml": { - "Size": 828 - }, - "res/drawable/abc_item_background_holo_dark.xml": { - "Size": 1012 - }, - "res/drawable/abc_item_background_holo_light.xml": { - "Size": 1012 - }, - "res/drawable/abc_list_divider_material.xml": { - "Size": 480 - }, - "res/drawable/abc_list_selector_background_transition_holo_dark.xml": { - "Size": 424 - }, - "res/drawable/abc_list_selector_background_transition_holo_light.xml": { - "Size": 424 - }, - "res/drawable/abc_list_selector_holo_dark.xml": { - "Size": 1064 - }, - "res/drawable/abc_list_selector_holo_light.xml": { - "Size": 1064 - }, - "res/drawable/abc_ratingbar_indicator_material.xml": { - "Size": 664 - }, - "res/drawable/abc_ratingbar_material.xml": { - "Size": 664 - }, - "res/drawable/abc_ratingbar_small_material.xml": { - "Size": 664 - }, - "res/drawable/abc_seekbar_thumb_material.xml": { - "Size": 1100 - }, - "res/drawable/abc_seekbar_tick_mark_material.xml": { - "Size": 516 - }, - "res/drawable/abc_seekbar_track_material.xml": { - "Size": 1408 - }, - "res/drawable/abc_spinner_textfield_background_material.xml": { - "Size": 1160 - }, - "res/drawable/abc_switch_thumb_material.xml": { - "Size": 464 - }, - "res/drawable/abc_tab_indicator_material.xml": { - "Size": 468 - }, - "res/drawable/abc_text_cursor_material.xml": { - "Size": 516 - }, - "res/drawable/abc_textfield_search_material.xml": { - "Size": 756 - }, - "res/drawable/abc_vector_test.xml": { - "Size": 612 - }, - "res/drawable/btn_checkbox_checked_mtrl.xml": { - "Size": 2688 - }, - "res/drawable/btn_checkbox_checked_to_unchecked_mtrl_animation.xml": { - "Size": 688 - }, - "res/drawable/btn_checkbox_unchecked_mtrl.xml": { - "Size": 2660 - }, - "res/drawable/btn_checkbox_unchecked_to_checked_mtrl_animation.xml": { - "Size": 688 - }, - "res/drawable/btn_radio_off_mtrl.xml": { - "Size": 1728 - }, - "res/drawable/btn_radio_off_to_on_mtrl_animation.xml": { - "Size": 680 - }, - "res/drawable/btn_radio_on_mtrl.xml": { - "Size": 1656 - }, - "res/drawable/btn_radio_on_to_off_mtrl_animation.xml": { - "Size": 680 - }, - "res/drawable/design_bottom_navigation_item_background.xml": { - "Size": 784 - }, - "res/drawable/design_fab_background.xml": { - "Size": 372 - }, - "res/drawable/design_password_eye.xml": { - "Size": 464 - }, - "res/drawable/design_snackbar_background.xml": { - "Size": 484 - }, - "res/drawable/ic_mtrl_chip_checked_black.xml": { - "Size": 600 - }, - "res/drawable/ic_mtrl_chip_checked_circle.xml": { - "Size": 940 - }, - "res/drawable/ic_mtrl_chip_close_circle.xml": { - "Size": 808 - }, - "res/drawable/mtrl_snackbar_background.xml": { - "Size": 484 - }, - "res/drawable/mtrl_tabs_default_indicator.xml": { - "Size": 628 - }, - "res/drawable/navigation_empty_icon.xml": { - "Size": 516 - }, - "res/drawable/notification_bg_low.xml": { - "Size": 532 - }, - "res/drawable/notification_bg.xml": { - "Size": 532 - }, - "res/drawable/notification_icon_background.xml": { - "Size": 372 - }, - "res/drawable/notification_tile_bg.xml": { - "Size": 304 - }, - "res/drawable/tooltip_frame_dark.xml": { - "Size": 484 - }, - "res/drawable/tooltip_frame_light.xml": { - "Size": 484 - }, - "res/interpolator-v21/mtrl_fast_out_linear_in.xml": { - "Size": 400 - }, - "res/interpolator-v21/mtrl_fast_out_slow_in.xml": { - "Size": 400 - }, - "res/interpolator-v21/mtrl_linear_out_slow_in.xml": { - "Size": 400 - }, "res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_0.xml": { "Size": 316 }, @@ -1723,53 +1714,20 @@ "res/interpolator/mtrl_fast_out_slow_in.xml": { "Size": 144 }, - "res/interpolator/mtrl_linear_out_slow_in.xml": { - "Size": 136 - }, "res/interpolator/mtrl_linear.xml": { "Size": 132 }, - "res/layout-sw600dp-v13/design_layout_snackbar.xml": { - "Size": 528 - }, - "res/layout-sw600dp-v13/mtrl_layout_snackbar.xml": { - "Size": 528 - }, - "res/layout-v16/notification_template_custom_big.xml": { - "Size": 3208 - }, - "res/layout-v21/abc_screen_toolbar.xml": { - "Size": 1504 - }, - "res/layout-v21/fallbacktoolbardonotuse.xml": { - "Size": 496 - }, - "res/layout-v21/notification_action_tombstone.xml": { - "Size": 1228 - }, - "res/layout-v21/notification_action.xml": { - "Size": 1052 - }, - "res/layout-v21/notification_template_custom_big.xml": { - "Size": 2456 - }, - "res/layout-v21/notification_template_icon_group.xml": { - "Size": 988 - }, - "res/layout-v21/toolbar.xml": { - "Size": 496 - }, - "res/layout-v22/abc_alert_dialog_button_bar_material.xml": { - "Size": 1584 + "res/interpolator/mtrl_linear_out_slow_in.xml": { + "Size": 136 }, - "res/layout-v26/abc_screen_toolbar.xml": { - "Size": 1560 + "res/interpolator-v21/mtrl_fast_out_linear_in.xml": { + "Size": 400 }, - "res/layout-watch-v20/abc_alert_dialog_button_bar_material.xml": { - "Size": 1208 + "res/interpolator-v21/mtrl_fast_out_slow_in.xml": { + "Size": 400 }, - "res/layout-watch-v20/abc_alert_dialog_title_material.xml": { - "Size": 1352 + "res/interpolator-v21/mtrl_linear_out_slow_in.xml": { + "Size": 400 }, "res/layout/abc_action_bar_title_item.xml": { "Size": 872 @@ -1789,12 +1747,12 @@ "res/layout/abc_action_mode_close_item_material.xml": { "Size": 840 }, - "res/layout/abc_activity_chooser_view_list_item.xml": { - "Size": 1304 - }, "res/layout/abc_activity_chooser_view.xml": { "Size": 1684 }, + "res/layout/abc_activity_chooser_view_list_item.xml": { + "Size": 1304 + }, "res/layout/abc_alert_dialog_button_bar_material.xml": { "Size": 1536 }, @@ -1834,12 +1792,12 @@ "res/layout/abc_screen_content_include.xml": { "Size": 548 }, - "res/layout/abc_screen_simple_overlay_action_mode.xml": { - "Size": 792 - }, "res/layout/abc_screen_simple.xml": { "Size": 832 }, + "res/layout/abc_screen_simple_overlay_action_mode.xml": { + "Size": 792 + }, "res/layout/abc_screen_toolbar.xml": { "Size": 1452 }, @@ -1873,12 +1831,12 @@ "res/layout/design_bottom_sheet_dialog.xml": { "Size": 1184 }, - "res/layout/design_layout_snackbar_include.xml": { - "Size": 1444 - }, "res/layout/design_layout_snackbar.xml": { "Size": 528 }, + "res/layout/design_layout_snackbar_include.xml": { + "Size": 1444 + }, "res/layout/design_layout_tab_icon.xml": { "Size": 408 }, @@ -1888,6 +1846,9 @@ "res/layout/design_menu_item_action_area.xml": { "Size": 320 }, + "res/layout/design_navigation_item.xml": { + "Size": 536 + }, "res/layout/design_navigation_item_header.xml": { "Size": 440 }, @@ -1897,15 +1858,12 @@ "res/layout/design_navigation_item_subheader.xml": { "Size": 564 }, - "res/layout/design_navigation_item.xml": { - "Size": 536 + "res/layout/design_navigation_menu.xml": { + "Size": 528 }, "res/layout/design_navigation_menu_item.xml": { "Size": 856 }, - "res/layout/design_navigation_menu.xml": { - "Size": 528 - }, "res/layout/design_text_input_password_icon.xml": { "Size": 564 }, @@ -1921,35 +1879,35 @@ "res/layout/main.xml": { "Size": 544 }, - "res/layout/mtrl_layout_snackbar_include.xml": { - "Size": 1404 - }, "res/layout/mtrl_layout_snackbar.xml": { "Size": 528 }, - "res/layout/notification_action_tombstone.xml": { - "Size": 1332 + "res/layout/mtrl_layout_snackbar_include.xml": { + "Size": 1404 }, "res/layout/notification_action.xml": { "Size": 1156 }, + "res/layout/notification_action_tombstone.xml": { + "Size": 1332 + }, "res/layout/notification_media_action.xml": { "Size": 564 }, "res/layout/notification_media_cancel_action.xml": { "Size": 744 }, + "res/layout/notification_template_big_media.xml": { + "Size": 1696 + }, "res/layout/notification_template_big_media_custom.xml": { "Size": 3044 }, - "res/layout/notification_template_big_media_narrow_custom.xml": { - "Size": 3216 - }, "res/layout/notification_template_big_media_narrow.xml": { "Size": 1824 }, - "res/layout/notification_template_big_media.xml": { - "Size": 1696 + "res/layout/notification_template_big_media_narrow_custom.xml": { + "Size": 3216 }, "res/layout/notification_template_icon_group.xml": { "Size": 392 @@ -1957,12 +1915,12 @@ "res/layout/notification_template_lines_media.xml": { "Size": 2872 }, - "res/layout/notification_template_media_custom.xml": { - "Size": 2756 - }, "res/layout/notification_template_media.xml": { "Size": 1292 }, + "res/layout/notification_template_media_custom.xml": { + "Size": 2756 + }, "res/layout/notification_template_part_chronometer.xml": { "Size": 440 }, @@ -1993,6 +1951,48 @@ "res/layout/toolbar.xml": { "Size": 452 }, + "res/layout-sw600dp-v13/design_layout_snackbar.xml": { + "Size": 528 + }, + "res/layout-sw600dp-v13/mtrl_layout_snackbar.xml": { + "Size": 528 + }, + "res/layout-v16/notification_template_custom_big.xml": { + "Size": 3208 + }, + "res/layout-v21/abc_screen_toolbar.xml": { + "Size": 1504 + }, + "res/layout-v21/fallbacktoolbardonotuse.xml": { + "Size": 496 + }, + "res/layout-v21/notification_action.xml": { + "Size": 1052 + }, + "res/layout-v21/notification_action_tombstone.xml": { + "Size": 1228 + }, + "res/layout-v21/notification_template_custom_big.xml": { + "Size": 2456 + }, + "res/layout-v21/notification_template_icon_group.xml": { + "Size": 988 + }, + "res/layout-v21/toolbar.xml": { + "Size": 496 + }, + "res/layout-v22/abc_alert_dialog_button_bar_material.xml": { + "Size": 1584 + }, + "res/layout-v26/abc_screen_toolbar.xml": { + "Size": 1560 + }, + "res/layout-watch-v20/abc_alert_dialog_button_bar_material.xml": { + "Size": 1208 + }, + "res/layout-watch-v20/abc_alert_dialog_title_material.xml": { + "Size": 1352 + }, "resources.arsc": { "Size": 341040 } From 6467cda58822b4405a8a105a3268bd5341230187 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 10 May 2021 06:41:46 -0500 Subject: [PATCH 09/13] Bump to xamarin/java.interop/main@4d0cba64 (#5895) Changes: https://github.com/xamarin/java.interop/compare/df4c5e7c...4d0cba64 * xamarin/java.interop@4d0cba64: [build] target net6.0 instead of netcoreapp3.1 (#829) * xamarin/java.interop@9444570b: [java-source-utils] Use mavenCentral, not jcenter (#830) * xamarin/java.interop@4ef50813: [Xamarin.Android.Tools.Bytecode] hide Kotlin internal nested types (#827) Other changes are required here to enable Java.Interop to target the `net6.0` target framework. --- .../automation/yaml-templates/setup-test-environment.yaml | 5 ++++- build-tools/create-packs/Microsoft.Android.Ref.proj | 2 +- .../xaprepare/xaprepare/Resources/JdkInfo.Windows.props.in | 1 + .../xaprepare/xaprepare/Steps/Step_GenerateFiles.Windows.cs | 3 +++ .../xaprepare/Steps/Step_PrepareExternalJavaInterop.Unix.cs | 5 +++++ external/Java.Interop | 2 +- .../Microsoft.Android.Sdk.ILLink.csproj | 2 +- tools/xabuild/XABuild.cs | 1 + 8 files changed, 17 insertions(+), 4 deletions(-) diff --git a/build-tools/automation/yaml-templates/setup-test-environment.yaml b/build-tools/automation/yaml-templates/setup-test-environment.yaml index 5bbd517ab85..c8978481cd3 100644 --- a/build-tools/automation/yaml-templates/setup-test-environment.yaml +++ b/build-tools/automation/yaml-templates/setup-test-environment.yaml @@ -19,12 +19,15 @@ steps: parameters: provisionExtraArgs: ${{ parameters.provisionExtraArgs }} -- script: echo "##vso[task.setvariable variable=JI_JAVA_HOME]$HOME/Library/Android/${{ parameters.jdkTestFolder }}" +- script: | + echo "##vso[task.setvariable variable=JI_JAVA_HOME]$HOME/Library/Android/${{ parameters.jdkTestFolder }}" + echo "##vso[task.setvariable variable=DOTNET_TOOL_PATH]$HOME/Library/Android/dotnet/dotnet" displayName: set JI_JAVA_HOME condition: and(succeeded(), eq(variables['agent.os'], 'Darwin')) - script: | echo ##vso[task.setvariable variable=JI_JAVA_HOME]%USERPROFILE%\android-toolchain\${{ parameters.jdkTestFolder }} + echo ##vso[task.setvariable variable=DOTNET_TOOL_PATH]%USERPROFILE%\android-toolchain\dotnet\dotnet.exe displayName: set JI_JAVA_HOME condition: and(succeeded(), eq(variables['agent.os'], 'Windows_NT')) diff --git a/build-tools/create-packs/Microsoft.Android.Ref.proj b/build-tools/create-packs/Microsoft.Android.Ref.proj index 9b063430f99..135281612ae 100644 --- a/build-tools/create-packs/Microsoft.Android.Ref.proj +++ b/build-tools/create-packs/Microsoft.Android.Ref.proj @@ -31,7 +31,7 @@ by projects that use the Microsoft.Android framework in .NET 5. - <_AndroidRefPackAssemblies Include="$(JavaInteropSourceDirectory)\bin\$(Configuration)-netcoreapp3.1\ref\Java.Interop.dll" /> + <_AndroidRefPackAssemblies Include="$(JavaInteropSourceDirectory)\bin\$(Configuration)-net6.0\ref\Java.Interop.dll" /> <_AndroidRefPackAssemblies Include="$(_MonoAndroidNETOutputDir)ref\Mono.Android.dll" /> <_AndroidRefPackAssemblies Include="$(_MonoAndroidNETOutputDir)ref\Mono.Android.Export.dll" /> diff --git a/build-tools/xaprepare/xaprepare/Resources/JdkInfo.Windows.props.in b/build-tools/xaprepare/xaprepare/Resources/JdkInfo.Windows.props.in index 7514a8e46be..c864935858e 100644 --- a/build-tools/xaprepare/xaprepare/Resources/JdkInfo.Windows.props.in +++ b/build-tools/xaprepare/xaprepare/Resources/JdkInfo.Windows.props.in @@ -16,5 +16,6 @@ @javac@ @jar@ @javahome@ + @dotnet@ diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.Windows.cs b/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.Windows.cs index 43a7bcc9456..670deed757b 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.Windows.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_GenerateFiles.Windows.cs @@ -15,6 +15,8 @@ partial void AddOSSpecificSteps (Context context, List steps) string jdkJvmPath = Path.Combine (javaSdkDirectory, "jre", "bin", "server", "jvm.dll"); string jdkIncludePathShared = Path.Combine (javaSdkDirectory, "include"); string jdkIncludePathOS = Path.Combine (jdkIncludePathShared, "win32"); + var dotnetPath = context.Properties.GetRequiredValue (KnownProperties.DotNetPreviewPath); + var dotnetTool = Path.Combine (dotnetPath, "dotnet"); var replacements = new Dictionary (StringComparer.Ordinal) { { "@JdkJvmPath@", jdkJvmPath }, @@ -24,6 +26,7 @@ partial void AddOSSpecificSteps (Context context, List steps) { "@java@", context.OS.JavaPath }, { "@jar@", context.OS.JarPath }, { "@javahome@", context.OS.JavaHome }, + { "@dotnet@", dotnetTool }, }; var step = new GeneratedPlaceholdersFile ( diff --git a/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternalJavaInterop.Unix.cs b/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternalJavaInterop.Unix.cs index b676976e7dc..7082ac1ae21 100644 --- a/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternalJavaInterop.Unix.cs +++ b/build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternalJavaInterop.Unix.cs @@ -9,6 +9,9 @@ partial class Step_PrepareExternalJavaInterop async Task ExecuteOSSpecific (Context context) { string javaInteropDir = context.Properties.GetRequiredValue (KnownProperties.JavaInteropFullPath); + var dotnetPath = context.Properties.GetRequiredValue (KnownProperties.DotNetPreviewPath); + var dotnetTool = Path.Combine (dotnetPath, "dotnet"); + Log.StatusLine (); var make = new MakeRunner (context) { NoParallelJobs = true @@ -23,6 +26,7 @@ async Task ExecuteOSSpecific (Context context) $"JI_JAVA_HOME={context.OS.JavaHome}", $"JAVA_HOME={context.OS.JavaHome}", $"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}", + $"DOTNET_TOOL_PATH={dotnetTool}" } ); if (!result) @@ -36,6 +40,7 @@ async Task ExecuteOSSpecific (Context context) $"bin/Build{context.Configuration}/JdkInfo.props", $"CONFIGURATION={context.Configuration}", $"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}", + $"DOTNET_TOOL_PATH={dotnetTool}" } ); return result; diff --git a/external/Java.Interop b/external/Java.Interop index df4c5e7c3b7..4d0cba64f4f 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit df4c5e7c3b703bbf8a1f332b34d12ae6c2c99a8c +Subproject commit 4d0cba64f4fcaa766c3a406dc4f43788a08ecb9c diff --git a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj index 8e12748a8f1..f0c4f10354e 100644 --- a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj +++ b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj @@ -8,7 +8,7 @@ - + diff --git a/tools/xabuild/XABuild.cs b/tools/xabuild/XABuild.cs index 18b5a539170..8023b0ab2b0 100644 --- a/tools/xabuild/XABuild.cs +++ b/tools/xabuild/XABuild.cs @@ -119,6 +119,7 @@ static void CreateConfig (XABuildPaths paths) xml.Load (reader); var toolsets = xml.SelectSingleNode ("configuration/msbuildToolsets/toolset"); + SetProperty (toolsets, "XABuild", "true"); // Enables MSBuild .targets to check for xabuild SetProperty (toolsets, "VsInstallRoot", paths.VsInstallRoot); SetProperty (toolsets, "MSBuildToolsPath", paths.MSBuildBin); SetProperty (toolsets, "MSBuildToolsPath32", paths.MSBuildBin); From 2538c236c8850c52dec51e2a53043ae286bd1dc1 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 10 May 2021 14:32:06 -0500 Subject: [PATCH 10/13] [One .NET] remove EnableWorkloadResolver.sentinel (#5909) This feature flag is now on by default in .NET 6.0.100-preview.4.21253.14 and higher. We should stop generating `EnableWorkloadResolver.sentinel`, as it strongly ties our installers to a specific version of the .NET SDK. --- .../GenerateWixFile.cs | 29 ------------------- .../create-dotnet-msi.csproj | 1 - .../create-dotnet-pkg.csproj | 1 - .../create-packs/Directory.Build.targets | 7 ----- 4 files changed, 38 deletions(-) diff --git a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs index bef793b76f2..6c8f6f118da 100644 --- a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs +++ b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/GenerateWixFile.cs @@ -23,9 +23,6 @@ public class GenerateWixFile : Task [Required] public string DotNetPath { get; set; } - [Required] - public string DotNetVersion { get; set; } - [Required] public string MSIVersion { get; set; } @@ -44,38 +41,12 @@ public override bool Execute () // Components componentWriter.WriteStartElement ("ComponentGroup"); componentWriter.WriteAttributeString ("Id", "ProductComponents"); - componentWriter.WriteStartElement ("ComponentRef"); - componentWriter.WriteAttributeString ("Id", "EnableWorkloadResolver"); - componentWriter.WriteEndElement (); // // dotnet packWriter.WriteStartElement ("Directory"); packWriter.WriteAttributeString ("Id", "dotnet"); packWriter.WriteAttributeString ("Name", "dotnet"); - // sdk - packWriter.WriteStartElement ("Directory"); - packWriter.WriteAttributeString ("Id", "sdk"); - packWriter.WriteAttributeString ("Name", "sdk"); - - // DOTNETVERSION - packWriter.WriteStartElement ("Directory"); - packWriter.WriteAttributeString ("Id", "DOTNETVERSION"); - packWriter.WriteAttributeString ("Name", DotNetVersion); - packWriter.WriteAttributeString ("FileSource", Path.Combine (DotNetPath, "sdk", DotNetVersion)); - - // EnableWorkloadResolver - packWriter.WriteStartElement ("Component"); - packWriter.WriteAttributeString ("Id", "EnableWorkloadResolver"); - packWriter.WriteStartElement ("File"); - packWriter.WriteAttributeString ("Id", "EnableWorkloadResolver"); - packWriter.WriteAttributeString ("Name", "EnableWorkloadResolver.sentinel"); - packWriter.WriteAttributeString ("KeyPath", "yes"); - packWriter.WriteEndElement (); // - packWriter.WriteEndElement (); // - packWriter.WriteEndElement (); // DOTNETVERSION - packWriter.WriteEndElement (); // sdk - // sdk-manifests var sdk_manifests_root = Path.Combine (DotNetPath, "sdk-manifests"); packWriter.WriteStartElement ("Directory"); diff --git a/build-tools/create-dotnet-msi/create-dotnet-msi.csproj b/build-tools/create-dotnet-msi/create-dotnet-msi.csproj index 57460d7d9ec..4e77acfbcac 100644 --- a/build-tools/create-dotnet-msi/create-dotnet-msi.csproj +++ b/build-tools/create-dotnet-msi/create-dotnet-msi.csproj @@ -74,7 +74,6 @@ Template="$(_WixTemplate)" DestinationFile="$(_WixFile)" DotNetPath="$(DotNetPreviewPath)" - DotNetVersion="$(MicrosoftDotnetSdkInternalPackageVersion)" MSIVersion="$(AndroidMSIVersion)" /> diff --git a/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj b/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj index 9fdd0551b59..3fbe62444d6 100644 --- a/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj +++ b/build-tools/create-dotnet-pkg/create-dotnet-pkg.csproj @@ -38,7 +38,6 @@ $(PayloadDir)\usr\local\share\dotnet\ - <_FilesToCopy Include="$(DotNetPreviewPath)\sdk\$(MicrosoftDotnetSdkInternalPackageVersion)\EnableWorkloadResolver.sentinel" /> <_FilesToCopy Include="$(DotNetPreviewPath)\sdk-manifests\$(DotNetPreviewVersionBand)\Microsoft.NET.Sdk.Android\**\*" /> <_FilesToCopy Include="$(DotNetPreviewPath)\packs\Microsoft.Android.Ref\**\*" /> <_FilesToCopy Include="$(DotNetPreviewPath)\packs\Microsoft.Android.Sdk.Darwin\**\*" /> diff --git a/build-tools/create-packs/Directory.Build.targets b/build-tools/create-packs/Directory.Build.targets index 93702405448..33951578d3a 100644 --- a/build-tools/create-packs/Directory.Build.targets +++ b/build-tools/create-packs/Directory.Build.targets @@ -13,7 +13,6 @@ <_MonoAndroidNETOutputDir>$(XAInstallPrefix)xbuild-frameworks\Microsoft.Android\net6.0\ - <_WorkloadResolverFlagFile>$(DotNetPreviewPath)sdk\$(MicrosoftDotnetSdkInternalPackageVersion)\EnableWorkloadResolver.sentinel @@ -133,11 +132,6 @@ /> - - @@ -148,7 +142,6 @@ <_PackFilesToDelete Include="$(DotNetPreviewPath)template-packs\Microsoft.Android.Templates.*.nupkg" /> - From 5474cbd34581351955f8674d6b409b1be38b6bdd Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Mon, 10 May 2021 15:21:56 -0500 Subject: [PATCH 11/13] [Mono.Android] Android API-S Developer Preview 3 Binding (#5912) Context: https://developer.android.com/about/versions/12/overview Context: https://android-developers.googleblog.com/search/label/Android12 Android 12 [Developer Preview 3 has been released][0]. * [API diff vs. Developer Preview 2][1] * [API diff vs. API-30][2] Google's documented [timeline for Android 12][3] is unchanged vs. commit 11c30acc: * May: Beta 1 * June-July: Beta 2, Beta 3 * August: Beta 4 This contains the final APIs and official SDK. [0]: https://android-developers.googleblog.com/search/label/Android12 [1]: https://developer.android.com/sdk/api_diff/s-dp3-incr/changes [2]: https://developer.android.com/sdk/api_diff/s-dp3/changes [3]: https://developer.android.com/about/versions/12/overview#timeline --- Documentation/workflow/HowToAddNewApiLevel.md | 1 + .../ConfigAndData/Dependencies/AndroidToolchain.cs | 2 +- src/Mono.Android/metadata | 8 ++++++++ tests/api-compatibility/acceptable-breakages-v11.0.99.txt | 3 +++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/workflow/HowToAddNewApiLevel.md b/Documentation/workflow/HowToAddNewApiLevel.md index 570a12d7381..d8fdd239207 100644 --- a/Documentation/workflow/HowToAddNewApiLevel.md +++ b/Documentation/workflow/HowToAddNewApiLevel.md @@ -40,6 +40,7 @@ the new platform will be downloaded to your local Android SDK. - Read the note at the bottom of `/src/Mono.Android/metadata` that has a few lines that must be copy/pasted for new API levels - Add required metadata fixes in `/src/Mono.Android/metadata` until `Mono.Android.csproj` builds + - Check that new package/namespaces are properly cased ### ApiCompat diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs index 01263d460e2..40df0a9e157 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs @@ -62,7 +62,7 @@ public AndroidToolchain () new AndroidPlatformComponent ("platform-28_r04", apiLevel: "28", pkgRevision: "4"), new AndroidPlatformComponent ("platform-29_r01", apiLevel: "29", pkgRevision: "1"), new AndroidPlatformComponent ("platform-30_r01", apiLevel: "30", pkgRevision: "1"), - new AndroidPlatformComponent ("platform-S_r02", apiLevel: "S", pkgRevision: "2"), + new AndroidPlatformComponent ("platform-S_r03", apiLevel: "S", pkgRevision: "3"), new AndroidToolchainComponent ("sources-30_r01", destDir: Path.Combine ("platforms", $"android-30", "src"), pkgRevision: "1", dependencyType: AndroidToolchainComponentType.BuildDependency), diff --git a/src/Mono.Android/metadata b/src/Mono.Android/metadata index 3f09fd1bd1d..36753ac235d 100644 --- a/src/Mono.Android/metadata +++ b/src/Mono.Android/metadata @@ -1643,6 +1643,14 @@ powerRequirement mode + + Android.App.AppSearch + Android.App.AppSearch.Exceptions + Android.Locations.Provider + Android.Net.IpSec.Ike + Android.Net.IpSec.Ike.Exceptions + Android.Views.DisplayHash + public diff --git a/tests/api-compatibility/acceptable-breakages-v11.0.99.txt b/tests/api-compatibility/acceptable-breakages-v11.0.99.txt index 0c7996f3f69..ae429a610f4 100644 --- a/tests/api-compatibility/acceptable-breakages-v11.0.99.txt +++ b/tests/api-compatibility/acceptable-breakages-v11.0.99.txt @@ -3,3 +3,6 @@ CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.Int32 An CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.ContactsContract.DataColumns.CarrierPresence' changed from '[ObsoleteAttribute("Use 'Android.Provider.ContactsContract.IDataColumns.CarrierPresence'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation. InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Java.Lang.IDeprecated.ForRemoval()' is present in the implementation but not in the contract. InterfacesShouldHaveSameMembers : Interface member 'public System.String Java.Lang.IDeprecated.Since()' is present in the implementation but not in the contract. +CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.DateAdded' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.DateAdded'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation. +CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.DateModified' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.DateModified'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation. +CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.Name' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.Name'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation. From a321d74a514e04c6a8f036a296f2e4731aa393b2 Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Mon, 10 May 2021 15:23:30 -0500 Subject: [PATCH 12/13] Bump to xamarin/java.interop/main@12e670a (#5923) Changes: https://github.com/xamarin/java.interop/compare/4d0cba64f4fcaa766c3a406dc4f43788a08ecb9c...12e670a8560f69581d3a3adf0a9d91e8ce8c9afa * xamarin/java.interop@12e670a8: [generator] Support binding non-const Java interface fields (#831) * xamarin/java.interop@c925b784: [generator] Support varargs arrays in event listener methods (#832) --- external/Java.Interop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Java.Interop b/external/Java.Interop index 4d0cba64f4f..12e670a8560 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 4d0cba64f4fcaa766c3a406dc4f43788a08ecb9c +Subproject commit 12e670a8560f69581d3a3adf0a9d91e8ce8c9afa From 9e5640608eae670aa88e6f3467be5c86baf2b723 Mon Sep 17 00:00:00 2001 From: moljac Date: Wed, 5 May 2021 16:07:28 +0200 Subject: [PATCH 13/13] jcenter/jfrog url replacements --- .../Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs | 4 ++-- .../Tests/Xamarin.Android.Build.Tests/BuildTest.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs index 81d91ca5ece..917285ab723 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs @@ -114,7 +114,7 @@ public void BuildAarBindingLibraryStandalone (string classParser) IsRelease = true, }; proj.Jars.Add (new AndroidItem.AndroidLibrary ("Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); proj.AndroidClassParser = classParser; using (var b = CreateDllBuilder ()) { @@ -498,7 +498,7 @@ public void DesignTimeBuild (string classParser) AndroidClassParser = classParser }; proj.Jars.Add (new AndroidItem.LibraryProjectZip ("Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); using (var b = CreateDllBuilder ()) { Assert.IsTrue (b.DesignTimeBuild (proj), "design-time build should have succeeded."); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index f7ba75aa2ba..6c2da34aeb4 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -461,7 +461,7 @@ public void SkipConvertResourcesCases ([Values (false, true)] bool useAapt2) var proj = new XamarinFormsAndroidApplicationProject (); proj.AndroidUseAapt2 = useAapt2; proj.OtherBuildItems.Add (new BuildItem ("AndroidAarLibrary", "Jars\\material-menu-1.1.0.aar") { - WebContent = "https://repo.jfrog.org/artifactory/libs-release-bintray/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" + WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar" }); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded.");