diff --git a/.github/scripts/RunTests.ps1 b/.github/scripts/RunTests.ps1 index 3671a6a5b6b9..1ebb0ca23bd7 100644 --- a/.github/scripts/RunTests.ps1 +++ b/.github/scripts/RunTests.ps1 @@ -147,7 +147,6 @@ $UnitTestProjects = [ordered]@{ "Essentials" = "src/Essentials/test/UnitTests/Essentials.UnitTests.csproj" "Graphics" = "src/Graphics/tests/Graphics.Tests/Graphics.Tests.csproj" "Resizetizer" = "src/SingleProject/Resizetizer/test/UnitTests/Resizetizer.UnitTests.csproj" - "Compatibility" = "src/Compatibility/Core/tests/Compatibility.UnitTests/Compatibility.Core.UnitTests.csproj" "DualScreen" = "src/Controls/Foldable/test/Controls.DualScreen.UnitTests.csproj" "AI" = "src/AI/tests/Essentials.AI.UnitTests/Essentials.AI.UnitTests.csproj" } diff --git a/.github/scripts/shared/Detect-TestsInDiff.ps1 b/.github/scripts/shared/Detect-TestsInDiff.ps1 index b7a141d4e034..86ebeb0c7051 100644 --- a/.github/scripts/shared/Detect-TestsInDiff.ps1 +++ b/.github/scripts/shared/Detect-TestsInDiff.ps1 @@ -109,7 +109,6 @@ $UnitTestProjects = @{ "Essentials.UnitTests" = "src/Essentials/test/UnitTests/" "Graphics.Tests" = "src/Graphics/tests/Graphics.Tests/" "Resizetizer.UnitTests" = "src/SingleProject/Resizetizer/test/UnitTests/" - "Compatibility.Core.UnitTests" = "src/Compatibility/Core/tests/Compatibility.UnitTests/" "Essentials.AI.UnitTests" = "src/AI/tests/Essentials.AI.UnitTests/" } @@ -122,7 +121,6 @@ $UnitTestProjectPaths = @{ "Essentials.UnitTests" = "src/Essentials/test/UnitTests/Essentials.UnitTests.csproj" "Graphics.Tests" = "src/Graphics/tests/Graphics.Tests/Graphics.Tests.csproj" "Resizetizer.UnitTests" = "src/SingleProject/Resizetizer/test/UnitTests/Resizetizer.UnitTests.csproj" - "Compatibility.Core.UnitTests" = "src/Compatibility/Core/tests/Compatibility.UnitTests/Compatibility.Core.UnitTests.csproj" "Essentials.AI.UnitTests" = "src/AI/tests/Essentials.AI.UnitTests/Essentials.AI.UnitTests.csproj" } diff --git a/.github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1 b/.github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1 index e54d900a1cf1..8dee7c0c0a4e 100644 --- a/.github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1 +++ b/.github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1 @@ -212,7 +212,6 @@ $script:UnitTestProjectMap = @{ "Essentials.UnitTests" = "src/Essentials/test/UnitTests/Essentials.UnitTests.csproj" "Graphics.Tests" = "src/Graphics/tests/Graphics.Tests/Graphics.Tests.csproj" "Resizetizer.UnitTests" = "src/SingleProject/Resizetizer/test/UnitTests/Resizetizer.UnitTests.csproj" - "Compatibility.Core.UnitTests" = "src/Compatibility/Core/tests/Compatibility.UnitTests/Compatibility.Core.UnitTests.csproj" "Essentials.AI.UnitTests" = "src/AI/tests/Essentials.AI.UnitTests/Essentials.AI.UnitTests.csproj" } diff --git a/.github/skills/verify-tests-fail-without-fix/tests/eval.yaml b/.github/skills/verify-tests-fail-without-fix/tests/eval.yaml index a0047f6d75c6..2842fe54b05c 100644 --- a/.github/skills/verify-tests-fail-without-fix/tests/eval.yaml +++ b/.github/skills/verify-tests-fail-without-fix/tests/eval.yaml @@ -64,7 +64,7 @@ scenarios: - name: "Regression: tests passing without fix means verification FAILED" prompt: | - We ran the verify-tests-fail-without-fix skill on PR #77123. The test was + We ran the test verification workflow on PR #77123. The test was run without the fix applied, and it PASSED. What does this result mean? Is the verification successful? @@ -83,7 +83,7 @@ scenarios: - name: "Edge case: no test files detected in the PR" prompt: | - Run verify-tests-fail-without-fix on this PR. The PR only contains a fix + Run test verification on this PR. The PR only contains a fix in src/Controls/src/Core/Handlers/Entry/EntryHandler.Android.cs but no test files were added. @@ -136,7 +136,7 @@ scenarios: - name: "Regression: agent correctly reports test failure as verification success" prompt: | - I just ran verify-tests-fail-without-fix on PR #44444. The test FAILED with an + I just ran the test verification workflow on PR #44444. The test FAILED with an assertion error: Assert.That(rect.Height, Is.GreaterThan(0)) failed — the element rendered with zero height. This is failure-only verification (no fix files). What should I report? diff --git a/Directory.Build.props b/Directory.Build.props index ce3d73dcda12..f4c3a56eec43 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -113,8 +113,6 @@ true true true - false - true @@ -130,7 +128,6 @@ $(DefineConstants);WINDOWS - $(DefineConstants);COMPATIBILITY_ENABLED $(DefineConstants);ENABLE_PREVIOUS_TFM_BUILDS diff --git a/Microsoft.Maui.LegacyControlGallery.sln b/Microsoft.Maui.LegacyControlGallery.sln deleted file mode 100644 index e555b8990ce5..000000000000 --- a/Microsoft.Maui.LegacyControlGallery.sln +++ /dev/null @@ -1,815 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31410.414 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\src\Core.csproj", "{95BA42B5-B00E-4986-B9B5-517140378452}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core", "src\Controls\src\Core\Controls.Core.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{459BF674-83CB-46F6-881F-A2D2117DBF4D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E1082E26-D700-4127-9329-66D673FD2D55}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample", "src\Controls\samples\Controls.Sample\Maui.Controls.Sample.csproj", "{B8DC1324-977C-46F1-B697-9064ADE6099A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{09C264E9-E3F3-4586-9151-DCBB1F6DA7AB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks", "src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj", "{75C380E0-CE53-4C01-B89F-CF685331DE18}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Essentials", "Essentials", "{94F3C036-A5F4-4ACC-A028-8506802ADB88}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials", "src\Essentials\src\Essentials.csproj", "{39B47A3C-21CA-4B28-9250-14FD957EB0FC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SingleProject", "SingleProject", "{D5478E0A-5D9C-4C1F-980C-7A9FC71F925E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer", "src\SingleProject\Resizetizer\src\Resizetizer.csproj", "{9909F93F-C085-4F76-B92A-5D8C516BF47D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml", "src\Controls\src\Xaml\Controls.Xaml.csproj", "{CC3D4667-D94E-4276-9311-6439BFD075E4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Templates", "src\Templates\src\Microsoft.Maui.Templates.csproj", "{DAAC2822-63B6-4DE0-83AE-04873CD2F364}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestUtils", "TestUtils", "{6998CAA1-11D4-46B2-B80F-0AC882F58124}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils", "src\TestUtils\src\TestUtils\TestUtils.csproj", "{FBB3270F-1924-4A72-845E-A6DF39C402F6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.UnitTests", "src\Core\tests\UnitTests\Core.UnitTests.csproj", "{92644F6F-5946-48FC-A21A-A3D6EE24E8B3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E8AD265B-3C67-4640-AC58-A522F9FB3361}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C564DDD6-DE79-45CD-88EA-3F690481572A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{50C758FE-4E10-409A-94F5-A75480960864}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Templates", "Templates", "{72397ADB-40A8-4B8E-8E08-2DBE2803C845}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BlazorWebView", "BlazorWebView", "{1614D1A4-5C3D-4D5B-8C89-426E37A564EF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.WebView.Maui", "src\BlazorWebView\src\Maui\Microsoft.AspNetCore.Components.WebView.Maui.csproj", "{F7F2B379-52CE-4802-9EC9-0D7967B6BFB7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.Design", "src\Controls\src\Core.Design\Controls.Core.Design.csproj", "{F2A419ED-B18E-4075-9969-536C2EC67F82}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.Design", "src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj", "{F9AEE4C0-9E67-4B87-932E-26EDF0FC932A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiRazorClassLibrarySample", "src\BlazorWebView\samples\MauiRazorClassLibrarySample\MauiRazorClassLibrarySample.csproj", "{4515DAA4-9801-401D-A7A0-38D019B3B19F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.SourceGen", "src\Controls\src\SourceGen\Controls.SourceGen.csproj", "{22C17254-2CB4-4AE7-A558-E3208E1D19D3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F3FFE2E4-E89E-46A9-A180-FDA8908BA21D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{E25E7929-2423-4C8A-9B03-DC4C8B19A2E5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer.UnitTests", "src\SingleProject\Resizetizer\test\UnitTests\Resizetizer.UnitTests.csproj", "{05DB57B8-D0A5-499B-AD35-7093C2E9C9D7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{A8E9400E-70DD-421F-8609-1C2FA4AE8E71}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebViewAppShared", "src\BlazorWebView\samples\WebViewAppShared\WebViewAppShared.csproj", "{9F1E0CE0-BF56-433F-8238-6C2B880EEF18}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Workload", "Workload", "{EC63FD88-5E12-46D7-B440-68F70241D987}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Sdk", "src\Workload\Microsoft.Maui.Sdk\Microsoft.Maui.Sdk.csproj", "{C5C434A7-4E1F-456F-A23A-F2566C98301A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Sdk.Maui.Manifest", "src\Workload\Microsoft.NET.Sdk.Maui.Manifest\Microsoft.NET.Sdk.Maui.Manifest.csproj", "{081EE5E5-69D4-493C-9EB4-47423C4728AB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests.Runners", "src\TestUtils\src\DeviceTests.Runners\TestUtils.DeviceTests.Runners.csproj", "{316C0861-069B-4572-879F-F01E568F33A2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests.Runners.SourceGen", "src\TestUtils\src\DeviceTests.Runners.SourceGen\TestUtils.DeviceTests.Runners.SourceGen.csproj", "{E87D865B-4EA8-4A30-B6C1-572D2061D707}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{C60B92DA-96F2-41EF-8594-864164A82C6A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests.Sample", "src\TestUtils\samples\DeviceTests.Sample\TestUtils.DeviceTests.Sample.csproj", "{B8E69BF7-0F57-4959-867B-441E0428D169}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.Benchmarks", "src\Core\tests\Benchmarks\Core.Benchmarks.csproj", "{33B599D2-B231-4D17-8957-397E24B0FE33}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.DeviceTests", "src\Core\tests\DeviceTests\Core.DeviceTests.csproj", "{A9D5F998-78D3-4DEE-883F-510A7C3AA587}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A1D83459-24AC-4124-AE5F-09F0318AF0EB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{420BC8CC-EE70-49A1-964A-CB63414A882D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.DeviceTests", "src\Essentials\test\DeviceTests\Essentials.DeviceTests.csproj", "{66528BE6-FF53-4A3B-8675-46C0B929C83B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.UnitTests", "src\Essentials\test\UnitTests\Essentials.UnitTests.csproj", "{A9BAB840-A53E-405A-9458-CA0E02319FB4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Maps", "src\Controls\Maps\src\Controls.Maps.csproj", "{5C40FA00-7D48-4F54-898C-01C8942E451D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{25D0D27A-C5FE-443D-8B65-D6C987F4A80E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.UnitTests", "src\Controls\tests\Core.UnitTests\Controls.Core.UnitTests.csproj", "{094FB109-1CBC-4B84-8CFB-072E7B3EC637}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests", "src\Controls\tests\Xaml.UnitTests\Controls.Xaml.UnitTests.csproj", "{F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.CustomAttributes", "src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj", "{F7B6C73A-6019-4EAE-9258-E08C0C57829F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Profiling", "src\Controls\samples\Controls.Sample.Profiling\Maui.Controls.Sample.Profiling.csproj", "{75DB635C-0035-46E7-9A33-857D38082503}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95BF8553-3D9D-4831-ACDD-A3E697BC08A6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample", "src\Essentials\samples\Samples\Essentials.Sample.csproj", "{C677BF3D-B234-491D-BA48-D9742DB564F8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Essentials.Sample.Server.WebAuthenticator.csproj", "{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWinFormsApp", "src\BlazorWebView\samples\BlazorWinFormsApp\BlazorWinFormsApp.csproj", "{7A10CA08-6394-43D3-AFAA-4D696EA111C9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWpfApp", "src\BlazorWebView\samples\BlazorWpfApp\BlazorWpfApp.csproj", "{3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED7F28E0-D0AF-417D-983D-3D874EEE8554}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.WebView.WindowsForms", "src\BlazorWebView\src\WindowsForms\Microsoft.AspNetCore.Components.WebView.WindowsForms.csproj", "{D8BF12AC-AFCF-496B-BD34-2A52F7488066}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.WebView.Wpf", "src\BlazorWebView\src\Wpf\Microsoft.AspNetCore.Components.WebView.Wpf.csproj", "{7032668B-F5F4-450B-B007-14A46E9AE234}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests", "src\TestUtils\src\DeviceTests\TestUtils.DeviceTests.csproj", "{F28E8899-98D2-4915-8D48-D101D4837AB9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.DeviceTests", "src\Controls\tests\DeviceTests\Controls.DeviceTests.csproj", "{C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Sandbox", "src\Controls\samples\Controls.Sample.Sandbox\Maui.Controls.Sample.Sandbox.csproj", "{532ACF23-381B-4F54-AEA9-25B5485F9148}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Foldable", "src\Controls\Foldable\src\Controls.Foldable.csproj", "{71FFE8BF-EBE4-4078-8484-86C6EA685D14}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A9C514B9-1EE2-4A12-8E8A-CE16D87545C3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiBlazorWebView.DeviceTests", "src\BlazorWebView\tests\DeviceTests\MauiBlazorWebView.DeviceTests.csproj", "{5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SharedSource", "SharedSource", "{4F2926C8-43AB-4328-A735-D9EAD699F81D}" - ProjectSection(SolutionItems) = preProject - src\BlazorWebView\src\SharedSource\AutoCloseOnReadCompleteStream.cs = src\BlazorWebView\src\SharedSource\AutoCloseOnReadCompleteStream.cs - src\BlazorWebView\src\SharedSource\HostAddressHelper.cs = src\BlazorWebView\src\SharedSource\HostAddressHelper.cs - src\BlazorWebView\src\SharedSource\QueryStringHelper.cs = src\BlazorWebView\src\SharedSource\QueryStringHelper.cs - src\BlazorWebView\src\SharedSource\UrlLoadingEventArgs.cs = src\BlazorWebView\src\SharedSource\UrlLoadingEventArgs.cs - src\BlazorWebView\src\SharedSource\UrlLoadingStrategy.cs = src\BlazorWebView\src\SharedSource\UrlLoadingStrategy.cs - src\BlazorWebView\src\SharedSource\WebView2WebViewManager.cs = src\BlazorWebView\src\SharedSource\WebView2WebViewManager.cs - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks.Droid", "src\Core\tests\Benchmarks.Droid\Benchmarks.Droid.csproj", "{5B56A734-D53C-4635-A53E-F889FCFCDD66}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maps", "src\Core\maps\src\Maps.csproj", "{E8728693-3537-4007-A4DB-9F9634548755}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Graphics", "Graphics", "{E4884871-4A1B-43BC-814F-E3D6E52B1673}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42AB9AE1-631D-4AD4-85B7-910FF0940BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{1BA0121E-0B83-4C8F-81BE-C293E7E35DCE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{936C47A9-A7EA-4FBD-8733-CED1D4100E69}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics", "src\Graphics\src\Graphics\Graphics.csproj", "{CF056C95-51C4-4366-9D06-41D2B15EFEE4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Skia", "src\Graphics\src\Graphics.Skia\Graphics.Skia.csproj", "{918B7EE9-055B-4F5A-8F62-BB88913159B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Win2D", "src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj", "{291F634A-2D8D-48B6-A1A0-BB9BC265D6E4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Text.Markdig", "src\Graphics\src\Text.Markdig\Graphics.Text.Markdig.csproj", "{375B22F5-9D79-4D17-B759-F8220DFB8B70}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Tests", "src\Graphics\tests\Graphics.Tests\Graphics.Tests.csproj", "{56BBFDBD-254F-42B6-9984-46E19C53FB00}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Benchmarks", "src\Graphics\tests\Graphics.Benchmarks\Graphics.Benchmarks.csproj", "{56DF52FC-A48C-4757-8130-A412050CEBB8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Android", "src\Graphics\samples\GraphicsTester.Android\GraphicsTester.Android.csproj", "{2B02595C-BB82-44F2-8FB7-423EF2DE3A73}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.iOS", "src\Graphics\samples\GraphicsTester.iOS\GraphicsTester.iOS.csproj", "{0F1BC26B-5041-4D64-B533-2959287D8197}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Mac", "src\Graphics\samples\GraphicsTester.Mac\GraphicsTester.Mac.csproj", "{0A44978B-81FD-4565-9997-3E7218C66596}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.MacCatalyst", "src\Graphics\samples\GraphicsTester.MacCatalyst\GraphicsTester.MacCatalyst.csproj", "{B3DD0741-2EC3-4A54-82B7-73923DE4CF48}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Portable", "src\Graphics\samples\GraphicsTester.Portable\GraphicsTester.Portable.csproj", "{546614BB-07AA-4E8E-B6AE-EBDC183C4DAB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Skia.Console", "src\Graphics\samples\GraphicsTester.Skia.Console\GraphicsTester.Skia.Console.csproj", "{EF6ACA06-D4DF-4C21-9F65-FBFEC6325094}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Skia.Mac", "src\Graphics\samples\GraphicsTester.Skia.Mac\GraphicsTester.Skia.Mac.csproj", "{5E8D70F3-990D-4B40-8B13-AA818F21E8A0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Skia.Windows", "src\Graphics\samples\GraphicsTester.Skia.Windows\GraphicsTester.Skia.Windows.csproj", "{8441FA70-9041-4727-91B9-2F39881CC0EE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.WinUI.Desktop", "src\Graphics\samples\GraphicsTester.WinUI.Desktop\GraphicsTester.WinUI.Desktop.csproj", "{4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Skia.GtkSharp", "src\Graphics\src\Graphics.Skia.GtkSharp\Graphics.Skia.GtkSharp.csproj", "{AFD9D653-08C4-456C-AA1B-F5C9F621D655}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.Skia.WPF", "src\Graphics\src\Graphics.Skia.WPF\Graphics.Skia.WPF.csproj", "{F26D31D3-CE4C-4F32-A77F-E2905C948674}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GraphicsTester.Skia.Gtk", "src\Graphics\samples\GraphicsTester.Skia.Gtk\GraphicsTester.Skia.Gtk.csproj", "{F351A992-18E4-473C-8ADD-2BA0BAA7B5A2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.Design.UnitTests", "src\Controls\tests\Core.Design.UnitTests\Controls.Core.Design.UnitTests.csproj", "{F68932B0-81A2-4CC3-A4F7-28091EE91B23}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.NuGet", "src\Controls\src\NuGet\Controls.NuGet.csproj", "{4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.DeviceTests.Shared", "src\Core\tests\DeviceTests.Shared\Core.DeviceTests.Shared.csproj", "{66CC98E3-6A1A-4C44-A23C-B575E82106EC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Graphics.DeviceTests", "src\Graphics\tests\DeviceTests\Graphics.DeviceTests.csproj", "{34969E49-FA6E-41BB-9813-5689BB14021E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests.ExternalAssembly", "src\Controls\tests\Xaml.UnitTests.ExternalAssembly\Controls.Xaml.UnitTests.ExternalAssembly.csproj", "{B5F38A9E-1949-4779-8739-D682B09E0CB3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests.InternalsVisibleAssembly", "src\Controls\tests\Xaml.UnitTests.InternalsVisibleAssembly\Controls.Xaml.UnitTests.InternalsVisibleAssembly.csproj", "{B5F38A9E-1949-4779-6666-D682B09E0CB3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests.InternalsHiddenAssembly", "src\Controls\tests\Xaml.UnitTests.InternalsHiddenAssembly\Controls.Xaml.UnitTests.InternalsHiddenAssembly.csproj", "{FB39FACE-BAF2-4F97-A249-E45BA63D77FE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.HostApp", "src\Controls\tests\TestCases.HostApp\Controls.TestCases.HostApp.csproj", "{07C26A25-08C2-4C52-9574-1C33EC8E7919}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.IntegrationTests", "src\TestUtils\src\Microsoft.Maui.IntegrationTests\Microsoft.Maui.IntegrationTests.csproj", "{A6976D43-B3A4-47AF-89D9-FA388B56B52B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{0AF0E771-4E09-4F05-B187-B43A2B9F62B0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ControlGallery", "ControlGallery", "{DA908446-C6A1-473C-BF5C-83E600F5C69E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9B37E707-EE0B-480E-AEB9-0176784879BE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CBC63DBF-892C-4F03-890E-D48F25509CC6}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Compatibility.ControlGallery.Issues.Shared", "src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.shproj", "{AE2513CB-4E5E-4E5C-8237-88954D4C9433}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.Core", "src\Compatibility\ControlGallery\src\Core\Compatibility.ControlGallery.Core.csproj", "{7A28BAB3-4396-415F-8473-2700027E57A7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.Android", "src\Compatibility\ControlGallery\src\Android\Compatibility.ControlGallery.Android.csproj", "{36664529-91C2-49A5-BFDA-7D663FB19BC5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.iOS", "src\Compatibility\ControlGallery\src\iOS\Compatibility.ControlGallery.iOS.csproj", "{137B044D-31C4-4CF2-AB66-97C516AB8393}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.WinUI", "src\Compatibility\ControlGallery\src\WinUI\Compatibility.ControlGallery.WinUI.csproj", "{0BECADBB-8EE4-4C73-8341-30B041CFD4B8}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Compatibility.UITests.Shared", "src\Compatibility\ControlGallery\src\UITests.Shared\Compatibility.UITests.Shared.shproj", "{E175485B-3C8C-47D7-8DD5-F7FED627EB25}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.Android.UITests", "src\Compatibility\ControlGallery\test\Android.UITests\Compatibility.ControlGallery.Android.UITests.csproj", "{2E41CBBF-999A-40F1-BF65-EA68585CA070}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.iOS.UITests", "src\Compatibility\ControlGallery\test\iOS.UITests\Compatibility.ControlGallery.iOS.UITests.csproj", "{306C0B6E-B797-40A0-994C-4F923E91F31B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinUI.UITests", "src\Compatibility\ControlGallery\test\WinUI.UITests\WinUI.UITests.csproj", "{B111C308-8B8B-4679-A229-39F80013D51E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITest.Core", "src\TestUtils\src\UITest.Core\UITest.Core.csproj", "{8F7B825D-24A8-4E09-AC5B-9117926B7BF3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITest.Appium", "src\TestUtils\src\UITest.Appium\UITest.Appium.csproj", "{26379D0E-4D4D-48CA-94B1-A2C1972AB335}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITest.NUnit", "src\TestUtils\src\UITest.NUnit\UITest.NUnit.csproj", "{A307B624-48D4-494E-A70D-5B3CDF6620CF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SourceGen.UnitTests", "src\Controls\tests\SourceGen.UnitTests\SourceGen.UnitTests.csproj", "{06747B55-91DB-47F5-B7A2-56526C28A0D3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{054C5BAC-3671-4F76-B32E-47CF4E64BB39}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Core.UnitTests", "src\Compatibility\Core\tests\Compatibility.UnitTests\Compatibility.Core.UnitTests.csproj", "{1D950CD3-6778-4729-B6D9-446088093F34}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.Shared.Tests", "src\Controls\tests\TestCases.Shared.Tests\Controls.TestCases.Shared.Tests.csproj", "{C450F8F4-C40F-4C15-978F-F43BA7DEA29D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.Android.Tests", "src\Controls\tests\TestCases.Android.Tests\Controls.TestCases.Android.Tests.csproj", "{7042E8FF-472F-4CB5-8AAE-DAD87BA32207}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.iOS.Tests", "src\Controls\tests\TestCases.iOS.Tests\Controls.TestCases.iOS.Tests.csproj", "{5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.Mac.Tests", "src\Controls\tests\TestCases.Mac.Tests\Controls.TestCases.Mac.Tests.csproj", "{6E1ADE49-680E-4CA3-8FEA-6450802F8250}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.WinUI.Tests", "src\Controls\tests\TestCases.WinUI.Tests\Controls.TestCases.WinUI.Tests.csproj", "{A3E22F99-F380-4005-8483-3ACA6C104220}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.BindingSourceGen", "src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj", "{9538341F-8A00-4356-A2B2-5C2959979F22}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.BindingSourceGen.UnitTests", "src\Controls\tests\BindingSourceGen.UnitTests\Controls.BindingSourceGen.UnitTests.csproj", "{23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UITest.Analyzers", "src\TestUtils\src\UITest.Analyzers\UITest.Analyzers.csproj", "{55905937-1399-46DB-BA38-E426801CB759}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Embedding", "src\Controls\samples\Controls.Sample.Embedding\Maui.Controls.Sample.Embedding.csproj", "{4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.Build.0 = Release|Any CPU - {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.Build.0 = Release|Any CPU - {B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.Deploy.0 = Release|Any CPU - {75C380E0-CE53-4C01-B89F-CF685331DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75C380E0-CE53-4C01-B89F-CF685331DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75C380E0-CE53-4C01-B89F-CF685331DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75C380E0-CE53-4C01-B89F-CF685331DE18}.Release|Any CPU.Build.0 = Release|Any CPU - {39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Release|Any CPU.Build.0 = Release|Any CPU - {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.Build.0 = Release|Any CPU - {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.Build.0 = Release|Any CPU - {DAAC2822-63B6-4DE0-83AE-04873CD2F364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAAC2822-63B6-4DE0-83AE-04873CD2F364}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAAC2822-63B6-4DE0-83AE-04873CD2F364}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAAC2822-63B6-4DE0-83AE-04873CD2F364}.Release|Any CPU.Build.0 = Release|Any CPU - {FBB3270F-1924-4A72-845E-A6DF39C402F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBB3270F-1924-4A72-845E-A6DF39C402F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBB3270F-1924-4A72-845E-A6DF39C402F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBB3270F-1924-4A72-845E-A6DF39C402F6}.Release|Any CPU.Build.0 = Release|Any CPU - {92644F6F-5946-48FC-A21A-A3D6EE24E8B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {92644F6F-5946-48FC-A21A-A3D6EE24E8B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92644F6F-5946-48FC-A21A-A3D6EE24E8B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {92644F6F-5946-48FC-A21A-A3D6EE24E8B3}.Release|Any CPU.Build.0 = Release|Any CPU - {F7F2B379-52CE-4802-9EC9-0D7967B6BFB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7F2B379-52CE-4802-9EC9-0D7967B6BFB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7F2B379-52CE-4802-9EC9-0D7967B6BFB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7F2B379-52CE-4802-9EC9-0D7967B6BFB7}.Release|Any CPU.Build.0 = Release|Any CPU - {F2A419ED-B18E-4075-9969-536C2EC67F82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F2A419ED-B18E-4075-9969-536C2EC67F82}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F2A419ED-B18E-4075-9969-536C2EC67F82}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F2A419ED-B18E-4075-9969-536C2EC67F82}.Release|Any CPU.Build.0 = Release|Any CPU - {F9AEE4C0-9E67-4B87-932E-26EDF0FC932A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9AEE4C0-9E67-4B87-932E-26EDF0FC932A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9AEE4C0-9E67-4B87-932E-26EDF0FC932A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9AEE4C0-9E67-4B87-932E-26EDF0FC932A}.Release|Any CPU.Build.0 = Release|Any CPU - {4515DAA4-9801-401D-A7A0-38D019B3B19F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4515DAA4-9801-401D-A7A0-38D019B3B19F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4515DAA4-9801-401D-A7A0-38D019B3B19F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4515DAA4-9801-401D-A7A0-38D019B3B19F}.Release|Any CPU.Build.0 = Release|Any CPU - {22C17254-2CB4-4AE7-A558-E3208E1D19D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {22C17254-2CB4-4AE7-A558-E3208E1D19D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {22C17254-2CB4-4AE7-A558-E3208E1D19D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {22C17254-2CB4-4AE7-A558-E3208E1D19D3}.Release|Any CPU.Build.0 = Release|Any CPU - {05DB57B8-D0A5-499B-AD35-7093C2E9C9D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05DB57B8-D0A5-499B-AD35-7093C2E9C9D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05DB57B8-D0A5-499B-AD35-7093C2E9C9D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {05DB57B8-D0A5-499B-AD35-7093C2E9C9D7}.Release|Any CPU.Build.0 = Release|Any CPU - {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Release|Any CPU.Build.0 = Release|Any CPU - {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Release|Any CPU.Build.0 = Release|Any CPU - {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Release|Any CPU.Build.0 = Release|Any CPU - {316C0861-069B-4572-879F-F01E568F33A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {316C0861-069B-4572-879F-F01E568F33A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {316C0861-069B-4572-879F-F01E568F33A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {316C0861-069B-4572-879F-F01E568F33A2}.Release|Any CPU.Build.0 = Release|Any CPU - {E87D865B-4EA8-4A30-B6C1-572D2061D707}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E87D865B-4EA8-4A30-B6C1-572D2061D707}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E87D865B-4EA8-4A30-B6C1-572D2061D707}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E87D865B-4EA8-4A30-B6C1-572D2061D707}.Release|Any CPU.Build.0 = Release|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Release|Any CPU.Build.0 = Release|Any CPU - {B8E69BF7-0F57-4959-867B-441E0428D169}.Release|Any CPU.Deploy.0 = Release|Any CPU - {33B599D2-B231-4D17-8957-397E24B0FE33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33B599D2-B231-4D17-8957-397E24B0FE33}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33B599D2-B231-4D17-8957-397E24B0FE33}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33B599D2-B231-4D17-8957-397E24B0FE33}.Release|Any CPU.Build.0 = Release|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Release|Any CPU.Build.0 = Release|Any CPU - {A9D5F998-78D3-4DEE-883F-510A7C3AA587}.Release|Any CPU.Deploy.0 = Release|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Release|Any CPU.Build.0 = Release|Any CPU - {66528BE6-FF53-4A3B-8675-46C0B929C83B}.Release|Any CPU.Deploy.0 = Release|Any CPU - {A9BAB840-A53E-405A-9458-CA0E02319FB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9BAB840-A53E-405A-9458-CA0E02319FB4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9BAB840-A53E-405A-9458-CA0E02319FB4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9BAB840-A53E-405A-9458-CA0E02319FB4}.Release|Any CPU.Build.0 = Release|Any CPU - {5C40FA00-7D48-4F54-898C-01C8942E451D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C40FA00-7D48-4F54-898C-01C8942E451D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5C40FA00-7D48-4F54-898C-01C8942E451D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C40FA00-7D48-4F54-898C-01C8942E451D}.Release|Any CPU.Build.0 = Release|Any CPU - {094FB109-1CBC-4B84-8CFB-072E7B3EC637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {094FB109-1CBC-4B84-8CFB-072E7B3EC637}.Debug|Any CPU.Build.0 = Debug|Any CPU - {094FB109-1CBC-4B84-8CFB-072E7B3EC637}.Release|Any CPU.ActiveCfg = Release|Any CPU - {094FB109-1CBC-4B84-8CFB-072E7B3EC637}.Release|Any CPU.Build.0 = Release|Any CPU - {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED}.Release|Any CPU.Build.0 = Release|Any CPU - {F7B6C73A-6019-4EAE-9258-E08C0C57829F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7B6C73A-6019-4EAE-9258-E08C0C57829F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7B6C73A-6019-4EAE-9258-E08C0C57829F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7B6C73A-6019-4EAE-9258-E08C0C57829F}.Release|Any CPU.Build.0 = Release|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.Build.0 = Release|Any CPU - {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.Deploy.0 = Release|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Release|Any CPU.Build.0 = Release|Any CPU - {C677BF3D-B234-491D-BA48-D9742DB564F8}.Release|Any CPU.Deploy.0 = Release|Any CPU - {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.Build.0 = Release|Any CPU - {7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Release|Any CPU.Build.0 = Release|Any CPU - {3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}.Release|Any CPU.Build.0 = Release|Any CPU - {D8BF12AC-AFCF-496B-BD34-2A52F7488066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D8BF12AC-AFCF-496B-BD34-2A52F7488066}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D8BF12AC-AFCF-496B-BD34-2A52F7488066}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D8BF12AC-AFCF-496B-BD34-2A52F7488066}.Release|Any CPU.Build.0 = Release|Any CPU - {7032668B-F5F4-450B-B007-14A46E9AE234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7032668B-F5F4-450B-B007-14A46E9AE234}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7032668B-F5F4-450B-B007-14A46E9AE234}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7032668B-F5F4-450B-B007-14A46E9AE234}.Release|Any CPU.Build.0 = Release|Any CPU - {F28E8899-98D2-4915-8D48-D101D4837AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F28E8899-98D2-4915-8D48-D101D4837AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F28E8899-98D2-4915-8D48-D101D4837AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F28E8899-98D2-4915-8D48-D101D4837AB9}.Release|Any CPU.Build.0 = Release|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Release|Any CPU.Build.0 = Release|Any CPU - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36}.Release|Any CPU.Deploy.0 = Release|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Debug|Any CPU.Build.0 = Debug|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Release|Any CPU.ActiveCfg = Release|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Release|Any CPU.Build.0 = Release|Any CPU - {532ACF23-381B-4F54-AEA9-25B5485F9148}.Release|Any CPU.Deploy.0 = Release|Any CPU - {71FFE8BF-EBE4-4078-8484-86C6EA685D14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {71FFE8BF-EBE4-4078-8484-86C6EA685D14}.Debug|Any CPU.Build.0 = Debug|Any CPU - {71FFE8BF-EBE4-4078-8484-86C6EA685D14}.Release|Any CPU.ActiveCfg = Release|Any CPU - {71FFE8BF-EBE4-4078-8484-86C6EA685D14}.Release|Any CPU.Build.0 = Release|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Release|Any CPU.Build.0 = Release|Any CPU - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6}.Release|Any CPU.Deploy.0 = Release|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Release|Any CPU.Build.0 = Release|Any CPU - {5B56A734-D53C-4635-A53E-F889FCFCDD66}.Release|Any CPU.Deploy.0 = Release|Any CPU - {E8728693-3537-4007-A4DB-9F9634548755}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E8728693-3537-4007-A4DB-9F9634548755}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E8728693-3537-4007-A4DB-9F9634548755}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E8728693-3537-4007-A4DB-9F9634548755}.Release|Any CPU.Build.0 = Release|Any CPU - {CF056C95-51C4-4366-9D06-41D2B15EFEE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF056C95-51C4-4366-9D06-41D2B15EFEE4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF056C95-51C4-4366-9D06-41D2B15EFEE4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF056C95-51C4-4366-9D06-41D2B15EFEE4}.Release|Any CPU.Build.0 = Release|Any CPU - {918B7EE9-055B-4F5A-8F62-BB88913159B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {918B7EE9-055B-4F5A-8F62-BB88913159B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {918B7EE9-055B-4F5A-8F62-BB88913159B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {918B7EE9-055B-4F5A-8F62-BB88913159B1}.Release|Any CPU.Build.0 = Release|Any CPU - {291F634A-2D8D-48B6-A1A0-BB9BC265D6E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {291F634A-2D8D-48B6-A1A0-BB9BC265D6E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {291F634A-2D8D-48B6-A1A0-BB9BC265D6E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {291F634A-2D8D-48B6-A1A0-BB9BC265D6E4}.Release|Any CPU.Build.0 = Release|Any CPU - {375B22F5-9D79-4D17-B759-F8220DFB8B70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {375B22F5-9D79-4D17-B759-F8220DFB8B70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {375B22F5-9D79-4D17-B759-F8220DFB8B70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {375B22F5-9D79-4D17-B759-F8220DFB8B70}.Release|Any CPU.Build.0 = Release|Any CPU - {56BBFDBD-254F-42B6-9984-46E19C53FB00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56BBFDBD-254F-42B6-9984-46E19C53FB00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56BBFDBD-254F-42B6-9984-46E19C53FB00}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56BBFDBD-254F-42B6-9984-46E19C53FB00}.Release|Any CPU.Build.0 = Release|Any CPU - {56DF52FC-A48C-4757-8130-A412050CEBB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56DF52FC-A48C-4757-8130-A412050CEBB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56DF52FC-A48C-4757-8130-A412050CEBB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56DF52FC-A48C-4757-8130-A412050CEBB8}.Release|Any CPU.Build.0 = Release|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Release|Any CPU.Build.0 = Release|Any CPU - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73}.Release|Any CPU.Deploy.0 = Release|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Release|Any CPU.Build.0 = Release|Any CPU - {0F1BC26B-5041-4D64-B533-2959287D8197}.Release|Any CPU.Deploy.0 = Release|Any CPU - {0A44978B-81FD-4565-9997-3E7218C66596}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A44978B-81FD-4565-9997-3E7218C66596}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A44978B-81FD-4565-9997-3E7218C66596}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A44978B-81FD-4565-9997-3E7218C66596}.Release|Any CPU.Build.0 = Release|Any CPU - {B3DD0741-2EC3-4A54-82B7-73923DE4CF48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B3DD0741-2EC3-4A54-82B7-73923DE4CF48}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B3DD0741-2EC3-4A54-82B7-73923DE4CF48}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B3DD0741-2EC3-4A54-82B7-73923DE4CF48}.Release|Any CPU.Build.0 = Release|Any CPU - {546614BB-07AA-4E8E-B6AE-EBDC183C4DAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {546614BB-07AA-4E8E-B6AE-EBDC183C4DAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {546614BB-07AA-4E8E-B6AE-EBDC183C4DAB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {546614BB-07AA-4E8E-B6AE-EBDC183C4DAB}.Release|Any CPU.Build.0 = Release|Any CPU - {EF6ACA06-D4DF-4C21-9F65-FBFEC6325094}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF6ACA06-D4DF-4C21-9F65-FBFEC6325094}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF6ACA06-D4DF-4C21-9F65-FBFEC6325094}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF6ACA06-D4DF-4C21-9F65-FBFEC6325094}.Release|Any CPU.Build.0 = Release|Any CPU - {5E8D70F3-990D-4B40-8B13-AA818F21E8A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E8D70F3-990D-4B40-8B13-AA818F21E8A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E8D70F3-990D-4B40-8B13-AA818F21E8A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E8D70F3-990D-4B40-8B13-AA818F21E8A0}.Release|Any CPU.Build.0 = Release|Any CPU - {8441FA70-9041-4727-91B9-2F39881CC0EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8441FA70-9041-4727-91B9-2F39881CC0EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8441FA70-9041-4727-91B9-2F39881CC0EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8441FA70-9041-4727-91B9-2F39881CC0EE}.Release|Any CPU.Build.0 = Release|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Release|Any CPU.Build.0 = Release|Any CPU - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5}.Release|Any CPU.Deploy.0 = Release|Any CPU - {AFD9D653-08C4-456C-AA1B-F5C9F621D655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AFD9D653-08C4-456C-AA1B-F5C9F621D655}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AFD9D653-08C4-456C-AA1B-F5C9F621D655}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AFD9D653-08C4-456C-AA1B-F5C9F621D655}.Release|Any CPU.Build.0 = Release|Any CPU - {F26D31D3-CE4C-4F32-A77F-E2905C948674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F26D31D3-CE4C-4F32-A77F-E2905C948674}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F26D31D3-CE4C-4F32-A77F-E2905C948674}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F26D31D3-CE4C-4F32-A77F-E2905C948674}.Release|Any CPU.Build.0 = Release|Any CPU - {F351A992-18E4-473C-8ADD-2BA0BAA7B5A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F351A992-18E4-473C-8ADD-2BA0BAA7B5A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F351A992-18E4-473C-8ADD-2BA0BAA7B5A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F351A992-18E4-473C-8ADD-2BA0BAA7B5A2}.Release|Any CPU.Build.0 = Release|Any CPU - {F68932B0-81A2-4CC3-A4F7-28091EE91B23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F68932B0-81A2-4CC3-A4F7-28091EE91B23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F68932B0-81A2-4CC3-A4F7-28091EE91B23}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F68932B0-81A2-4CC3-A4F7-28091EE91B23}.Release|Any CPU.Build.0 = Release|Any CPU - {4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7}.Release|Any CPU.Build.0 = Release|Any CPU - {66CC98E3-6A1A-4C44-A23C-B575E82106EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66CC98E3-6A1A-4C44-A23C-B575E82106EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66CC98E3-6A1A-4C44-A23C-B575E82106EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66CC98E3-6A1A-4C44-A23C-B575E82106EC}.Release|Any CPU.Build.0 = Release|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Release|Any CPU.Build.0 = Release|Any CPU - {34969E49-FA6E-41BB-9813-5689BB14021E}.Release|Any CPU.Deploy.0 = Release|Any CPU - {B5F38A9E-1949-4779-8739-D682B09E0CB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5F38A9E-1949-4779-8739-D682B09E0CB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5F38A9E-1949-4779-8739-D682B09E0CB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5F38A9E-1949-4779-8739-D682B09E0CB3}.Release|Any CPU.Build.0 = Release|Any CPU - {B5F38A9E-1949-4779-6666-D682B09E0CB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5F38A9E-1949-4779-6666-D682B09E0CB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5F38A9E-1949-4779-6666-D682B09E0CB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5F38A9E-1949-4779-6666-D682B09E0CB3}.Release|Any CPU.Build.0 = Release|Any CPU - {FB39FACE-BAF2-4F97-A249-E45BA63D77FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB39FACE-BAF2-4F97-A249-E45BA63D77FE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB39FACE-BAF2-4F97-A249-E45BA63D77FE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB39FACE-BAF2-4F97-A249-E45BA63D77FE}.Release|Any CPU.Build.0 = Release|Any CPU - {07C26A25-08C2-4C52-9574-1C33EC8E7919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07C26A25-08C2-4C52-9574-1C33EC8E7919}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07C26A25-08C2-4C52-9574-1C33EC8E7919}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {07C26A25-08C2-4C52-9574-1C33EC8E7919}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07C26A25-08C2-4C52-9574-1C33EC8E7919}.Release|Any CPU.Build.0 = Release|Any CPU - {A6976D43-B3A4-47AF-89D9-FA388B56B52B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6976D43-B3A4-47AF-89D9-FA388B56B52B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6976D43-B3A4-47AF-89D9-FA388B56B52B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6976D43-B3A4-47AF-89D9-FA388B56B52B}.Release|Any CPU.Build.0 = Release|Any CPU - {7A28BAB3-4396-415F-8473-2700027E57A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A28BAB3-4396-415F-8473-2700027E57A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A28BAB3-4396-415F-8473-2700027E57A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A28BAB3-4396-415F-8473-2700027E57A7}.Release|Any CPU.Build.0 = Release|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Release|Any CPU.Build.0 = Release|Any CPU - {36664529-91C2-49A5-BFDA-7D663FB19BC5}.Release|Any CPU.Deploy.0 = Release|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Debug|Any CPU.Build.0 = Debug|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Release|Any CPU.ActiveCfg = Release|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Release|Any CPU.Build.0 = Release|Any CPU - {137B044D-31C4-4CF2-AB66-97C516AB8393}.Release|Any CPU.Deploy.0 = Release|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Release|Any CPU.Build.0 = Release|Any CPU - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8}.Release|Any CPU.Deploy.0 = Release|Any CPU - {2E41CBBF-999A-40F1-BF65-EA68585CA070}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E41CBBF-999A-40F1-BF65-EA68585CA070}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E41CBBF-999A-40F1-BF65-EA68585CA070}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E41CBBF-999A-40F1-BF65-EA68585CA070}.Release|Any CPU.Build.0 = Release|Any CPU - {306C0B6E-B797-40A0-994C-4F923E91F31B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {306C0B6E-B797-40A0-994C-4F923E91F31B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {306C0B6E-B797-40A0-994C-4F923E91F31B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {306C0B6E-B797-40A0-994C-4F923E91F31B}.Release|Any CPU.Build.0 = Release|Any CPU - {B111C308-8B8B-4679-A229-39F80013D51E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B111C308-8B8B-4679-A229-39F80013D51E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B111C308-8B8B-4679-A229-39F80013D51E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B111C308-8B8B-4679-A229-39F80013D51E}.Release|Any CPU.Build.0 = Release|Any CPU - {8F7B825D-24A8-4E09-AC5B-9117926B7BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F7B825D-24A8-4E09-AC5B-9117926B7BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F7B825D-24A8-4E09-AC5B-9117926B7BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F7B825D-24A8-4E09-AC5B-9117926B7BF3}.Release|Any CPU.Build.0 = Release|Any CPU - {26379D0E-4D4D-48CA-94B1-A2C1972AB335}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26379D0E-4D4D-48CA-94B1-A2C1972AB335}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26379D0E-4D4D-48CA-94B1-A2C1972AB335}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26379D0E-4D4D-48CA-94B1-A2C1972AB335}.Release|Any CPU.Build.0 = Release|Any CPU - {A307B624-48D4-494E-A70D-5B3CDF6620CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A307B624-48D4-494E-A70D-5B3CDF6620CF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A307B624-48D4-494E-A70D-5B3CDF6620CF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A307B624-48D4-494E-A70D-5B3CDF6620CF}.Release|Any CPU.Build.0 = Release|Any CPU - {06747B55-91DB-47F5-B7A2-56526C28A0D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {06747B55-91DB-47F5-B7A2-56526C28A0D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {06747B55-91DB-47F5-B7A2-56526C28A0D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {06747B55-91DB-47F5-B7A2-56526C28A0D3}.Release|Any CPU.Build.0 = Release|Any CPU - {1D950CD3-6778-4729-B6D9-446088093F34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1D950CD3-6778-4729-B6D9-446088093F34}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D950CD3-6778-4729-B6D9-446088093F34}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1D950CD3-6778-4729-B6D9-446088093F34}.Release|Any CPU.Build.0 = Release|Any CPU - {C450F8F4-C40F-4C15-978F-F43BA7DEA29D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C450F8F4-C40F-4C15-978F-F43BA7DEA29D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C450F8F4-C40F-4C15-978F-F43BA7DEA29D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C450F8F4-C40F-4C15-978F-F43BA7DEA29D}.Release|Any CPU.Build.0 = Release|Any CPU - {7042E8FF-472F-4CB5-8AAE-DAD87BA32207}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7042E8FF-472F-4CB5-8AAE-DAD87BA32207}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7042E8FF-472F-4CB5-8AAE-DAD87BA32207}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7042E8FF-472F-4CB5-8AAE-DAD87BA32207}.Release|Any CPU.Build.0 = Release|Any CPU - {5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA}.Release|Any CPU.Build.0 = Release|Any CPU - {6E1ADE49-680E-4CA3-8FEA-6450802F8250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E1ADE49-680E-4CA3-8FEA-6450802F8250}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E1ADE49-680E-4CA3-8FEA-6450802F8250}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E1ADE49-680E-4CA3-8FEA-6450802F8250}.Release|Any CPU.Build.0 = Release|Any CPU - {A3E22F99-F380-4005-8483-3ACA6C104220}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3E22F99-F380-4005-8483-3ACA6C104220}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3E22F99-F380-4005-8483-3ACA6C104220}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3E22F99-F380-4005-8483-3ACA6C104220}.Release|Any CPU.Build.0 = Release|Any CPU - {9538341F-8A00-4356-A2B2-5C2959979F22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9538341F-8A00-4356-A2B2-5C2959979F22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9538341F-8A00-4356-A2B2-5C2959979F22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9538341F-8A00-4356-A2B2-5C2959979F22}.Release|Any CPU.Build.0 = Release|Any CPU - {23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47}.Release|Any CPU.Build.0 = Release|Any CPU - {55905937-1399-46DB-BA38-E426801CB759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55905937-1399-46DB-BA38-E426801CB759}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55905937-1399-46DB-BA38-E426801CB759}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55905937-1399-46DB-BA38-E426801CB759}.Release|Any CPU.Build.0 = Release|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Release|Any CPU.Build.0 = Release|Any CPU - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9}.Release|Any CPU.Deploy.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {95BA42B5-B00E-4986-B9B5-517140378452} = {E8AD265B-3C67-4640-AC58-A522F9FB3361} - {AF64451F-E2BD-41C2-B083-F60C26AE2A9F} = {50C758FE-4E10-409A-94F5-A75480960864} - {E1082E26-D700-4127-9329-66D673FD2D55} = {459BF674-83CB-46F6-881F-A2D2117DBF4D} - {B8DC1324-977C-46F1-B697-9064ADE6099A} = {E1082E26-D700-4127-9329-66D673FD2D55} - {75C380E0-CE53-4C01-B89F-CF685331DE18} = {50C758FE-4E10-409A-94F5-A75480960864} - {39B47A3C-21CA-4B28-9250-14FD957EB0FC} = {A1D83459-24AC-4124-AE5F-09F0318AF0EB} - {9909F93F-C085-4F76-B92A-5D8C516BF47D} = {F3FFE2E4-E89E-46A9-A180-FDA8908BA21D} - {CC3D4667-D94E-4276-9311-6439BFD075E4} = {50C758FE-4E10-409A-94F5-A75480960864} - {DAAC2822-63B6-4DE0-83AE-04873CD2F364} = {72397ADB-40A8-4B8E-8E08-2DBE2803C845} - {FBB3270F-1924-4A72-845E-A6DF39C402F6} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {92644F6F-5946-48FC-A21A-A3D6EE24E8B3} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {E8AD265B-3C67-4640-AC58-A522F9FB3361} = {09C264E9-E3F3-4586-9151-DCBB1F6DA7AB} - {C564DDD6-DE79-45CD-88EA-3F690481572A} = {09C264E9-E3F3-4586-9151-DCBB1F6DA7AB} - {50C758FE-4E10-409A-94F5-A75480960864} = {459BF674-83CB-46F6-881F-A2D2117DBF4D} - {F7F2B379-52CE-4802-9EC9-0D7967B6BFB7} = {ED7F28E0-D0AF-417D-983D-3D874EEE8554} - {F2A419ED-B18E-4075-9969-536C2EC67F82} = {50C758FE-4E10-409A-94F5-A75480960864} - {F9AEE4C0-9E67-4B87-932E-26EDF0FC932A} = {50C758FE-4E10-409A-94F5-A75480960864} - {4515DAA4-9801-401D-A7A0-38D019B3B19F} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} - {22C17254-2CB4-4AE7-A558-E3208E1D19D3} = {50C758FE-4E10-409A-94F5-A75480960864} - {F3FFE2E4-E89E-46A9-A180-FDA8908BA21D} = {D5478E0A-5D9C-4C1F-980C-7A9FC71F925E} - {E25E7929-2423-4C8A-9B03-DC4C8B19A2E5} = {D5478E0A-5D9C-4C1F-980C-7A9FC71F925E} - {05DB57B8-D0A5-499B-AD35-7093C2E9C9D7} = {E25E7929-2423-4C8A-9B03-DC4C8B19A2E5} - {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF} - {9F1E0CE0-BF56-433F-8238-6C2B880EEF18} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} - {C5C434A7-4E1F-456F-A23A-F2566C98301A} = {EC63FD88-5E12-46D7-B440-68F70241D987} - {081EE5E5-69D4-493C-9EB4-47423C4728AB} = {EC63FD88-5E12-46D7-B440-68F70241D987} - {316C0861-069B-4572-879F-F01E568F33A2} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {E87D865B-4EA8-4A30-B6C1-572D2061D707} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {C60B92DA-96F2-41EF-8594-864164A82C6A} = {6998CAA1-11D4-46B2-B80F-0AC882F58124} - {B8E69BF7-0F57-4959-867B-441E0428D169} = {C60B92DA-96F2-41EF-8594-864164A82C6A} - {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} = {6998CAA1-11D4-46B2-B80F-0AC882F58124} - {33B599D2-B231-4D17-8957-397E24B0FE33} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {A9D5F998-78D3-4DEE-883F-510A7C3AA587} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {A1D83459-24AC-4124-AE5F-09F0318AF0EB} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} - {420BC8CC-EE70-49A1-964A-CB63414A882D} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} - {66528BE6-FF53-4A3B-8675-46C0B929C83B} = {420BC8CC-EE70-49A1-964A-CB63414A882D} - {A9BAB840-A53E-405A-9458-CA0E02319FB4} = {420BC8CC-EE70-49A1-964A-CB63414A882D} - {5C40FA00-7D48-4F54-898C-01C8942E451D} = {50C758FE-4E10-409A-94F5-A75480960864} - {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} = {459BF674-83CB-46F6-881F-A2D2117DBF4D} - {094FB109-1CBC-4B84-8CFB-072E7B3EC637} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {F7B6C73A-6019-4EAE-9258-E08C0C57829F} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {75DB635C-0035-46E7-9A33-857D38082503} = {E1082E26-D700-4127-9329-66D673FD2D55} - {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} - {C677BF3D-B234-491D-BA48-D9742DB564F8} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} - {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} - {7A10CA08-6394-43D3-AFAA-4D696EA111C9} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} - {3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} - {ED7F28E0-D0AF-417D-983D-3D874EEE8554} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF} - {D8BF12AC-AFCF-496B-BD34-2A52F7488066} = {ED7F28E0-D0AF-417D-983D-3D874EEE8554} - {7032668B-F5F4-450B-B007-14A46E9AE234} = {ED7F28E0-D0AF-417D-983D-3D874EEE8554} - {F28E8899-98D2-4915-8D48-D101D4837AB9} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {532ACF23-381B-4F54-AEA9-25B5485F9148} = {E1082E26-D700-4127-9329-66D673FD2D55} - {71FFE8BF-EBE4-4078-8484-86C6EA685D14} = {50C758FE-4E10-409A-94F5-A75480960864} - {A9C514B9-1EE2-4A12-8E8A-CE16D87545C3} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF} - {5FEA7500-0ACE-4C26-9A7B-2EB3958CBBC6} = {A9C514B9-1EE2-4A12-8E8A-CE16D87545C3} - {4F2926C8-43AB-4328-A735-D9EAD699F81D} = {ED7F28E0-D0AF-417D-983D-3D874EEE8554} - {5B56A734-D53C-4635-A53E-F889FCFCDD66} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {E8728693-3537-4007-A4DB-9F9634548755} = {E8AD265B-3C67-4640-AC58-A522F9FB3361} - {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} = {E4884871-4A1B-43BC-814F-E3D6E52B1673} - {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} = {E4884871-4A1B-43BC-814F-E3D6E52B1673} - {936C47A9-A7EA-4FBD-8733-CED1D4100E69} = {E4884871-4A1B-43BC-814F-E3D6E52B1673} - {CF056C95-51C4-4366-9D06-41D2B15EFEE4} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {918B7EE9-055B-4F5A-8F62-BB88913159B1} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {291F634A-2D8D-48B6-A1A0-BB9BC265D6E4} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {375B22F5-9D79-4D17-B759-F8220DFB8B70} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {56BBFDBD-254F-42B6-9984-46E19C53FB00} = {936C47A9-A7EA-4FBD-8733-CED1D4100E69} - {56DF52FC-A48C-4757-8130-A412050CEBB8} = {936C47A9-A7EA-4FBD-8733-CED1D4100E69} - {2B02595C-BB82-44F2-8FB7-423EF2DE3A73} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {0F1BC26B-5041-4D64-B533-2959287D8197} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {0A44978B-81FD-4565-9997-3E7218C66596} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {B3DD0741-2EC3-4A54-82B7-73923DE4CF48} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {546614BB-07AA-4E8E-B6AE-EBDC183C4DAB} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {EF6ACA06-D4DF-4C21-9F65-FBFEC6325094} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {5E8D70F3-990D-4B40-8B13-AA818F21E8A0} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {8441FA70-9041-4727-91B9-2F39881CC0EE} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {4BF0AF30-6E18-47D8-B90C-E99C1917BEF5} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {AFD9D653-08C4-456C-AA1B-F5C9F621D655} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {F26D31D3-CE4C-4F32-A77F-E2905C948674} = {42AB9AE1-631D-4AD4-85B7-910FF0940BDB} - {F351A992-18E4-473C-8ADD-2BA0BAA7B5A2} = {1BA0121E-0B83-4C8F-81BE-C293E7E35DCE} - {F68932B0-81A2-4CC3-A4F7-28091EE91B23} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {4A6930AE-B67C-4D29-B1A8-ED9EB7F923A7} = {50C758FE-4E10-409A-94F5-A75480960864} - {66CC98E3-6A1A-4C44-A23C-B575E82106EC} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {34969E49-FA6E-41BB-9813-5689BB14021E} = {936C47A9-A7EA-4FBD-8733-CED1D4100E69} - {B5F38A9E-1949-4779-8739-D682B09E0CB3} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {B5F38A9E-1949-4779-6666-D682B09E0CB3} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {FB39FACE-BAF2-4F97-A249-E45BA63D77FE} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {07C26A25-08C2-4C52-9574-1C33EC8E7919} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {A6976D43-B3A4-47AF-89D9-FA388B56B52B} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {DA908446-C6A1-473C-BF5C-83E600F5C69E} = {0AF0E771-4E09-4F05-B187-B43A2B9F62B0} - {9B37E707-EE0B-480E-AEB9-0176784879BE} = {DA908446-C6A1-473C-BF5C-83E600F5C69E} - {CBC63DBF-892C-4F03-890E-D48F25509CC6} = {DA908446-C6A1-473C-BF5C-83E600F5C69E} - {AE2513CB-4E5E-4E5C-8237-88954D4C9433} = {9B37E707-EE0B-480E-AEB9-0176784879BE} - {7A28BAB3-4396-415F-8473-2700027E57A7} = {9B37E707-EE0B-480E-AEB9-0176784879BE} - {36664529-91C2-49A5-BFDA-7D663FB19BC5} = {9B37E707-EE0B-480E-AEB9-0176784879BE} - {137B044D-31C4-4CF2-AB66-97C516AB8393} = {9B37E707-EE0B-480E-AEB9-0176784879BE} - {0BECADBB-8EE4-4C73-8341-30B041CFD4B8} = {9B37E707-EE0B-480E-AEB9-0176784879BE} - {E175485B-3C8C-47D7-8DD5-F7FED627EB25} = {CBC63DBF-892C-4F03-890E-D48F25509CC6} - {2E41CBBF-999A-40F1-BF65-EA68585CA070} = {CBC63DBF-892C-4F03-890E-D48F25509CC6} - {306C0B6E-B797-40A0-994C-4F923E91F31B} = {CBC63DBF-892C-4F03-890E-D48F25509CC6} - {B111C308-8B8B-4679-A229-39F80013D51E} = {CBC63DBF-892C-4F03-890E-D48F25509CC6} - {8F7B825D-24A8-4E09-AC5B-9117926B7BF3} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {26379D0E-4D4D-48CA-94B1-A2C1972AB335} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {A307B624-48D4-494E-A70D-5B3CDF6620CF} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {06747B55-91DB-47F5-B7A2-56526C28A0D3} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {054C5BAC-3671-4F76-B32E-47CF4E64BB39} = {0AF0E771-4E09-4F05-B187-B43A2B9F62B0} - {1D950CD3-6778-4729-B6D9-446088093F34} = {054C5BAC-3671-4F76-B32E-47CF4E64BB39} - {C450F8F4-C40F-4C15-978F-F43BA7DEA29D} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {7042E8FF-472F-4CB5-8AAE-DAD87BA32207} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {5DDA6439-CDE0-4BFE-8BF9-77962BC69ACA} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {6E1ADE49-680E-4CA3-8FEA-6450802F8250} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {A3E22F99-F380-4005-8483-3ACA6C104220} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {9538341F-8A00-4356-A2B2-5C2959979F22} = {50C758FE-4E10-409A-94F5-A75480960864} - {23FEFC89-5D2F-491C-BBE0-0E73AFD8BA47} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} - {55905937-1399-46DB-BA38-E426801CB759} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {4ADCBA87-30DB-44F5-85E9-94A4F4132FD9} = {E1082E26-D700-4127-9329-66D673FD2D55} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50} - EndGlobalSection - GlobalSection(SharedMSBuildProjectFiles) = preSolution - src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{2e41cbbf-999a-40f1-bf65-ea68585ca070}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\UITests.Shared\Compatibility.UITests.projitems*{2e41cbbf-999a-40f1-bf65-ea68585ca070}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{306c0b6e-b797-40a0-994c-4f923e91f31b}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\UITests.Shared\Compatibility.UITests.projitems*{306c0b6e-b797-40a0-994c-4f923e91f31b}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{7a28bab3-4396-415f-8473-2700027e57a7}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{ae2513cb-4e5e-4e5c-8237-88954d4c9433}*SharedItemsImports = 13 - src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{b111c308-8b8b-4679-a229-39f80013d51e}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\UITests.Shared\Compatibility.UITests.projitems*{b111c308-8b8b-4679-a229-39f80013d51e}*SharedItemsImports = 5 - src\Compatibility\ControlGallery\src\UITests.Shared\Compatibility.UITests.projitems*{e175485b-3c8c-47d7-8dd5-f7fed627eb25}*SharedItemsImports = 13 - EndGlobalSection -EndGlobal diff --git a/Microsoft.Maui.sln b/Microsoft.Maui.sln index 37c133515923..dc75c7a0ce34 100644 --- a/Microsoft.Maui.sln +++ b/Microsoft.Maui.sln @@ -1,3 +1,4 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31410.414 @@ -6,16 +7,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\src\Core.c EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core", "src\Controls\src\Core\Controls.Core.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility", "src\Compatibility\Core\src\Compatibility.csproj", "{00A11C2F-969F-4964-8557-91ADF4B1523D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{459BF674-83CB-46F6-881F-A2D2117DBF4D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E1082E26-D700-4127-9329-66D673FD2D55}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample", "src\Controls\samples\Controls.Sample\Maui.Controls.Sample.csproj", "{B8DC1324-977C-46F1-B697-9064ADE6099A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{123AA89E-1638-4E0E-B828-B8F9F9F906A2}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{09C264E9-E3F3-4586-9151-DCBB1F6DA7AB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks", "src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj", "{75C380E0-CE53-4C01-B89F-CF685331DE18}" @@ -88,8 +85,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.Benchmarks", "src\Core EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.DeviceTests", "src\Core\tests\DeviceTests\Core.DeviceTests.csproj", "{A9D5F998-78D3-4DEE-883F-510A7C3AA587}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{446EB407-57EB-441D-9ADB-1A006CBF672A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A1D83459-24AC-4124-AE5F-09F0318AF0EB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{420BC8CC-EE70-49A1-964A-CB63414A882D}" @@ -110,8 +105,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.CustomAttributes", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Profiling", "src\Controls\samples\Controls.Sample.Profiling\Maui.Controls.Sample.Profiling.csproj", "{75DB635C-0035-46E7-9A33-857D38082503}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android.AppLinks", "src\Compatibility\Android.AppLinks\src\Compatibility.Android.AppLinks.csproj", "{742AB9F4-B2A3-464F-9584-7D07E28D0716}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95BF8553-3D9D-4831-ACDD-A3E697BC08A6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample", "src\Essentials\samples\Samples\Essentials.Sample.csproj", "{C677BF3D-B234-491D-BA48-D9742DB564F8}" @@ -225,10 +218,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualTestUtils", "src\Test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualTestUtils.MagickNet", "src\TestUtils\src\VisualTestUtils.MagickNet\VisualTestUtils.MagickNet.csproj", "{D3A3C971-EFBF-441F-AA5D-C59673861B88}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{6730CE13-8567-4DC8-B2AF-B12C39818825}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Core.UnitTests", "src\Compatibility\Core\tests\Compatibility.UnitTests\Compatibility.Core.UnitTests.csproj", "{9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SourceGen.UnitTests", "src\Controls\tests\SourceGen.UnitTests\SourceGen.UnitTests.csproj", "{199777D4-0EA9-4AAB-82A0-0B53D4BA9E4B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.TestCases.Shared.Tests", "src\Controls\tests\TestCases.Shared.Tests\Controls.TestCases.Shared.Tests.csproj", "{759A73E9-0F51-4A44-BA03-9B2AE4524423}" @@ -283,10 +272,6 @@ Global {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU {AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU - {00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.Build.0 = Release|Any CPU {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Build.0 = Debug|Any CPU {B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU @@ -413,10 +398,6 @@ Global {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.ActiveCfg = Release|Any CPU {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.Build.0 = Release|Any CPU {75DB635C-0035-46E7-9A33-857D38082503}.Release|Any CPU.Deploy.0 = Release|Any CPU - {742AB9F4-B2A3-464F-9584-7D07E28D0716}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {742AB9F4-B2A3-464F-9584-7D07E28D0716}.Debug|Any CPU.Build.0 = Debug|Any CPU - {742AB9F4-B2A3-464F-9584-7D07E28D0716}.Release|Any CPU.ActiveCfg = Release|Any CPU - {742AB9F4-B2A3-464F-9584-7D07E28D0716}.Release|Any CPU.Build.0 = Release|Any CPU {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {C677BF3D-B234-491D-BA48-D9742DB564F8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU @@ -616,10 +597,6 @@ Global {D3A3C971-EFBF-441F-AA5D-C59673861B88}.Debug|Any CPU.Build.0 = Debug|Any CPU {D3A3C971-EFBF-441F-AA5D-C59673861B88}.Release|Any CPU.ActiveCfg = Release|Any CPU {D3A3C971-EFBF-441F-AA5D-C59673861B88}.Release|Any CPU.Build.0 = Release|Any CPU - {9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7}.Release|Any CPU.Build.0 = Release|Any CPU {199777D4-0EA9-4AAB-82A0-0B53D4BA9E4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {199777D4-0EA9-4AAB-82A0-0B53D4BA9E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU {199777D4-0EA9-4AAB-82A0-0B53D4BA9E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -693,7 +670,6 @@ Global GlobalSection(NestedProjects) = preSolution {95BA42B5-B00E-4986-B9B5-517140378452} = {E8AD265B-3C67-4640-AC58-A522F9FB3361} {AF64451F-E2BD-41C2-B083-F60C26AE2A9F} = {50C758FE-4E10-409A-94F5-A75480960864} - {00A11C2F-969F-4964-8557-91ADF4B1523D} = {446EB407-57EB-441D-9ADB-1A006CBF672A} {E1082E26-D700-4127-9329-66D673FD2D55} = {459BF674-83CB-46F6-881F-A2D2117DBF4D} {B8DC1324-977C-46F1-B697-9064ADE6099A} = {E1082E26-D700-4127-9329-66D673FD2D55} {75C380E0-CE53-4C01-B89F-CF685331DE18} = {50C758FE-4E10-409A-94F5-A75480960864} @@ -725,7 +701,6 @@ Global {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} = {6998CAA1-11D4-46B2-B80F-0AC882F58124} {33B599D2-B231-4D17-8957-397E24B0FE33} = {C564DDD6-DE79-45CD-88EA-3F690481572A} {A9D5F998-78D3-4DEE-883F-510A7C3AA587} = {C564DDD6-DE79-45CD-88EA-3F690481572A} - {446EB407-57EB-441D-9ADB-1A006CBF672A} = {123AA89E-1638-4E0E-B828-B8F9F9F906A2} {A1D83459-24AC-4124-AE5F-09F0318AF0EB} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} {420BC8CC-EE70-49A1-964A-CB63414A882D} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} {66528BE6-FF53-4A3B-8675-46C0B929C83B} = {420BC8CC-EE70-49A1-964A-CB63414A882D} @@ -736,7 +711,6 @@ Global {F7A258F6-F4CB-4209-9E63-AECDB2E1F4ED} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} {F7B6C73A-6019-4EAE-9258-E08C0C57829F} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} {75DB635C-0035-46E7-9A33-857D38082503} = {E1082E26-D700-4127-9329-66D673FD2D55} - {742AB9F4-B2A3-464F-9584-7D07E28D0716} = {446EB407-57EB-441D-9ADB-1A006CBF672A} {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} = {94F3C036-A5F4-4ACC-A028-8506802ADB88} {C677BF3D-B234-491D-BA48-D9742DB564F8} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} {F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6} @@ -789,8 +763,6 @@ Global {8050448A-E08F-4972-9B47-16042A5DFE82} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} {2B2488AE-CCD7-4D28-9526-9C2D722C23F0} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} {D3A3C971-EFBF-441F-AA5D-C59673861B88} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C} - {6730CE13-8567-4DC8-B2AF-B12C39818825} = {123AA89E-1638-4E0E-B828-B8F9F9F906A2} - {9F3DD0E7-8A71-4BA8-A3E6-690DC5A9F3D7} = {6730CE13-8567-4DC8-B2AF-B12C39818825} {199777D4-0EA9-4AAB-82A0-0B53D4BA9E4B} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} {759A73E9-0F51-4A44-BA03-9B2AE4524423} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} {6A6AA47E-4913-46B3-84A8-A0C9CF3EB4F7} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E} diff --git a/docs/design/NuGets.md b/docs/design/NuGets.md index 7db4653f76d5..edf676bff05a 100644 --- a/docs/design/NuGets.md +++ b/docs/design/NuGets.md @@ -14,7 +14,6 @@ There are several artifacts in the .NET MAUI "universe": * `Microsoft.Maui.Resizetizer` - The framework-and-platform-agnostic asset generator and integrator * `Microsoft.Maui.Core` - The base interfaces and handlers for all .NET MAUI things * `Microsoft.Maui.Essentials` - The core set of framework-agnostic, cross-platform APIs - * `Microsoft.Maui.Controls.Compatibility` - The set of compatibility APIs for Xamarin.Forms * .NET MAUI maps support: * `Microsoft.Maui.Controls.Maps` - The set of XAML-based map controls * `Microsoft.Maui.Maps` - The set of handlers and interfaces for mapping controls diff --git a/eng/Microsoft.Maui.Packages-mac.slnf b/eng/Microsoft.Maui.Packages-mac.slnf index 5529edb22fdb..e8c9c36aed14 100644 --- a/eng/Microsoft.Maui.Packages-mac.slnf +++ b/eng/Microsoft.Maui.Packages-mac.slnf @@ -4,7 +4,6 @@ "projects": [ "src\\AI\\src\\Essentials.AI\\Essentials.AI.csproj", "src\\BlazorWebView\\src\\Maui\\Microsoft.AspNetCore.Components.WebView.Maui.csproj", - "src\\Compatibility\\Core\\src\\Compatibility.csproj", "src\\Controls\\Foldable\\src\\Controls.Foldable.csproj", "src\\Controls\\Maps\\src\\Controls.Maps.csproj", "src\\Controls\\src\\Build.Tasks\\Controls.Build.Tasks.csproj", diff --git a/eng/Microsoft.Maui.Packages.slnf b/eng/Microsoft.Maui.Packages.slnf index 7c21491d97e3..0388fc543d57 100644 --- a/eng/Microsoft.Maui.Packages.slnf +++ b/eng/Microsoft.Maui.Packages.slnf @@ -6,7 +6,6 @@ "src\\BlazorWebView\\src\\Maui\\Microsoft.AspNetCore.Components.WebView.Maui.csproj", "src\\BlazorWebView\\src\\WindowsForms\\Microsoft.AspNetCore.Components.WebView.WindowsForms.csproj", "src\\BlazorWebView\\src\\Wpf\\Microsoft.AspNetCore.Components.WebView.Wpf.csproj", - "src\\Compatibility\\Core\\src\\Compatibility.csproj", "src\\Controls\\Foldable\\src\\Controls.Foldable.csproj", "src\\Controls\\Maps\\src\\Controls.Maps.csproj", "src\\Controls\\src\\Build.Tasks\\Controls.Build.Tasks.csproj", diff --git a/eng/cake/dotnet.cake b/eng/cake/dotnet.cake index 084a098460c9..a4bd1e5bcb33 100644 --- a/eng/cake/dotnet.cake +++ b/eng/cake/dotnet.cake @@ -272,14 +272,13 @@ Task("dotnet-test") "**/Essentials.AI.UnitTests.csproj", "**/Resizetizer.UnitTests.csproj", "**/Graphics.Tests.csproj", - "**/Compatibility.Core.UnitTests.csproj", }; var success = true; foreach (var test in tests) { - if (!IsRunningOnWindows() && (test.Contains("Compatibility.Core.UnitTests") || test.Contains("Controls.Core.Design.UnitTests"))) + if (!IsRunningOnWindows() && test.Contains("Controls.Core.Design.UnitTests")) { continue; } diff --git a/src/BlazorWebView/tests/DeviceTests/MauiBlazorWebView.DeviceTests.csproj b/src/BlazorWebView/tests/DeviceTests/MauiBlazorWebView.DeviceTests.csproj index 6bcfef41eae7..7d3028cc2cba 100644 --- a/src/BlazorWebView/tests/DeviceTests/MauiBlazorWebView.DeviceTests.csproj +++ b/src/BlazorWebView/tests/DeviceTests/MauiBlazorWebView.DeviceTests.csproj @@ -34,7 +34,6 @@ - diff --git a/src/Compatibility/Android.AppLinks/src/AndroidAppLinks.cs b/src/Compatibility/Android.AppLinks/src/AndroidAppLinks.cs deleted file mode 100644 index 6093de1021b7..000000000000 --- a/src/Compatibility/Android.AppLinks/src/AndroidAppLinks.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using Android.App; -using Android.Content; -using Android.Gms.Tasks; -using Android.Runtime; -using Android.Util; -using Firebase.AppIndexing; -using Actions = Firebase.AppIndexing.Builders.Actions; -using GMSTask = Android.Gms.Tasks.Task; -using IndexingAction = Firebase.AppIndexing.IAction; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks -{ - [Preserve(AllMembers = true)] - public class AndroidAppLinks : IAppLinks, IDisposable - { - bool _disposed; - - public static bool IsInitialized { get; private set; } - - public static Context Context { get; private set; } - - public static void Init(Activity activity) - { - if (IsInitialized) - return; - IsInitialized = true; - - Context = activity; - } - - public AndroidAppLinks(Context context) - { - } - - public void DeregisterLink(IAppLinkEntry appLink) - { - RemoveFromIndexItemAsync(appLink.AppLinkUri.ToString()); - } - - public void DeregisterLink(Uri appLinkUri) - { - RemoveFromIndexItemAsync(appLinkUri.ToString()); - } - - public void RegisterLink(IAppLinkEntry appLink) - { - IndexItemAsync(appLink); - - } - - public void Dispose() - { - Dispose(true); - } - - protected virtual void Dispose(bool isDisposing) - { - if (isDisposing && !_disposed) - { - _disposed = true; - } - } - - void IndexItemAsync(IAppLinkEntry appLink) - { - //IndexingAction indexAction = BuildIndexAction(appLink); - var url = global::Android.Net.Uri.Parse(appLink.AppLinkUri.AbsoluteUri).ToString(); - IIndexable indexable = GetIndexable(appLink, url); - IndexingAction indexAction = GetAction(appLink, url); - /* If you’re logging an action on an item that has already been added to the index, - * you don’t have to add the following update line. See - * https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index for - * adding content to the index - */ - - - FirebaseAppIndex.GetInstance(Context).Update(indexable); - GMSTask gmsTask = FirebaseUserActions.GetInstance(Context) - .Start(indexAction) - .AddOnSuccessListener(Context.GetActivity(), - new AndroidActionSuccessListener(appLink as AppLinkEntry, indexAction)) - .AddOnFailureListener(Context.GetActivity(), - new AndroidActionFailureListener(appLink as AppLinkEntry, indexAction)); - } - - void RemoveFromIndexItemAsync(string identifier) - { - FirebaseAppIndex.GetInstance(Context).Remove(identifier); - } - - IIndexable GetIndexable(IAppLinkEntry appLink, string url) - { - var indexableBuilder = new IndexableBuilder(); - indexableBuilder.SetName(appLink.Title); - indexableBuilder.SetUrl(url); - indexableBuilder.SetDescription(appLink.Description); - return indexableBuilder.Build(); - } - - IndexingAction GetAction(IAppLinkEntry applink, string url) - { - return Actions.NewView(applink.Title, url); - } - - internal class AndroidActionSuccessListener : Java.Lang.Object, IOnSuccessListener - { - readonly AppLinkEntry appLink; - readonly IndexingAction indexAction; - - public AndroidActionSuccessListener(AppLinkEntry appLink, IndexingAction indexAction) - { - this.appLink = appLink; - this.indexAction = indexAction; - } - - public void OnSuccess(Java.Lang.Object result) - { - if (appLink != null) - { - appLink.PropertyChanged += (sender, e) => - { - if (e.PropertyName == AppLinkEntry.IsLinkActiveProperty.PropertyName) - { - if (appLink.IsLinkActive) - { - FirebaseUserActions.GetInstance(Context).Start(indexAction); - } - else - { - FirebaseUserActions.GetInstance(Context).End(indexAction); - } - } - }; - } - } - } - internal class AndroidActionFailureListener : Java.Lang.Object, IOnFailureListener - { - readonly AppLinkEntry appLink; - readonly IndexingAction indexAction; - - public AndroidActionFailureListener(AppLinkEntry appLink, IndexingAction indexAction) - { - this.appLink = appLink; - this.indexAction = indexAction; - } - - public void OnFailure(Java.Lang.Exception e) - { - Log.Error(this.Class.Name, e, $" [{DateTime.Now}] - [AndroidAppLinks Failure] - {e.Message}"); - throw e; - } - } - } -} - diff --git a/src/Compatibility/Android.AppLinks/src/Compatibility.Android.AppLinks.csproj b/src/Compatibility/Android.AppLinks/src/Compatibility.Android.AppLinks.csproj deleted file mode 100644 index 46cae8ea7287..000000000000 --- a/src/Compatibility/Android.AppLinks/src/Compatibility.Android.AppLinks.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - $(_MauiDotNetTfm)-android - Microsoft.Maui.Controls.Compatibility.Android.AppLinks - Microsoft.Maui.Controls.Compatibility.Android.AppLinks - false - disable - 0618 - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Compatibility/Android.AppLinks/src/ContextExtensions.cs b/src/Compatibility/Android.AppLinks/src/ContextExtensions.cs deleted file mode 100644 index 93d2e20a537d..000000000000 --- a/src/Compatibility/Android.AppLinks/src/ContextExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Android.Content; -using AActivity = Android.App.Activity; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks -{ - internal static class ContextExtensions - { - public static AActivity GetActivity(this Context context) - { - if (context == null) - return null; - - if (context is AActivity activity) - return activity; - - if (context is ContextWrapper contextWrapper) - return contextWrapper.BaseContext.GetActivity(); - - return null; - } - } -} diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/BaseCellView.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/BaseCellView.cs deleted file mode 100644 index 180bb01d31d3..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/BaseCellView.cs +++ /dev/null @@ -1,194 +0,0 @@ -using System; -using Android.Content; -using Android.Text; -using Android.Views; -using Android.Widget; -using AndroidX.Core.Widget; -using Microsoft.Extensions.Logging; -using Microsoft.Maui.Controls.Internals; -using Microsoft.Maui.Graphics; -using AView = Android.Views.View; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public class BaseCellView : LinearLayout, INativeElementView - { - public const double DefaultMinHeight = 44; - - readonly Color _androidDefaultTextColor; - Cell _cell; - readonly TextView _detailText; - readonly ImageView _imageView; - readonly TextView _mainText; - Color _defaultDetailColor; - Color _defaultMainTextColor; - Color _detailTextColor; - string _detailTextText; - ImageSource _imageSource; - Color _mainTextColor; - string _mainTextText; - - public BaseCellView(Context context, Cell cell) : base(context) - { - _cell = cell; - SetMinimumWidth((int)context.ToPixels(25)); - SetMinimumHeight((int)context.ToPixels(25)); - Orientation = Orientation.Horizontal; - - var padding = (int)context.FromPixels(8); - SetPadding(padding, padding, padding, padding); - - _imageView = new ImageView(context); - var imageParams = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.MatchParent) - { - Width = (int)context.ToPixels(60), - Height = (int)context.ToPixels(60), - RightMargin = 0, - Gravity = GravityFlags.Center - }; - using (imageParams) - AddView(_imageView, imageParams); - - var textLayout = new LinearLayout(context) { Orientation = Orientation.Vertical }; - - _mainText = new TextView(context); - _mainText.SetSingleLine(true); - _mainText.Ellipsize = TextUtils.TruncateAt.End; - _mainText.SetPadding((int)context.ToPixels(15), padding, padding, padding); - TextViewCompat.SetTextAppearance(_mainText, global::Android.Resource.Style.TextAppearanceSmall); - - using (var lp = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)) - textLayout.AddView(_mainText, lp); - - _detailText = new TextView(context); - _detailText.SetSingleLine(true); - _detailText.Ellipsize = TextUtils.TruncateAt.End; - _detailText.SetPadding((int)context.ToPixels(15), padding, padding, padding); - _detailText.Visibility = ViewStates.Gone; - TextViewCompat.SetTextAppearance(_detailText, global::Android.Resource.Style.TextAppearanceSmall); - - using (var lp = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)) - textLayout.AddView(_detailText, lp); - - var layoutParams = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent) { Width = 0, Weight = 1, Gravity = GravityFlags.Center }; - - using (layoutParams) - AddView(textLayout, layoutParams); - - SetMinimumHeight((int)context.ToPixels(DefaultMinHeight)); - _androidDefaultTextColor = Color.FromUint((uint)_mainText.CurrentTextColor); - _mainText.TextAlignment = global::Android.Views.TextAlignment.ViewStart; - _detailText.TextAlignment = global::Android.Views.TextAlignment.ViewStart; - } - - public AView AccessoryView { get; private set; } - - public string DetailText - { - get { return _detailTextText; } - set - { - if (_detailTextText == value) - return; - - _detailTextText = value; - _detailText.Text = value; - _detailText.Visibility = string.IsNullOrEmpty(value) ? ViewStates.Gone : ViewStates.Visible; - } - } - - public string MainText - { - get { return _mainTextText; } - set - { - if (_mainTextText == value) - return; - - _mainTextText = value; - _mainText.Text = value; - } - } - - Element INativeElementView.Element - { - get { return _cell; } - } - - public void SetAccessoryView(AView view) - { - if (AccessoryView != null) - RemoveView(AccessoryView); - - if (view != null) - { - using (var layout = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.MatchParent)) - AddView(view, layout); - - AccessoryView = view; - } - } - - public void SetDefaultMainTextColor(Color defaultColor) - { - _defaultMainTextColor = defaultColor; - if (_mainTextColor == null) - _mainText.SetTextColor(defaultColor.ToAndroid()); - } - - public void SetDetailTextColor(Color color) - { - if (_detailTextColor == color) - return; - - if (_defaultDetailColor == null) - _defaultDetailColor = Color.FromUint((uint)_detailText.CurrentTextColor); - - _detailTextColor = color; - _detailText.SetTextColor(color.ToAndroid(_defaultDetailColor)); - } - - public void SetImageSource(ImageSource source) - { - UpdateBitmap(source, _imageSource); - _imageSource = source; - } - - public void SetImageVisible(bool visible) - { - _imageView.Visibility = visible ? ViewStates.Visible : ViewStates.Gone; - } - - public void SetIsEnabled(bool isEnable) - { - _mainText.Enabled = isEnable; - _detailText.Enabled = isEnable; - } - - public void SetMainTextColor(Color color) - { - Color defaultColorToSet = _defaultMainTextColor == null ? _androidDefaultTextColor : _defaultMainTextColor; - - _mainTextColor = color; - _mainText.SetTextColor(color.ToAndroid(defaultColorToSet)); - } - - public void SetRenderHeight(double height) - { - height = Context.ToPixels(height); - LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.MatchParent, (int)(height == -1 ? ViewGroup.LayoutParams.WrapContent : height)); - } - - async void UpdateBitmap(ImageSource source, ImageSource previousSource = null) - { - try - { - await _imageView.UpdateBitmap(source, previousSource).ConfigureAwait(false); - } - catch (Exception ex) - { - Application.Current?.FindMauiContext()?.CreateLogger()?.LogWarning(ex, $"Error loading image"); - } - } - } -} \ No newline at end of file diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/CellAdapter.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/CellAdapter.cs deleted file mode 100644 index bf08d1d1eb9c..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/CellAdapter.cs +++ /dev/null @@ -1,350 +0,0 @@ -using System; -using System.Collections.Specialized; -using System.ComponentModel; -using Android.Content; -using Android.Util; -using Android.Views; -using Android.Widget; -using AndroidX.AppCompat.App; -using AActionMode = global::AndroidX.AppCompat.View.ActionMode; -using AListView = Android.Widget.ListView; -using AView = Android.Views.View; -using Microsoft.Maui.Controls.Platform; -using AMenu = Android.Views.IMenu; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public abstract class CellAdapter : BaseAdapter, AdapterView.IOnItemLongClickListener, ActionMode.ICallback, AdapterView.IOnItemClickListener, AActionMode.ICallback - { - readonly Context _context; - ActionMode _actionMode; - Cell _actionModeContext; - - bool _actionModeNeedsUpdates; - AView _contextView; - AActionMode _supportActionMode; - - protected CellAdapter(Context context) - { - if (context == null) - throw new ArgumentNullException("context"); - - _context = context; - } - - internal Cell ActionModeContext - { - get { return _actionModeContext; } - set - { - if (_actionModeContext == value) - return; - - if (_actionModeContext != null) - ((INotifyCollectionChanged)_actionModeContext.ContextActions).CollectionChanged -= OnContextItemsChanged; - - ActionModeObject = null; - _actionModeContext = value; - - if (_actionModeContext != null) - { - ((INotifyCollectionChanged)_actionModeContext.ContextActions).CollectionChanged += OnContextItemsChanged; - ActionModeObject = _actionModeContext.BindingContext; - } - } - } - - internal object ActionModeObject { get; set; } - - internal AView ContextView - { - get { return _contextView; } - set - { - if (_contextView == value) - return; - - if (_contextView != null) - { - var isSelected = (bool)ActionModeContext.GetValue(ListViewAdapter.IsSelectedProperty); - if (isSelected) - SetSelectedBackground(_contextView); - else - UnsetSelectedBackground(_contextView); - } - - _contextView = value; - - if (_contextView != null) - SetSelectedBackground(_contextView, true); - } - } - - public bool OnActionItemClicked(ActionMode mode, IMenuItem item) - { - mode.Menu.Clear(); - OnActionItemClickedImpl(item); - _actionMode?.Finish(); - return true; - } - - bool AActionMode.ICallback.OnActionItemClicked(AActionMode mode, IMenuItem item) - { - mode.Menu.Clear(); - OnActionItemClickedImpl(item); - _supportActionMode?.Finish(); - return true; - } - - public bool OnCreateActionMode(ActionMode mode, IMenu menu) - { - CreateContextMenu(menu); - return true; - } - - bool AActionMode.ICallback.OnCreateActionMode(AActionMode mode, IMenu menu) - { - CreateContextMenu(menu); - return true; - } - - public void OnDestroyActionMode(ActionMode mode) - { - OnDestroyActionModeImpl(); - _actionMode.Dispose(); - _actionMode = null; - } - - void AActionMode.ICallback.OnDestroyActionMode(AActionMode mode) - { - OnDestroyActionModeImpl(); - _supportActionMode.Dispose(); - _supportActionMode = null; - } - - public bool OnPrepareActionMode(ActionMode mode, IMenu menu) - { - return OnPrepareActionModeImpl(menu); - } - - bool AActionMode.ICallback.OnPrepareActionMode(AActionMode mode, IMenu menu) - { - return OnPrepareActionModeImpl(menu); - } - - public void OnItemClick(AdapterView parent, AView view, int position, long id) - { - if (_actionMode != null || _supportActionMode != null) - { - var listView = parent as AListView; - if (listView != null) - position -= listView.HeaderViewsCount; - HandleContextMode(view, position); - } - else - HandleItemClick(parent, view, position, id); - } - - public bool OnItemLongClick(AdapterView parent, AView view, int position, long id) - { - var listView = parent as AListView; - if (listView != null) - position -= listView.HeaderViewsCount; - return HandleContextMode(view, position); - } - - protected abstract Cell GetCellForPosition(int position); - - protected virtual void HandleItemClick(AdapterView parent, AView view, int position, long id) - { - } - - protected void SetSelectedBackground(AView view, bool isContextTarget = false) - { - int attribute = isContextTarget ? global::Android.Resource.Attribute.ColorLongPressedHighlight : global::Android.Resource.Attribute.ColorActivatedHighlight; - using (var value = new TypedValue()) - { - if (_context.Theme.ResolveAttribute(attribute, value, true)) - view.SetBackgroundResource(value.ResourceId); - else - view.SetBackgroundResource(global::Android.Resource.Color.HoloBlueDark); - } - } - - protected void UnsetSelectedBackground(AView view) - { - view.SetBackgroundResource(0); - } - - internal void CloseContextActions() - { - _actionMode?.Finish(); - _supportActionMode?.Finish(); - } - - void CreateContextMenu(IMenu menu) - { - var changed = new PropertyChangedEventHandler(OnContextActionPropertyChanged); - var changing = new PropertyChangingEventHandler(OnContextActionPropertyChanging); - var commandChanged = new EventHandler(OnContextActionCommandCanExecuteChanged); - - for (var i = 0; i < ActionModeContext.ContextActions.Count; i++) - { - MenuItem action = ActionModeContext.ContextActions[i]; - - IMenuItem item = menu.Add(AMenu.None, i, AMenu.None, action.Text); - - - _ = _context.ApplyDrawableAsync(action, MenuItem.IconImageSourceProperty, iconDrawable => - { - if (iconDrawable != null && !this.IsDisposed() && !_actionModeNeedsUpdates) - { - item.SetIcon(iconDrawable); - item.SetTitleOrContentDescription(action); - } - }); - - action.PropertyChanged += changed; - action.PropertyChanging += changing; - - if (action.Command != null) - action.Command.CanExecuteChanged += commandChanged; - - if (!((IMenuItemController)action).IsEnabled) - item.SetEnabled(false); - } - } - - bool HandleContextMode(AView view, int position) - { - if (view is EditText || view is TextView || view is SearchView) - return false; - - Cell cell = GetCellForPosition(position); - - if (cell == null) - return false; - - if (_actionMode != null || _supportActionMode != null) - { - if (!cell.HasContextActions) - { - CloseContextActions(); - return false; - } - - ActionModeContext = cell; - - if (ActionModeContext.IsContextActionsLegacyModeEnabled == false) - _actionModeNeedsUpdates = true; - - _actionMode?.Invalidate(); - _supportActionMode?.Invalidate(); - } - else - { - if (!cell.HasContextActions) - return false; - - ActionModeContext = cell; - - var appCompatActivity = view.Context as AppCompatActivity; - if (appCompatActivity == null) - _actionMode = view.Context.GetActivity().StartActionMode(this); - else - _supportActionMode = appCompatActivity.StartSupportActionMode(this); - } - - ContextView = view; - - return true; - } - - void OnActionItemClickedImpl(IMenuItem item) - { - if (ActionModeContext == null) - { - return; - } - - int index = item.ItemId; - IMenuItemController action = ActionModeContext.ContextActions[index]; - - action.Activate(); - } - - void OnContextActionCommandCanExecuteChanged(object sender, EventArgs eventArgs) - { - _actionModeNeedsUpdates = true; - _actionMode?.Invalidate(); - _supportActionMode?.Invalidate(); - } - - void OnContextActionPropertyChanged(object sender, PropertyChangedEventArgs e) - { - var action = (MenuItem)sender; - - if (e.PropertyName == MenuItem.CommandProperty.PropertyName) - { - if (action.Command != null) - action.Command.CanExecuteChanged += OnContextActionCommandCanExecuteChanged; - } - else - _actionModeNeedsUpdates = true; - } - - void OnContextActionPropertyChanging(object sender, PropertyChangingEventArgs e) - { - var action = (MenuItem)sender; - - if (e.PropertyName == MenuItem.CommandProperty.PropertyName) - { - if (action.Command != null) - action.Command.CanExecuteChanged -= OnContextActionCommandCanExecuteChanged; - } - } - - void OnContextItemsChanged(object sender, NotifyCollectionChangedEventArgs e) - { - _actionModeNeedsUpdates = true; - _actionMode?.Invalidate(); - _supportActionMode?.Invalidate(); - } - - void OnDestroyActionModeImpl() - { - var changed = new PropertyChangedEventHandler(OnContextActionPropertyChanged); - var changing = new PropertyChangingEventHandler(OnContextActionPropertyChanging); - var commandChanged = new EventHandler(OnContextActionCommandCanExecuteChanged); - - ((INotifyCollectionChanged)ActionModeContext.ContextActions).CollectionChanged -= OnContextItemsChanged; - - for (var i = 0; i < ActionModeContext.ContextActions.Count; i++) - { - MenuItem action = ActionModeContext.ContextActions[i]; - action.PropertyChanged -= changed; - action.PropertyChanging -= changing; - - if (action.Command != null) - action.Command.CanExecuteChanged -= commandChanged; - } - ContextView = null; - - ActionModeContext = null; - _actionModeNeedsUpdates = false; - } - - bool OnPrepareActionModeImpl(IMenu menu) - { - if (_actionModeNeedsUpdates) - { - _actionModeNeedsUpdates = false; - - menu.Clear(); - CreateContextMenu(menu); - } - - return false; - } - } -} diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/ConditionalFocusLayout.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/ConditionalFocusLayout.cs deleted file mode 100644 index 4aae6072898f..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/ConditionalFocusLayout.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Android.Content; -using Android.Views; -using Android.Widget; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - internal class ConditionalFocusLayout : LinearLayout, global::Android.Views.View.IOnTouchListener - { - public ConditionalFocusLayout(System.IntPtr p, global::Android.Runtime.JniHandleOwnership o) : base(p, o) - { - // Added default constructor to prevent crash when accessing selected row in ListViewAdapter.Dispose - } - - public ConditionalFocusLayout(Context context) : base(context) - { - SetOnTouchListener(this); - } - - public bool OnTouch(global::Android.Views.View v, MotionEvent e) - { - bool allowFocus = v is EditText; - DescendantFocusability = allowFocus ? DescendantFocusability.AfterDescendants : DescendantFocusability.BlockDescendants; - return false; - } - - internal void ApplyTouchListenersToSpecialCells(Cell item) - { - DescendantFocusability = DescendantFocusability.BlockDescendants; - - global::Android.Views.View aView = GetChildAt(0); - (aView as EntryCellView)?.EditText.SetOnTouchListener(this); - - var viewCell = item as ViewCell; - if (viewCell?.View == null) - return; - - IVisualElementRenderer renderer = Platform.GetRenderer(viewCell.View); - GetEditText(renderer)?.SetOnTouchListener(this); - - foreach (Element descendant in viewCell.View.Descendants()) - { - var element = descendant as VisualElement; - if (element == null) - continue; - renderer = Platform.GetRenderer(element); - GetEditText(renderer)?.SetOnTouchListener(this); - } - } - - internal EditText GetEditText(IVisualElementRenderer renderer) - { - var viewGroup = renderer?.View as ViewGroup; - return viewGroup?.GetChildAt(0) as EditText; - } - } -} \ No newline at end of file diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellEditText.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellEditText.cs deleted file mode 100644 index 3e91e9630b22..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellEditText.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using Android.Content; -using Android.Views; -using Android.Widget; -using ARect = Android.Graphics.Rect; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public sealed class EntryCellEditText : EditText - { - SoftInput _startingMode; - - public EntryCellEditText(Context context) : base(context) - { - } - - public override bool OnKeyPreIme(Keycode keyCode, KeyEvent e) - { - if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down) - { - EventHandler handler = BackButtonPressed; - if (handler != null) - handler(this, EventArgs.Empty); - } - return base.OnKeyPreIme(keyCode, e); - } - - protected override void OnFocusChanged(bool gainFocus, FocusSearchDirection direction, ARect previouslyFocusedRect) - { - var window = Context.GetActivity().Window; - if (gainFocus) - { - _startingMode = window.Attributes.SoftInputMode; - window.SetSoftInputMode(SoftInput.AdjustPan); - } - else - window.SetSoftInputMode(_startingMode); - - base.OnFocusChanged(gainFocus, direction, previouslyFocusedRect); - } - - internal event EventHandler BackButtonPressed; - } -} \ No newline at end of file diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellView.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellView.cs deleted file mode 100644 index a0c70c4e2415..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/EntryCellView.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using Android.Content; -using Android.Text; -using Android.Views; -using Android.Views.InputMethods; -using Android.Widget; -using AndroidX.Core.Widget; -using Java.Lang; -using Microsoft.Maui.Controls.Platform; -using Microsoft.Maui.Graphics; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public sealed class EntryCellView : LinearLayout, ITextWatcher, global::Android.Views.View.IOnFocusChangeListener, TextView.IOnEditorActionListener, INativeElementView - { - public const double DefaultMinHeight = 55; - - readonly Cell _cell; - readonly TextView _label; - - Color _labelTextColor; - string _labelTextText; - - public EntryCellView(Context context, Cell cell) : base(context) - { - _cell = cell; - SetMinimumWidth((int)context.ToPixels(50)); - SetMinimumHeight((int)context.ToPixels(85)); - Orientation = Orientation.Horizontal; - - var padding = (int)context.ToPixels(8); - SetPadding((int)context.ToPixels(15), padding, padding, padding); - - _label = new TextView(context); - TextViewCompat.SetTextAppearance(_label, global::Android.Resource.Style.TextAppearanceSmall); - - var layoutParams = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = GravityFlags.CenterVertical }; - using (layoutParams) - AddView(_label, layoutParams); - - EditText = new EntryCellEditText(context); - EditText.AddTextChangedListener(this); - EditText.OnFocusChangeListener = this; - EditText.SetOnEditorActionListener(this); - EditText.ImeOptions = ImeAction.Done; - EditText.BackButtonPressed += OnBackButtonPressed; - //editText.SetBackgroundDrawable (null); - layoutParams = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent) { Width = 0, Weight = 1, Gravity = GravityFlags.FillHorizontal | GravityFlags.Center }; - using (layoutParams) - AddView(EditText, layoutParams); - } - - public Action EditingCompleted { get; set; } - - public EntryCellEditText EditText { get; } - - public Action FocusChanged { get; set; } - - public string LabelText - { - get { return _labelTextText; } - set - { - if (_labelTextText == value) - return; - - _labelTextText = value; - _label.Text = value; - } - } - - public Action TextChanged { get; set; } - - public Element Element - { - get { return _cell; } - } - - bool TextView.IOnEditorActionListener.OnEditorAction(TextView v, ImeAction actionId, KeyEvent e) - { - if (actionId == ImeAction.Done) - { - OnKeyboardDoneButtonPressed(EditText, EventArgs.Empty); - EditText.ClearFocus(); - v.HideSoftInput(); - } - - // Fire Completed and dismiss keyboard for hardware / physical keyboards - if (actionId == ImeAction.ImeNull && e.KeyCode == Keycode.Enter) - { - OnKeyboardDoneButtonPressed(EditText, EventArgs.Empty); - EditText.ClearFocus(); - v.HideSoftInput(); - } - - return true; - } - - void IOnFocusChangeListener.OnFocusChange(global::Android.Views.View view, bool hasFocus) - { - Action focusChanged = FocusChanged; - if (focusChanged != null) - focusChanged(hasFocus); - } - - void ITextWatcher.AfterTextChanged(IEditable s) - { - } - - void ITextWatcher.BeforeTextChanged(ICharSequence s, int start, int count, int after) - { - } - - void ITextWatcher.OnTextChanged(ICharSequence s, int start, int before, int count) - { - Action changed = TextChanged; - if (changed != null) - changed(s != null ? s.ToString() : null); - } - - public void SetLabelTextColor(Color color, int defaultColorResourceId) - { - if (_labelTextColor == color) - return; - - _labelTextColor = color; - _label.SetTextColor(color.ToAndroid(defaultColorResourceId, _label.Context)); - } - - public void SetRenderHeight(double height) - { - SetMinimumHeight((int)Context.ToPixels(height == -1 ? DefaultMinHeight : height)); - } - - void OnBackButtonPressed(object sender, EventArgs e) - { - // TODO Clear focus - } - - void OnKeyboardDoneButtonPressed(object sender, EventArgs e) - { - // TODO Clear focus - Action editingCompleted = EditingCompleted; - if (editingCompleted != null) - editingCompleted(); - } - } -} \ No newline at end of file diff --git a/src/Compatibility/Core.LegacyRenderers/Android/Cells/SwitchCellView.cs b/src/Compatibility/Core.LegacyRenderers/Android/Cells/SwitchCellView.cs deleted file mode 100644 index 00b482e74d3a..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/Cells/SwitchCellView.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Android.Content; -using Android.Widget; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public class SwitchCellView : BaseCellView, CompoundButton.IOnCheckedChangeListener - { - public SwitchCellView(Context context, Cell cell) : base(context, cell) - { - var sw = new global::Android.Widget.Switch(context); - sw.SetOnCheckedChangeListener(this); - - SetAccessoryView(sw); - - SetImageVisible(false); - } - - public SwitchCell Cell { get; set; } - - public void OnCheckedChanged(CompoundButton buttonView, bool isChecked) - { - Cell.On = isChecked; - } - } -} \ No newline at end of file diff --git a/src/Compatibility/Core.LegacyRenderers/Android/ListViewAdapter.cs b/src/Compatibility/Core.LegacyRenderers/Android/ListViewAdapter.cs deleted file mode 100644 index 4e317dbf05d6..000000000000 --- a/src/Compatibility/Core.LegacyRenderers/Android/ListViewAdapter.cs +++ /dev/null @@ -1,755 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Linq; -using Android.Content; -using Android.Util; -using Android.Views; -using Android.Widget; -using Microsoft.Maui.Controls.Internals; -using Microsoft.Maui.Graphics; -using AListView = Android.Widget.ListView; -using AView = Android.Views.View; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - internal class ListViewAdapter : CellAdapter - { - bool _disposed; - static readonly object DefaultItemTypeOrDataTemplate = new object(); - const int DefaultGroupHeaderTemplateId = 0; - const int DefaultItemTemplateId = 1; - - static int s_dividerHorizontalDarkId = int.MinValue; - - internal static readonly BindableProperty IsSelectedProperty = BindableProperty.CreateAttached("IsSelected", typeof(bool), typeof(Cell), false); - - readonly Context _context; - protected readonly ListView _listView; - readonly AListView _realListView; - readonly Dictionary _templateToId = new Dictionary(); - readonly List _layoutsCreated = new List(); - int _dataTemplateIncrementer = 2; // lets start at not 0 because ... - - // We will use _dataTemplateIncrementer to get the proper ViewType key for the item's DataTemplate and store these keys in _templateToId. - // If an item does _not_ use a DataTemplate, then the ViewType key will be DefaultItemTemplateId (1) or DefaultGroupHeaderTemplateId (0). - // To prevent a conflict in the event that a ListView supports both templates and non-templates, we will start the DataTemplate key at 2. - - int _listCount = -1; // -1 we need to get count from the list - Dictionary _prototypicalCellByTypeOrDataTemplate; - - bool _fromNative; - AView _lastSelected; - WeakReference _selectedCell; - - IListViewController Controller => _listView; - protected ITemplatedItemsView TemplatedItemsView => _listView; - - public ListViewAdapter(Context context, AListView realListView, ListView listView) : base(context) - { - _context = context; - _realListView = realListView; - _listView = listView; - _prototypicalCellByTypeOrDataTemplate = new Dictionary(); - - if (listView.SelectedItem != null) - SelectItem(listView.SelectedItem); - - var templatedItems = ((ITemplatedItemsView)listView).TemplatedItems; - templatedItems.CollectionChanged += OnCollectionChanged; - templatedItems.GroupedCollectionChanged += OnGroupedCollectionChanged; - listView.ItemSelected += OnItemSelected; - - realListView.OnItemClickListener = this; - realListView.OnItemLongClickListener = this; - - MessagingCenter.Subscribe(this, Platform.CloseContextActionsSignalName, lva => CloseContextActions()); - - InvalidateCount(); - } - - public override int Count - { - get - { - if (_listCount == -1) - { - var templatedItems = TemplatedItemsView.TemplatedItems; - int count = templatedItems.Count; - - if (_listView.IsGroupingEnabled) - { - for (var i = 0; i < templatedItems.Count; i++) - count += templatedItems.GetGroup(i).Count; - } - - _listCount = count; - } - return _listCount; - } - } - - public AView FooterView { get; set; } - - public override bool HasStableIds - { - get { return false; } - } - - public AView HeaderView { get; set; } - - public bool IsAttachedToWindow { get; set; } - - public override object this[int index] - { - get - { - if (_listView.IsGroupingEnabled) - { - Cell cell = GetCellForPosition(index); - return cell.BindingContext; - } - - return TemplatedItemsView.ListProxy[index]; - } - } - - public override int ViewTypeCount - { - get - { - // We have a documented limit of 20 templates on Android. - // ViewTypes are selected on a zero-based index, so this count must be at least 20 + 1. - // Plus, we arbitrarily increased the index of the DataTemplate index by 2 (see _dataTemplateIncrementer). - return 23; - } - } - - public override bool AreAllItemsEnabled() - { - return false; - } - - public override long GetItemId(int position) - { - return position; - } - - public override int GetItemViewType(int position) - { - var group = 0; - var row = 0; - DataTemplate itemTemplate; - if (!_listView.IsGroupingEnabled) - itemTemplate = _listView.ItemTemplate; - else - { - group = TemplatedItemsView.TemplatedItems.GetGroupIndexFromGlobal(position, out row); - - if (row == 0) - { - itemTemplate = _listView.GroupHeaderTemplate; - if (itemTemplate == null) - return DefaultGroupHeaderTemplateId; - } - else - { - itemTemplate = _listView.ItemTemplate; - row--; - } - } - - if (itemTemplate == null) - return DefaultItemTemplateId; - - if (itemTemplate is DataTemplateSelector selector) - { - object item = null; - - if (_listView.IsGroupingEnabled) - { - if (TemplatedItemsView.TemplatedItems.GetGroup(group).ListProxy.Count > 0) - item = TemplatedItemsView.TemplatedItems.GetGroup(group).ListProxy[row]; - } - else - { - if (TemplatedItemsView.TemplatedItems.ListProxy.Count > 0) - item = TemplatedItemsView.TemplatedItems.ListProxy[position]; - } - - itemTemplate = selector.SelectTemplate(item, _listView); - } - - // check again to guard against DataTemplateSelectors that return null - if (itemTemplate == null) - return DefaultItemTemplateId; - - if (!_templateToId.TryGetValue(itemTemplate, out int key)) - { - _dataTemplateIncrementer++; - key = _dataTemplateIncrementer; - _templateToId[itemTemplate] = key; - } - - if (key >= ViewTypeCount) - { - throw new Exception($"ItemTemplate count has exceeded the limit of {ViewTypeCount}" + Environment.NewLine + - "Please make sure to reuse DataTemplate objects"); - } - - return key; - } - - public override AView GetView(int position, AView convertView, ViewGroup parent) - { - Cell cell = null; - - Performance.Start(out string reference); - - ListViewCachingStrategy cachingStrategy = Controller.CachingStrategy; - var nextCellIsHeader = false; - if (cachingStrategy == ListViewCachingStrategy.RetainElement || convertView == null) - { - if (_listView.IsGroupingEnabled) - { - List cells = GetCellsFromPosition(position, 2); - if (cells.Count > 0) - cell = cells[0]; - - if (cells.Count == 2) - nextCellIsHeader = cells[1].GetIsGroupHeader, Cell>(); - } - - if (cell == null) - { - cell = GetCellForPosition(position); - - if (cell == null) - { - Performance.Stop(reference); - - return new AView(_context); - } - } - } - - var cellIsBeingReused = false; - var layout = convertView as ConditionalFocusLayout; - if (layout != null) - { - cellIsBeingReused = true; - convertView = layout.GetChildAt(0); - } - else - { - layout = new ConditionalFocusLayout(_context) { Orientation = Orientation.Vertical }; - _layoutsCreated.Add(layout); - } - - if (((cachingStrategy & ListViewCachingStrategy.RecycleElement) != 0) && convertView != null) - { - var boxedCell = convertView as INativeElementView; - if (boxedCell == null) - { - throw new InvalidOperationException($"View for cell must implement {nameof(INativeElementView)} to enable recycling."); - } - cell = (Cell)boxedCell.Element; - - ICellController cellController = cell; - cellController.SendDisappearing(); - - int row = position; - var group = 0; - var templatedItems = TemplatedItemsView.TemplatedItems; - if (_listView.IsGroupingEnabled) - group = templatedItems.GetGroupIndexFromGlobal(position, out row); - - var templatedList = templatedItems.GetGroup(group); - - if (_listView.IsGroupingEnabled) - { - if (row == 0) - templatedList.UpdateHeader(cell, group); - else - templatedList.UpdateContent(cell, row - 1); - } - else - templatedList.UpdateContent(cell, row); - - cellController.SendAppearing(); - - if (cell.BindingContext == ActionModeObject) - { - ActionModeContext = cell; - ContextView = layout; - } - - if (ReferenceEquals(_listView.SelectedItem, cell.BindingContext)) - Select(_listView.IsGroupingEnabled ? row - 1 : row, layout); - else if (cell.BindingContext == ActionModeObject) - SetSelectedBackground(layout, true); - else - UnsetSelectedBackground(layout); - - Performance.Stop(reference); - return layout; - } - - AView view = CellFactory.GetCell(cell, convertView, parent, _context, _listView); - - Performance.Start(reference, "AddView"); - - if (cellIsBeingReused) - { - if (convertView != view) - { - layout.RemoveViewAt(0); - layout.AddView(view, 0); - } - } - else - layout.AddView(view, 0); - - Performance.Stop(reference, "AddView"); - - bool isHeader = cell.GetIsGroupHeader, Cell>(); - - AView bline; - - bool isSeparatorVisible = _listView.SeparatorVisibility == SeparatorVisibility.Default; - - if (isSeparatorVisible) - { - UpdateSeparatorVisibility(cell, cellIsBeingReused, isHeader, nextCellIsHeader, isSeparatorVisible, layout, out bline); - - UpdateSeparatorColor(isHeader, bline); - } - else if (layout.ChildCount > 1) - { - layout.RemoveViewAt(1); - } - - if ((bool)cell.GetValue(IsSelectedProperty)) - Select(position, layout); - else - UnsetSelectedBackground(layout); - - layout.ApplyTouchListenersToSpecialCells(cell); - - Performance.Stop(reference); - - return layout; - } - - internal void InvalidatePrototypicalCellCache() - { - _prototypicalCellByTypeOrDataTemplate.Clear(); - } - - internal ITemplatedItemsList GetTemplatedItemsListForPath(int indexPath) - { - var templatedItems = TemplatedItemsView.TemplatedItems; - if (_listView.IsGroupingEnabled) - templatedItems = (ITemplatedItemsList)((IList)templatedItems)[indexPath]; - - return templatedItems; - } - - internal DataTemplate GetDataTemplateForPath(int indexPath) - { - var templatedItemsList = GetTemplatedItemsListForPath(indexPath); - var item = templatedItemsList.ListProxy[indexPath]; - return templatedItemsList.SelectDataTemplate(item); - } - - internal Type GetItemTypeForPath(int indexPath) - { - var templatedItemsList = GetTemplatedItemsListForPath(indexPath); - var item = templatedItemsList.ListProxy[indexPath]; - return item.GetType(); - } - - internal Cell GetCellForPath(int indexPath) - { - var templatedItemsList = GetTemplatedItemsListForPath(indexPath); - var cell = templatedItemsList[indexPath]; - return cell; - } - - internal Cell GetPrototypicalCell(int indexPath) - { - var itemTypeOrDataTemplate = default(object); - - var cachingStrategy = _listView.CachingStrategy; - if (cachingStrategy == ListViewCachingStrategy.RecycleElement) - itemTypeOrDataTemplate = GetDataTemplateForPath(indexPath); - - else if (cachingStrategy == ListViewCachingStrategy.RecycleElementAndDataTemplate) - itemTypeOrDataTemplate = GetItemTypeForPath(indexPath); - - else // ListViewCachingStrategy.RetainElement - return GetCellForPosition(indexPath); - - if (itemTypeOrDataTemplate == null) - itemTypeOrDataTemplate = DefaultItemTypeOrDataTemplate; - - Cell protoCell; - if (!_prototypicalCellByTypeOrDataTemplate.TryGetValue(itemTypeOrDataTemplate, out protoCell)) - { - // cache prototypical cell by item type; Items of the same Type share - // the same DataTemplate (this is enforced by RecycleElementAndDataTemplate) - protoCell = GetCellForPosition(indexPath); - _prototypicalCellByTypeOrDataTemplate[itemTypeOrDataTemplate] = protoCell; - } - - var templatedItems = GetTemplatedItemsListForPath(indexPath); - return templatedItems.UpdateContent(protoCell, indexPath); - } - - public override bool IsEnabled(int position) - { - ListView list = _listView; - - ITemplatedItemsView templatedItemsView = list; - if (list.IsGroupingEnabled) - { - int leftOver; - templatedItemsView.TemplatedItems.GetGroupIndexFromGlobal(position, out leftOver); - return leftOver > 0; - } - - Cell item = GetPrototypicalCell(position); - return item?.IsEnabled ?? false; - } - - protected override void Dispose(bool disposing) - { - if (_disposed) - { - return; - } - - _disposed = true; - - if (disposing) - { - CloseContextActions(); - - MessagingCenter.Unsubscribe(this, Platform.CloseContextActionsSignalName); - - _realListView.OnItemClickListener = null; - _realListView.OnItemLongClickListener = null; - - var templatedItems = TemplatedItemsView.TemplatedItems; - templatedItems.CollectionChanged -= OnCollectionChanged; - templatedItems.GroupedCollectionChanged -= OnGroupedCollectionChanged; - _listView.ItemSelected -= OnItemSelected; - - if (_lastSelected != null) - { - _lastSelected.Dispose(); - _lastSelected = null; - } - - DisposeCells(); - } - - base.Dispose(disposing); - } - - protected override Cell GetCellForPosition(int position) - { - return GetCellsFromPosition(position, 1).FirstOrDefault(); - } - - protected override void HandleItemClick(AdapterView parent, AView view, int position, long id) - { - Cell cell = null; - - if ((Controller.CachingStrategy & ListViewCachingStrategy.RecycleElement) != 0) - { - AView cellOwner = view; - var layout = cellOwner as ConditionalFocusLayout; - if (layout != null) - cellOwner = layout.GetChildAt(0); - cell = (Cell)(cellOwner as INativeElementView)?.Element; - } - - // All our ListView's have called AddHeaderView. This effectively becomes index 0, so our index 0 is index 1 to the listView. - position--; - - if (position < 0 || position >= Count) - return; - - if (_lastSelected != view) - _fromNative = true; - if (_listView.SelectionMode != ListViewSelectionMode.None) - Select(position, view); - Controller.NotifyRowTapped(position, cell); - } - - void DisposeCells() - { - var cellCount = _layoutsCreated.Count; - - for (int i = 0; i < cellCount; i++) - { - var layout = _layoutsCreated[i]; - - if (layout.IsDisposed()) - continue; - - DisposeOfConditionalFocusLayout(layout); - } - - _layoutsCreated.Clear(); - } - - void DisposeOfConditionalFocusLayout(ConditionalFocusLayout layout) - { - var renderedView = layout?.GetChildAt(0); - - var element = (renderedView as INativeElementView)?.Element; - var view = (element as ViewCell)?.View; - - if (view != null) - { - var renderer = Platform.GetRenderer(view); - - if (renderer == renderedView) - element.ClearValue(Platform.RendererProperty); - - renderer?.Dispose(); - renderer = null; - } - - renderedView?.Dispose(); - renderedView = null; - } - - // TODO: We can optimize this by storing the last position, group index and global index - // and increment/decrement from that starting place. - List GetCellsFromPosition(int position, int take) - { - var cells = new List(take); - if (position < 0) - return cells; - - var templatedItems = TemplatedItemsView.TemplatedItems; - var templatedItemsCount = templatedItems.Count; - if (!_listView.IsGroupingEnabled) - { - for (var x = 0; x < take; x++) - { - if (position + x >= templatedItemsCount) - return cells; - - cells.Add(templatedItems[x + position]); - } - - return cells; - } - - var i = 0; - var global = 0; - for (; i < templatedItemsCount; i++) - { - var group = templatedItems.GetGroup(i); - - if (global == position || cells.Count > 0) - { - //Always create a new cell if we are using the RecycleElement strategy - var recycleElement = (_listView.CachingStrategy & ListViewCachingStrategy.RecycleElement) != 0; - var headerCell = recycleElement ? GetNewGroupHeaderCell(group) : group.HeaderContent; - cells.Add(headerCell); - - if (cells.Count == take) - return cells; - } - - global++; - - if (global + group.Count < position) - { - global += group.Count; - continue; - } - - for (var g = 0; g < group.Count; g++) - { - if (global == position || cells.Count > 0) - { - cells.Add(group[g]); - if (cells.Count == take) - return cells; - } - - global++; - } - } - - return cells; - } - - void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) - { - OnDataChanged(); - } - - void OnDataChanged() - { - InvalidateCount(); - if (ActionModeContext != null && !TemplatedItemsView.TemplatedItems.Contains(ActionModeContext)) - CloseContextActions(); - - if (IsAttachedToWindow) - NotifyDataSetChanged(); - else - { - // In a TabbedPage page with two pages, Page A and Page B with ListView, if A changes B's ListView, - // we need to reset the ListView's adapter to reflect the changes on page B - // If there header and footer are present at the reset time of the adapter - // they will be DOUBLE added to the ViewGround (the ListView) causing indexes to be off by one. - _realListView.RemoveHeaderView(HeaderView); - _realListView.RemoveFooterView(FooterView); - _realListView.Adapter = _realListView.Adapter; - _realListView.AddHeaderView(HeaderView); - _realListView.AddFooterView(FooterView); - } - } - - void OnGroupedCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) - { - OnDataChanged(); - } - - void OnItemSelected(object sender, SelectedItemChangedEventArgs eventArg) - { - if (_fromNative) - { - _fromNative = false; - return; - } - - SelectItem(eventArg.SelectedItem); - } - - void Select(int index, AView view) - { - if (_lastSelected != null) - { - UnsetSelectedBackground(_lastSelected); - Cell previousCell; - if (_selectedCell.TryGetTarget(out previousCell)) - previousCell.SetValue(IsSelectedProperty, false); - } - - _lastSelected = view; - - if (index == -1) - return; - - Cell cell = GetCellForPosition(index); - cell.SetValue(IsSelectedProperty, true); - _selectedCell = new WeakReference(cell); - - if (view != null) - SetSelectedBackground(view); - } - - void SelectItem(object item) - { - if (_listView == null) - return; - - int position = TemplatedItemsView.TemplatedItems.GetGlobalIndexOfItem(item); - AView view = null; - if (position != -1) - view = _realListView.GetChildAt(position + 1 - _realListView.FirstVisiblePosition); - - Select(position, view); - } - - void UpdateSeparatorVisibility(Cell cell, bool cellIsBeingReused, bool isHeader, bool nextCellIsHeader, bool isSeparatorVisible, ConditionalFocusLayout layout, out AView bline) - { - bline = null; - if (cellIsBeingReused && layout.ChildCount > 1) - { - layout.RemoveViewAt(1); - } - var makeBline = isSeparatorVisible || isHeader && isSeparatorVisible && !nextCellIsHeader; - if (makeBline) - { - bline = new AView(_context) { LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, 1) }; - layout.AddView(bline); - } - else if (layout.ChildCount > 1) - { - layout.RemoveViewAt(1); - } - } - - - void UpdateSeparatorColor(bool isHeader, AView bline) - { - if (bline == null) - return; - - Color separatorColor = _listView.SeparatorColor; - - if (isHeader || separatorColor != null) - bline.SetBackgroundColor(separatorColor.ToAndroid(Application.AccentColor)); - else - { - if (s_dividerHorizontalDarkId == int.MinValue) - { - using (var value = new TypedValue()) - { - int id = global::Android.Resource.Drawable.DividerHorizontalDark; - if (_context.Theme.ResolveAttribute(global::Android.Resource.Attribute.ListDivider, value, true)) - id = value.ResourceId; - else if (_context.Theme.ResolveAttribute(global::Android.Resource.Attribute.Divider, value, true)) - id = value.ResourceId; - - s_dividerHorizontalDarkId = id; - } - } - - bline.SetBackgroundResource(s_dividerHorizontalDarkId); - } - } - - Cell GetNewGroupHeaderCell(ITemplatedItemsList group) - { - var groupHeaderCell = _listView.TemplatedItems.GroupHeaderTemplate?.CreateContent(group.ItemsSource, _listView) as Cell; - - if (groupHeaderCell != null) - { - groupHeaderCell.BindingContext = group.ItemsSource; - } - else - { - groupHeaderCell = new TextCell(); - groupHeaderCell.SetBinding(TextCell.TextProperty, nameof(group.Name)); - groupHeaderCell.BindingContext = group; - } - - groupHeaderCell.Parent = _listView; - groupHeaderCell.SetIsGroupHeader, Cell>(true); - return groupHeaderCell; - } - - enum CellType - { - Row, - Header - } - - protected virtual void InvalidateCount() - { - _listCount = -1; - } - } - -} \ No newline at end of file diff --git a/src/Compatibility/Core/src/Android/AndroidAppIndexProvider.cs b/src/Compatibility/Core/src/Android/AndroidAppIndexProvider.cs deleted file mode 100644 index 4f41889238a6..000000000000 --- a/src/Compatibility/Core/src/Android/AndroidAppIndexProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Android.Content; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - public class AndroidAppIndexProvider : IAppIndexingProvider - { - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = AppLinksAssemblyName + ".dll is not always present.")] - [UnconditionalSuppressMessage("Trimming", "IL2035", Justification = AppLinksAssemblyName + ".dll is not always present.")] - [UnconditionalSuppressMessage("Trimming", "IL2072", Justification = AppLinksAssemblyName + ".dll is not always present.")] - [DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, AppLinksAssemblyName + "." + AppLinksClassName, AppLinksAssemblyName)] - public AndroidAppIndexProvider(Context context) - { - var fullyQualifiedName = $"{AppLinksAssemblyName}.{AppLinksClassName}, {AppLinksAssemblyName}"; - var type = Type.GetType(fullyQualifiedName, throwOnError: false); - if (type != null) - { - AppLinks = Activator.CreateInstance(type, new object[] { context }, null) as IAppLinks; - } - } - - public IAppLinks AppLinks { get; } - - const string AppLinksAssemblyName = "Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks"; - const string AppLinksClassName = "AndroidAppLinks"; - } -} \ No newline at end of file diff --git a/src/Compatibility/Core/src/Android/AndroidApplicationLifecycleState.cs b/src/Compatibility/Core/src/Android/AndroidApplicationLifecycleState.cs deleted file mode 100644 index 679fb47e9701..000000000000 --- a/src/Compatibility/Core/src/Android/AndroidApplicationLifecycleState.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android -{ - internal enum AndroidApplicationLifecycleState - { - Uninitialized, - OnCreate, - OnStart, - OnResume, - OnPause, - OnStop, - OnRestart, - OnDestroy - } -} \ No newline at end of file diff --git a/src/Compatibility/Core/src/Android/AndroidTitleBarVisibility.cs b/src/Compatibility/Core/src/Android/AndroidTitleBarVisibility.cs deleted file mode 100644 index f4a48b106b22..000000000000 --- a/src/Compatibility/Core/src/Android/AndroidTitleBarVisibility.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Microsoft.Maui.Controls.Compatibility -{ - public enum AndroidTitleBarVisibility - { - Default = 0, - Never = 1 - } -} \ No newline at end of file diff --git a/src/Compatibility/Core/src/Android/AppCompat/ButtonRenderer.cs b/src/Compatibility/Core/src/Android/AppCompat/ButtonRenderer.cs deleted file mode 100644 index b9d0db7f0448..000000000000 --- a/src/Compatibility/Core/src/Android/AppCompat/ButtonRenderer.cs +++ /dev/null @@ -1,225 +0,0 @@ -using System; -using System.ComponentModel; -using Android.Content; -using Android.Graphics; -using Android.Util; -using Android.Views; -using AndroidX.AppCompat.Widget; -using Microsoft.Maui.Controls.Internals; -using Microsoft.Maui.Controls.Platform; -using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific; -using AColor = Android.Graphics.Color; -using AView = Android.Views.View; - -namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat -{ - [System.Obsolete(Compatibility.Hosting.MauiAppBuilderExtensions.UseMapperInstead)] - public class ButtonRenderer : ViewRenderer, - AView.IOnAttachStateChangeListener, AView.IOnClickListener, AView.IOnTouchListener, - IBorderVisualElementRenderer, IButtonLayoutRenderer, IDisposedState - { - BorderBackgroundManager _backgroundTracker; - TextColorSwitcher _textColorSwitcher; - float _defaultFontSize; - Typeface _defaultTypeface; - bool _isDisposed; - ButtonLayoutManager _buttonLayoutManager; - - public ButtonRenderer(Context context) : base(context) - { - AutoPackage = false; - _backgroundTracker = new BorderBackgroundManager(this); - _buttonLayoutManager = new ButtonLayoutManager(this); - } - - global::Android.Widget.Button NativeButton => Control; - - protected override void SetContentDescription() - => base.SetContentDescription(false); - - public override SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint) - { - return _buttonLayoutManager.GetDesiredSize(widthConstraint, heightConstraint); - } - - void AView.IOnAttachStateChangeListener.OnViewAttachedToWindow(AView attachedView) => - _buttonLayoutManager?.OnViewAttachedToWindow(attachedView); - - void AView.IOnAttachStateChangeListener.OnViewDetachedFromWindow(AView detachedView) => - _buttonLayoutManager?.OnViewDetachedFromWindow(detachedView); - - protected override void OnLayout(bool changed, int l, int t, int r, int b) - { - _buttonLayoutManager?.OnLayout(changed, l, t, r, b); - base.OnLayout(changed, l, t, r, b); - } - - protected override AppCompatButton CreateNativeControl() - { - return new AppCompatButton(Context); - } - - protected override void Dispose(bool disposing) - { - if (_isDisposed) - return; - - _isDisposed = true; - - if (disposing) - { - if (Control != null) - { - Control.SetOnClickListener(null); - Control.SetOnTouchListener(null); - Control.RemoveOnAttachStateChangeListener(this); - _textColorSwitcher = null; - } - _backgroundTracker?.Dispose(); - _backgroundTracker = null; - _buttonLayoutManager?.Dispose(); - _buttonLayoutManager = null; - } - - base.Dispose(disposing); - } - - protected override void OnElementChanged(ElementChangedEventArgs