diff --git a/samples/Playground/Playground.Droid/Playground.Droid.csproj b/samples/Playground/Playground.Droid/Playground.Droid.csproj
index aac9f2432d..620c3b5f41 100644
--- a/samples/Playground/Playground.Droid/Playground.Droid.csproj
+++ b/samples/Playground/Playground.Droid/Playground.Droid.csproj
@@ -124,6 +124,10 @@
{17a4c2dd-d7f3-4b5b-931d-16fa7920d2c0}
Uno.Extensions.Http.Refit
+
+ {3b441d41-f441-4a0d-87a2-ec5d124c3d59}
+ Uno.Extensions.Http.UI
+
{9f8db209-a0d3-439e-8624-0ddd3608e886}
Uno.Extensions.Http
diff --git a/samples/Playground/Playground.Skia.Gtk/Playground.Skia.Gtk.csproj b/samples/Playground/Playground.Skia.Gtk/Playground.Skia.Gtk.csproj
index f413feea40..09cc15c2ba 100644
--- a/samples/Playground/Playground.Skia.Gtk/Playground.Skia.Gtk.csproj
+++ b/samples/Playground/Playground.Skia.Gtk/Playground.Skia.Gtk.csproj
@@ -31,6 +31,7 @@
+
@@ -52,4 +53,4 @@
-
\ No newline at end of file
+
diff --git a/samples/Playground/Playground.Skia.Wpf/Playground.Skia.Wpf.csproj b/samples/Playground/Playground.Skia.Wpf/Playground.Skia.Wpf.csproj
index 91faa23b84..a64d5f574f 100644
--- a/samples/Playground/Playground.Skia.Wpf/Playground.Skia.Wpf.csproj
+++ b/samples/Playground/Playground.Skia.Wpf/Playground.Skia.Wpf.csproj
@@ -24,6 +24,7 @@
+
@@ -45,4 +46,4 @@
-
\ No newline at end of file
+
diff --git a/samples/Playground/Playground.UWP/Playground.UWP.csproj b/samples/Playground/Playground.UWP/Playground.UWP.csproj
index 2565fcec28..02054826da 100644
--- a/samples/Playground/Playground.UWP/Playground.UWP.csproj
+++ b/samples/Playground/Playground.UWP/Playground.UWP.csproj
@@ -154,6 +154,10 @@
{17a4c2dd-d7f3-4b5b-931d-16fa7920d2c0}
Uno.Extensions.Http.Refit
+
+ {3b441d41-f441-4a0d-87a2-ec5d124c3d59}
+ Uno.Extensions.Http.UI
+
{9f8db209-a0d3-439e-8624-0ddd3608e886}
Uno.Extensions.Http
@@ -265,4 +269,4 @@
-->
-
\ No newline at end of file
+
diff --git a/samples/Playground/Playground.Wasm/Playground.Wasm.csproj b/samples/Playground/Playground.Wasm/Playground.Wasm.csproj
index 56eebf19ed..39d1e32ed4 100644
--- a/samples/Playground/Playground.Wasm/Playground.Wasm.csproj
+++ b/samples/Playground/Playground.Wasm/Playground.Wasm.csproj
@@ -61,6 +61,7 @@
+
diff --git a/samples/Playground/Playground.Windows/Playground.Windows.csproj b/samples/Playground/Playground.Windows/Playground.Windows.csproj
index 8c912ce0c9..8fb56f88d1 100644
--- a/samples/Playground/Playground.Windows/Playground.Windows.csproj
+++ b/samples/Playground/Playground.Windows/Playground.Windows.csproj
@@ -85,6 +85,7 @@
+
diff --git a/samples/Playground/Playground.iOS/Playground.iOS.csproj b/samples/Playground/Playground.iOS/Playground.iOS.csproj
index 3ccd237afa..3104afabd9 100644
--- a/samples/Playground/Playground.iOS/Playground.iOS.csproj
+++ b/samples/Playground/Playground.iOS/Playground.iOS.csproj
@@ -201,7 +201,12 @@
{17a4c2dd-d7f3-4b5b-931d-16fa7920d2c0}
Uno.Extensions.Http.Refit
-
+
+ {3b441d41-f441-4a0d-87a2-ec5d124c3d59}
+ Uno.Extensions.Http.UI
+
+
+
{9f8db209-a0d3-439e-8624-0ddd3608e886}
Uno.Extensions.Http
@@ -281,4 +286,4 @@
-
\ No newline at end of file
+
diff --git a/samples/Playground/Playground.macOS/Playground.macOS.csproj b/samples/Playground/Playground.macOS/Playground.macOS.csproj
index fea2d4b636..4698a623bd 100644
--- a/samples/Playground/Playground.macOS/Playground.macOS.csproj
+++ b/samples/Playground/Playground.macOS/Playground.macOS.csproj
@@ -135,7 +135,12 @@
{17a4c2dd-d7f3-4b5b-931d-16fa7920d2c0}
Uno.Extensions.Http.Refit
-
+
+ {3b441d41-f441-4a0d-87a2-ec5d124c3d59}
+ Uno.Extensions.Http.UI
+
+
+
{9f8db209-a0d3-439e-8624-0ddd3608e886}
Uno.Extensions.Http
diff --git a/samples/Playground/Playground.sln b/samples/Playground/Playground.sln
index b23f299a88..0476063b13 100644
--- a/samples/Playground/Playground.sln
+++ b/samples/Playground/Playground.sln
@@ -172,6 +172,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{B4F14C65-EC7C-4641-81A6-576BA122E8C2}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.UI", "..\..\src\Uno.Extensions.Http.UI\Uno.Extensions.Http.UI.csproj", "{3B441D41-F441-4A0D-87A2-EC5D124C3D59}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.WinUI", "..\..\src\Uno.Extensions.Http.UI\Uno.Extensions.Http.WinUI.csproj", "{743182C8-6956-4182-A868-DF7003B82032}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
@@ -3291,6 +3295,118 @@ Global
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x64.Build.0 = Release|Any CPU
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x86.ActiveCfg = Release|Any CPU
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x86.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|ARM.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|ARM.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|ARM64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|x64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|x64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.AppStore|x86.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|ARM.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|x64.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Debug|x86.Build.0 = Debug|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|ARM.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|ARM.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|ARM64.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|iPhone.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|x64.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|x64.Build.0 = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|x86.ActiveCfg = Release|Any CPU
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59}.Release|x86.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|ARM.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|ARM.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|ARM64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|x64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|x64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.AppStore|x86.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|ARM.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|x64.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Debug|x86.Build.0 = Debug|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|Any CPU.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|ARM.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|ARM.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|ARM64.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|iPhone.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|x64.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|x64.Build.0 = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|x86.ActiveCfg = Release|Any CPU
+ {743182C8-6956-4182-A868-DF7003B82032}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3364,19 +3480,15 @@ Global
{BDAB734F-2622-4591-B06B-87C6EC53B282} = {F9372730-80BC-47B6-9E23-B5F69E36768F}
{0706A3E8-9DB3-4344-979B-376CD04D76B9} = {F9372730-80BC-47B6-9E23-B5F69E36768F}
{B4F14C65-EC7C-4641-81A6-576BA122E8C2} = {A7450AE8-53E1-4AD2-8E3A-4BF626269DC0}
+ {3B441D41-F441-4A0D-87A2-EC5D124C3D59} = {FA19ECB8-E725-4AFB-9DF8-E387B7AD12CE}
+ {743182C8-6956-4182-A868-DF7003B82032} = {FA19ECB8-E725-4AFB-9DF8-E387B7AD12CE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1A645832-60E5-4DA0-9EE7-69F7E34333DC}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
- Playground.Shared\Playground.Shared.projitems*{0be93281-9633-484a-9a2f-f3b7bd36a443}*SharedItemsImports = 5
- Playground.Shared\Playground.Shared.projitems*{0c7a4b61-d7c6-48f8-83b6-d7cfa896b8c9}*SharedItemsImports = 5
Playground.Shared\Playground.Shared.projitems*{1efb7b93-88d1-4f14-b335-bab42a49faf0}*SharedItemsImports = 5
- Playground.Shared\Playground.Shared.projitems*{398d8331-d046-48d2-8198-1737b4f1c7e9}*SharedItemsImports = 4
Playground.Shared\Playground.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
- Playground.Shared\Playground.Shared.projitems*{7034cdec-7056-4e65-a043-a380582cfbd0}*SharedItemsImports = 5
Playground.Shared\Playground.Shared.projitems*{abbf2cf7-0ddb-4968-a6d8-8f8205f4a8d5}*SharedItemsImports = 4
- Playground.Shared\Playground.Shared.projitems*{abe60d89-79bb-433c-a674-f3eb6bf2ae1e}*SharedItemsImports = 4
- Playground.Shared\Playground.Shared.projitems*{e40048e4-478a-4e90-bf63-342b04bdd31e}*SharedItemsImports = 4
EndGlobalSection
EndGlobal
diff --git a/src/Uno.Extensions-packageonly.slnf b/src/Uno.Extensions-packageonly.slnf
index 6e6753827f..1fdac1cc33 100644
--- a/src/Uno.Extensions-packageonly.slnf
+++ b/src/Uno.Extensions-packageonly.slnf
@@ -24,7 +24,8 @@
"Uno.Extensions.Hosting.UI\\Uno.Extensions.Hosting.WinUI.csproj",
"Uno.Extensions.Hosting\\Uno.Extensions.Hosting.csproj",
"Uno.Extensions.Http.Refit\\Uno.Extensions.Http.Refit.csproj",
- "Uno.Extensions.Http.Tests\\Uno.Extensions.Http.Tests.csproj",
+ "Uno.Extensions.Http.UI\\Uno.Extensions.Http.UI.csproj",
+ "Uno.Extensions.Http.UI\\Uno.Extensions.Http.WinUI.csproj",
"Uno.Extensions.Http\\Uno.Extensions.Http.csproj",
"Uno.Extensions.Localization.UI\\Uno.Extensions.Localization.UI.csproj",
"Uno.Extensions.Localization.UI\\Uno.Extensions.Localization.WinUI.csproj",
diff --git a/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.UI.csproj b/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.UI.csproj
index 9c09379b65..80269e3ef4 100644
--- a/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.UI.csproj
+++ b/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.UI.csproj
@@ -42,6 +42,7 @@
+
diff --git a/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.WinUI.csproj b/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.WinUI.csproj
index 1d3a473bfc..51331b14a5 100644
--- a/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.WinUI.csproj
+++ b/src/Uno.Extensions.Authentication.MSAL/Uno.Extensions.Authentication.MSAL.WinUI.csproj
@@ -57,6 +57,7 @@
+
diff --git a/src/Uno.Extensions.Authentication.Oidc/Uno.Extensions.Authentication.Oidc.WinUI.csproj b/src/Uno.Extensions.Authentication.Oidc/Uno.Extensions.Authentication.Oidc.WinUI.csproj
index 604ac1c2c3..9aee5025ba 100644
--- a/src/Uno.Extensions.Authentication.Oidc/Uno.Extensions.Authentication.Oidc.WinUI.csproj
+++ b/src/Uno.Extensions.Authentication.Oidc/Uno.Extensions.Authentication.Oidc.WinUI.csproj
@@ -21,5 +21,6 @@
+
diff --git a/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.UI.csproj b/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.UI.csproj
index ccfd1eb3b8..9b6cc1d5ac 100644
--- a/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.UI.csproj
+++ b/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.UI.csproj
@@ -14,5 +14,6 @@
+
diff --git a/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.WinUI.csproj b/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.WinUI.csproj
index 0d3db68e8b..85cf98afdf 100644
--- a/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.WinUI.csproj
+++ b/src/Uno.Extensions.Authentication.UI/Uno.Extensions.Authentication.WinUI.csproj
@@ -19,5 +19,6 @@
+
diff --git a/src/Uno.Extensions.Http.Refit/ServiceCollectionExtensions.cs b/src/Uno.Extensions.Http.Refit/ServiceCollectionExtensions.cs
index 3f86936c35..01ee9fdbf5 100644
--- a/src/Uno.Extensions.Http.Refit/ServiceCollectionExtensions.cs
+++ b/src/Uno.Extensions.Http.Refit/ServiceCollectionExtensions.cs
@@ -6,8 +6,21 @@
namespace Uno.Extensions;
+///
+/// Extensions for
+///
public static class ServiceCollectionExtensions
{
+ ///
+ /// Registers a Refit client with the specified .
+ ///
+ /// The Refit api type to register
+ /// The services collection to register the api with
+ /// The host builder context
+ /// [optional]The name for locating endpoint information in appsettings
+ /// [optional]Callback for overriding Refit settings
+ /// [optional]Callback for configuring the endpoint
+ ///
public static IServiceCollection AddRefitClient(
this IServiceCollection services,
HostBuilderContext context,
diff --git a/src/Uno.Extensions.Http.Refit/Uno.Extensions.Http.Refit.csproj b/src/Uno.Extensions.Http.Refit/Uno.Extensions.Http.Refit.csproj
index fb3c6f07ed..6547744c59 100644
--- a/src/Uno.Extensions.Http.Refit/Uno.Extensions.Http.Refit.csproj
+++ b/src/Uno.Extensions.Http.Refit/Uno.Extensions.Http.Refit.csproj
@@ -1,5 +1,5 @@
-
-
+
+
HTTP Refit Extensions for registering Refit endpoints for Uno Platform, UWP and WinUI
@@ -8,17 +8,17 @@
$(WarningsNotAsErrors);CS1591
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
diff --git a/src/Uno.Extensions.Http.Tests/Uno.Extensions.Http.Tests.csproj b/src/Uno.Extensions.Http.Tests/Uno.Extensions.Http.Tests.csproj
deleted file mode 100644
index d5979d6809..0000000000
--- a/src/Uno.Extensions.Http.Tests/Uno.Extensions.Http.Tests.csproj
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- net461
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Uno.Extensions.Http/CookieManager.cs b/src/Uno.Extensions.Http.UI/CookieManager.cs
similarity index 100%
rename from src/Uno.Extensions.Http/CookieManager.cs
rename to src/Uno.Extensions.Http.UI/CookieManager.cs
diff --git a/src/Uno.Extensions.Http.UI/GlobalUsings.cs b/src/Uno.Extensions.Http.UI/GlobalUsings.cs
new file mode 100644
index 0000000000..87228eec47
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/GlobalUsings.cs
@@ -0,0 +1,12 @@
+global using System;
+global using System.IO;
+global using System.Linq;
+global using System.Net.Http;
+global using System.Threading;
+global using System.Threading.Tasks;
+global using Microsoft.Extensions.Configuration;
+global using Microsoft.Extensions.DependencyInjection;
+global using Microsoft.Extensions.Hosting;
+global using Microsoft.Extensions.Http;
+global using Microsoft.Extensions.Logging;
+global using Uno.Extensions.Http;
diff --git a/src/Uno.Extensions.Http.UI/HostBuilderExtensions.cs b/src/Uno.Extensions.Http.UI/HostBuilderExtensions.cs
new file mode 100644
index 0000000000..509896e711
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/HostBuilderExtensions.cs
@@ -0,0 +1,45 @@
+namespace Uno.Extensions;
+
+///
+/// Extensions for
+///
+public static class HostBuilderExtensions
+{
+ ///
+ /// Registers the native HttpMessageHandler and the DiagnosticHandler
+ ///
+ /// The host builder to register with
+ /// Callback for configuring Http services
+ /// Updated host builder
+ public static IHostBuilder UseHttp(
+ this IHostBuilder builder,
+ Action configure)
+ {
+ return builder.UseHttp((context, builder) => configure.Invoke(builder));
+ }
+
+ ///
+ /// Registers the native HttpMessageHandler and the DiagnosticHandler
+ ///
+ /// The host builder to register with
+ /// Callback for configuring Http services
+ /// Updated host builder
+ public static IHostBuilder UseHttp(
+ this IHostBuilder builder,
+ Action? configure = default)
+ {
+ return builder
+ .ConfigureServices((ctx, services) =>
+ {
+ if (!ctx.IsRegistered(nameof(UseHttp)))
+ {
+ _ = services
+ .AddCookieManager(ctx)
+ .AddNativeHandler(ctx)
+ .AddTransient();
+ }
+
+ configure?.Invoke(ctx, services);
+ });
+ }
+}
diff --git a/src/Uno.Extensions.Http.UI/ServiceCollectionExtensions.cs b/src/Uno.Extensions.Http.UI/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000000..e00891d55d
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/ServiceCollectionExtensions.cs
@@ -0,0 +1,55 @@
+namespace Uno.Extensions;
+
+///
+/// Extensions for
+///
+public static class ServiceCollectionExtensions
+{
+ ///
+ /// Registers the native HttpMessageHandler as well as the CookieManager implementation
+ ///
+ /// The service collection to register
+ /// The host builder context
+ /// Updated service collection
+ public static IServiceCollection AddCookieManager(this IServiceCollection services, HostBuilderContext context)
+ {
+ if (context.IsRegistered(nameof(AddCookieManager)))
+ {
+ return services;
+ }
+
+ return services
+ .AddSingleton();
+ }
+
+ ///
+ /// Registers the native HttpMessageHandler as well as the CookieManager implementation
+ ///
+ /// The service collection to register
+ /// The host builder context
+ /// Updated service collection
+ public static IServiceCollection AddNativeHandler(this IServiceCollection services, HostBuilderContext context)
+ {
+ if (context.IsRegistered(nameof(AddNativeHandler)))
+ {
+ return services;
+ }
+
+ return services
+ .AddTransient(s =>
+#if __IOS__
+ new NSUrlSessionHandler()
+#elif __ANDROID__
+#if NET6_0_OR_GREATER
+ new Xamarin.Android.Net.AndroidMessageHandler()
+#else
+ new Xamarin.Android.Net.AndroidClientHandler()
+#endif
+#elif WINDOWS || WINDOWS_UWP
+ new WinHttpHandler()
+#else
+ new HttpClientHandler()
+#endif
+ );
+ }
+}
diff --git a/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.UI.csproj b/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.UI.csproj
new file mode 100644
index 0000000000..87472c8c8d
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.UI.csproj
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.WinUI.csproj b/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.WinUI.csproj
new file mode 100644
index 0000000000..114abb06a1
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/Uno.Extensions.Http.WinUI.csproj
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ $(DefineConstants);WINUI
+
+
+
+
+
+
+
diff --git a/src/Uno.Extensions.Http.UI/common.props b/src/Uno.Extensions.Http.UI/common.props
new file mode 100644
index 0000000000..21e01f47f6
--- /dev/null
+++ b/src/Uno.Extensions.Http.UI/common.props
@@ -0,0 +1,27 @@
+
+
+ HTTP Extensions for registering endpoints for Uno Platform, UWP and WinUI
+
+
+ $(WarningsNotAsErrors);CS1591
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Uno.Extensions.Http/DiagnosticHandler.cs b/src/Uno.Extensions.Http/DiagnosticHandler.cs
index 043c28864d..ee22d3f39e 100644
--- a/src/Uno.Extensions.Http/DiagnosticHandler.cs
+++ b/src/Uno.Extensions.Http/DiagnosticHandler.cs
@@ -1,16 +1,22 @@
-using Uno.Extensions.Logging;
-
-namespace Uno.Extensions.Http;
+namespace Uno.Extensions.Http;
+///
+/// Handler for printing diagnostic information about requests
+///
public class DiagnosticHandler : DelegatingHandler
{
private readonly ILogger _logger;
+ ///
+ /// Creates a new instance of
+ ///
+ /// ILogger for logging
public DiagnosticHandler(ILogger logger)
{
_logger = logger;
}
+ ///
protected override async Task SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
diff --git a/src/Uno.Extensions.Http/EndpointOptions.cs b/src/Uno.Extensions.Http/EndpointOptions.cs
index c436afcbd4..3473b380a5 100644
--- a/src/Uno.Extensions.Http/EndpointOptions.cs
+++ b/src/Uno.Extensions.Http/EndpointOptions.cs
@@ -1,8 +1,18 @@
namespace Uno.Extensions.Http;
+///
+/// Represents endpoint options loaded from appsettings
+///
public class EndpointOptions
{
+ ///
+ /// Gets/Sets the Url for the endpoint
+ ///
public string? Url { get; set; }
- public bool UseNativeHandler { get; set; }
+ ///
+ /// Gets/Sets whether to use the native HttpMessageHandler
+ /// (defaults to true if not specified)
+ ///
+ public bool? UseNativeHandler { get; set; }
}
diff --git a/src/Uno.Extensions.Http/GlobalUsings.cs b/src/Uno.Extensions.Http/GlobalUsings.cs
index 87228eec47..93a060279e 100644
--- a/src/Uno.Extensions.Http/GlobalUsings.cs
+++ b/src/Uno.Extensions.Http/GlobalUsings.cs
@@ -1,6 +1,7 @@
global using System;
global using System.IO;
global using System.Linq;
+global using System.Net;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
@@ -10,3 +11,4 @@
global using Microsoft.Extensions.Http;
global using Microsoft.Extensions.Logging;
global using Uno.Extensions.Http;
+global using Uno.Extensions.Logging;
diff --git a/src/Uno.Extensions.Http/HostBuilderExtensions.cs b/src/Uno.Extensions.Http/HostBuilderExtensions.cs
deleted file mode 100644
index 5f8364ef96..0000000000
--- a/src/Uno.Extensions.Http/HostBuilderExtensions.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-namespace Uno.Extensions;
-
-public static class HostBuilderExtensions
-{
- public static IHostBuilder UseHttp(
- this IHostBuilder hostBuilder,
- Action configure)
- {
- return hostBuilder.UseHttp((context, builder) => configure.Invoke(builder));
- }
-
- public static IHostBuilder UseHttp(
- this IHostBuilder builder,
- Action? configure = default)
- {
- return builder
- .ConfigureServices((ctx, services) =>
- {
- if (!ctx.IsRegistered(nameof(UseHttp)))
- {
- _ = services
- .AddNativeHandler(ctx)
- .AddTransient();
- }
-
- configure?.Invoke(ctx, services);
- });
- }
-}
diff --git a/src/Uno.Extensions.Http/IAuthenticationTokenProvider.cs b/src/Uno.Extensions.Http/IAuthenticationTokenProvider.cs
index f2f3019207..30e21eb769 100644
--- a/src/Uno.Extensions.Http/IAuthenticationTokenProvider.cs
+++ b/src/Uno.Extensions.Http/IAuthenticationTokenProvider.cs
@@ -1,6 +1,13 @@
namespace Uno.Extensions.Http;
+///
+/// Provider for authentication token
+///
public interface IAuthenticationTokenProvider
{
+ ///
+ /// Retrieves the current access token
+ ///
+ /// Access token
Task GetAccessToken();
}
diff --git a/src/Uno.Extensions.Http/ICookieManager.cs b/src/Uno.Extensions.Http/ICookieManager.cs
index 14ea2d3fcd..c875ae37c3 100644
--- a/src/Uno.Extensions.Http/ICookieManager.cs
+++ b/src/Uno.Extensions.Http/ICookieManager.cs
@@ -1,8 +1,15 @@
-using System.Net;
-
-namespace Uno.Extensions;
+namespace Uno.Extensions;
+///
+/// Manages request cookies
+///
internal interface ICookieManager
{
+ ///
+ /// Clears cookies for the specified request Uri
+ ///
+ /// The handler to access existing cookie container
+ /// The request to clear cookies for
+ /// The (generated if not exists) cookie container
CookieContainer? ClearCookies(HttpMessageHandler Handler, Uri requestUri);
}
diff --git a/src/Uno.Extensions.Http/IResponseContentDeserializer.cs b/src/Uno.Extensions.Http/IResponseContentDeserializer.cs
index bf7b535f53..9fe6cce8b7 100644
--- a/src/Uno.Extensions.Http/IResponseContentDeserializer.cs
+++ b/src/Uno.Extensions.Http/IResponseContentDeserializer.cs
@@ -1,13 +1,16 @@
namespace Uno.Extensions.Http;
+///
+/// Allows the deserialization of the response content.
+///
public interface IResponseContentDeserializer
- {
- ///
- /// Deserializes the response into the.
- ///
- /// The type of response.
- /// Cancel token.
- /// Http content.
- /// Http response.
- Task Deserialize(CancellationToken ct, HttpContent content);
- }
+{
+ ///
+ /// Deserializes the response into the.
+ ///
+ /// The type of response.
+ /// Cancel token.
+ /// Http content.
+ /// Http response.
+ Task Deserialize(CancellationToken ct, HttpContent content);
+}
diff --git a/src/Uno.Extensions.Http/ServiceCollectionExtensions.cs b/src/Uno.Extensions.Http/ServiceCollectionExtensions.cs
index 3ab7967e57..0aa6e0d266 100644
--- a/src/Uno.Extensions.Http/ServiceCollectionExtensions.cs
+++ b/src/Uno.Extensions.Http/ServiceCollectionExtensions.cs
@@ -1,15 +1,13 @@
-
-
-using System.Net.Sockets;
-using Uno.Extensions.Logging;
-
-namespace Uno.Extensions;
+namespace Uno.Extensions;
+///
+/// Extensions for
+///
public static class ServiceCollectionExtensions
{
private static char[] InterfaceNamePrefix = new[] { 'i', 'I' };
- public static T Conditional(
+ private static T Conditional(
this T builder,
bool predicate,
Func configureBuilder)
@@ -17,7 +15,17 @@ public static T Conditional(
return (configureBuilder is not null && predicate) ? configureBuilder(builder) : builder;
}
-
+ ///
+ /// Adds a typed client to the service collection.
+ ///
+ /// The type of client to add
+ /// The type implementation
+ /// The service collection to register with
+ /// The host builder context
+ /// [optional] Endpoint information (loaded from appsettings if not specified)
+ /// [optional] Name of the endpoint (used to load from appsettings)
+ /// [optional] Callback to configure the endpoint
+ /// Updated service collection
public static IServiceCollection AddClient(
this IServiceCollection services,
HostBuilderContext context,
@@ -36,6 +44,17 @@ public static IServiceCollection AddClient(
return services.AddClient(context, options, name, httpClientFactory, configure);
}
+ ///
+ /// Adds a typed client to the service collection.
+ ///
+ /// The type of client to add
+ /// The service collection to register with
+ /// The host builder context
+ /// [optional] Endpoint information (loaded from appsettings if not specified)
+ /// [optional] Name of the endpoint (used to load from appsettings)
+ /// [optional] Callback to configure the HttpClient
+ /// [optional] Callback to configure the endpoint
+ /// Updated service collection
public static IServiceCollection AddClient(
this IServiceCollection services,
HostBuilderContext context,
@@ -58,7 +77,7 @@ public static IServiceCollection AddClient(
_ = httpClientBuilder
.Conditional(
- options?.UseNativeHandler ?? false,
+ options?.UseNativeHandler ?? true,
builder => builder.ConfigurePrimaryAndInnerHttpMessageHandler())
.ConfigureDelegatingHandlers()
.ConfigureHttpClient((serviceProvider, client) =>
@@ -74,12 +93,18 @@ public static IServiceCollection AddClient(
return services;
}
-
+ ///
+ /// Configures the primary and inner http message handler.
+ ///
+ /// The type to register as the primary message handler
+ /// The client builder to configure
+ /// The configured client builder
+ /// builder parameter can't be null
public static IHttpClientBuilder ConfigurePrimaryAndInnerHttpMessageHandler(this IHttpClientBuilder builder) where THandler : HttpMessageHandler
{
if (builder == null)
{
- throw new ArgumentNullException("builder");
+ throw new ArgumentNullException(nameof(builder));
}
builder.Services.Configure(builder.Name, delegate (HttpClientFactoryOptions options)
@@ -104,11 +129,17 @@ public static IHttpClientBuilder ConfigurePrimaryAndInnerHttpMessageHandler
+ /// Configure the delegating handlers.
+ ///
+ /// The client builder to configure
+ /// Configured client builder
+ /// builder parameter can't be null
public static IHttpClientBuilder ConfigureDelegatingHandlers(this IHttpClientBuilder builder)
{
if (builder == null)
{
- throw new ArgumentNullException("builder");
+ throw new ArgumentNullException(nameof(builder));
}
builder.Services.Configure(builder.Name, delegate (HttpClientFactoryOptions options)
@@ -136,6 +167,13 @@ public static IHttpClientBuilder ConfigureDelegatingHandlers(this IHttpClientBui
return builder;
}
+ ///
+ /// Registered a typed http client
+ ///
+ /// The type to register
+ /// The service collection to register with
+ /// The factory to create the http client
+ /// Configured client builder
public static IHttpClientBuilder AddTypedHttpClient(
this IServiceCollection services,
Func factory)
@@ -145,30 +183,4 @@ public static IHttpClientBuilder AddTypedHttpClient(
.AddHttpClient(typeof(TClient).FullName ?? string.Empty)
.AddTypedClient(factory);
}
-
- public static IServiceCollection AddNativeHandler(this IServiceCollection services, HostBuilderContext context)
- {
- if (context.IsRegistered(nameof(AddNativeHandler)))
- {
- return services;
- }
-
- return services
- .AddSingleton()
- .AddTransient(s =>
-#if __IOS__
- new NSUrlSessionHandler()
-#elif __ANDROID__
-#if NET6_0_OR_GREATER
- new Xamarin.Android.Net.AndroidMessageHandler()
-#else
- new Xamarin.Android.Net.AndroidClientHandler()
-#endif
-#elif WINDOWS || WINDOWS_UWP
- new WinHttpHandler()
-#else
- new HttpClientHandler()
-#endif
- );
- }
}
diff --git a/src/Uno.Extensions.Http/SimpleAuthenticationToken.cs b/src/Uno.Extensions.Http/SimpleAuthenticationToken.cs
index 34c710e5d6..79318158fc 100644
--- a/src/Uno.Extensions.Http/SimpleAuthenticationToken.cs
+++ b/src/Uno.Extensions.Http/SimpleAuthenticationToken.cs
@@ -1,8 +1,13 @@
namespace Uno.Extensions.Http;
+///
+/// Implements a simple authentication token provider
+///
public class SimpleAuthenticationToken : IAuthenticationTokenProvider
{
+ ///
public string? AccessToken { get; set; }
+ ///
public Task GetAccessToken() => Task.FromResult(AccessToken ?? string.Empty);
}
diff --git a/src/Uno.Extensions.Http/Uno.Extensions.Http.csproj b/src/Uno.Extensions.Http/Uno.Extensions.Http.csproj
index e5eb756d8e..049f4f963a 100644
--- a/src/Uno.Extensions.Http/Uno.Extensions.Http.csproj
+++ b/src/Uno.Extensions.Http/Uno.Extensions.Http.csproj
@@ -1,5 +1,5 @@
-
-
+
+
HTTP Extensions for registering endpoints for Uno Platform, UWP and WinUI
@@ -8,10 +8,6 @@
$(WarningsNotAsErrors);CS1591
-
-
-
-
@@ -28,6 +24,8 @@
+
+
diff --git a/src/Uno.Extensions.Serialization.Http/Uno.Extensions.Serialization.Http.csproj b/src/Uno.Extensions.Serialization.Http/Uno.Extensions.Serialization.Http.csproj
index 4f67c5b35a..f734459a43 100644
--- a/src/Uno.Extensions.Serialization.Http/Uno.Extensions.Serialization.Http.csproj
+++ b/src/Uno.Extensions.Serialization.Http/Uno.Extensions.Serialization.Http.csproj
@@ -1,5 +1,5 @@
-
+
Serialization Extensions for working with ISerializer and Http for the Uno Platform, UWP and WinUI
diff --git a/src/Uno.Extensions.Serialization.Refit/Uno.Extensions.Serialization.Refit.csproj b/src/Uno.Extensions.Serialization.Refit/Uno.Extensions.Serialization.Refit.csproj
index 035aa56047..0afcefcfac 100644
--- a/src/Uno.Extensions.Serialization.Refit/Uno.Extensions.Serialization.Refit.csproj
+++ b/src/Uno.Extensions.Serialization.Refit/Uno.Extensions.Serialization.Refit.csproj
@@ -1,5 +1,5 @@
-
+
Serialization Extensions for working with ISerializer with HTTP and Refit for the Uno Platform, UWP and WinUI
diff --git a/src/Uno.Extensions.sln b/src/Uno.Extensions.sln
index e9a9d814a2..4cfe7ed8c1 100644
--- a/src/Uno.Extensions.sln
+++ b/src/Uno.Extensions.sln
@@ -19,8 +19,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http", "Uno.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.Refit", "Uno.Extensions.Http.Refit\Uno.Extensions.Http.Refit.csproj", "{571B4368-E13C-4ECA-B342-5838E2020310}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.Tests", "Uno.Extensions.Http.Tests\Uno.Extensions.Http.Tests.csproj", "{E77A884B-B845-46CC-A507-F070C4FB4D0A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Serialization.Http", "Uno.Extensions.Serialization.Http\Uno.Extensions.Serialization.Http.csproj", "{A04C2FDC-34A0-4619-8C80-BFDED66B72CD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Serialization.Refit", "Uno.Extensions.Serialization.Refit\Uno.Extensions.Serialization.Refit.csproj", "{F03CE17C-F19D-4057-983E-5A260624B888}"
@@ -190,6 +188,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{2F076ADB-04CE-4C75-A63E-90A160BB4C30}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.UI", "Uno.Extensions.Http.UI\Uno.Extensions.Http.UI.csproj", "{AF45A54A-A0A9-439A-B0C9-82ABAF46E624}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.WinUI", "Uno.Extensions.Http.UI\Uno.Extensions.Http.WinUI.csproj", "{E2F71C96-1C18-4C05-AD21-94231A260436}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -288,16 +290,6 @@ Global
{571B4368-E13C-4ECA-B342-5838E2020310}.Release|arm64.ActiveCfg = Release|Any CPU
{571B4368-E13C-4ECA-B342-5838E2020310}.Release|x64.ActiveCfg = Release|Any CPU
{571B4368-E13C-4ECA-B342-5838E2020310}.Release|x86.ActiveCfg = Release|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Debug|arm64.ActiveCfg = Debug|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Release|Any CPU.Build.0 = Release|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Release|arm64.ActiveCfg = Release|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Release|x64.ActiveCfg = Release|Any CPU
- {E77A884B-B845-46CC-A507-F070C4FB4D0A}.Release|x86.ActiveCfg = Release|Any CPU
{A04C2FDC-34A0-4619-8C80-BFDED66B72CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A04C2FDC-34A0-4619-8C80-BFDED66B72CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A04C2FDC-34A0-4619-8C80-BFDED66B72CD}.Debug|arm64.ActiveCfg = Debug|Any CPU
@@ -1068,6 +1060,38 @@ Global
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x64.Build.0 = Release|Any CPU
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x86.ActiveCfg = Release|Any CPU
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x86.Build.0 = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|arm64.ActiveCfg = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|arm64.Build.0 = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|x64.Build.0 = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Debug|x86.Build.0 = Debug|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|arm64.ActiveCfg = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|arm64.Build.0 = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|x64.ActiveCfg = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|x64.Build.0 = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|x86.ActiveCfg = Release|Any CPU
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624}.Release|x86.Build.0 = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|arm64.ActiveCfg = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|arm64.Build.0 = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|x64.Build.0 = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Debug|x86.Build.0 = Debug|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|arm64.ActiveCfg = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|arm64.Build.0 = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|x64.ActiveCfg = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|x64.Build.0 = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|x86.ActiveCfg = Release|Any CPU
+ {E2F71C96-1C18-4C05-AD21-94231A260436}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1079,7 +1103,6 @@ Global
{247E0202-11F8-428A-B6F2-6AABCD222475} = {D3FBC1A0-E7E5-431A-BAC6-BCE8DB1AD4FB}
{F6921B06-3F17-442B-B245-786DEFFE60A2} = {45179294-70DC-47E8-AD22-1296F897B594}
{571B4368-E13C-4ECA-B342-5838E2020310} = {45179294-70DC-47E8-AD22-1296F897B594}
- {E77A884B-B845-46CC-A507-F070C4FB4D0A} = {45179294-70DC-47E8-AD22-1296F897B594}
{A04C2FDC-34A0-4619-8C80-BFDED66B72CD} = {D3FBC1A0-E7E5-431A-BAC6-BCE8DB1AD4FB}
{F03CE17C-F19D-4057-983E-5A260624B888} = {D3FBC1A0-E7E5-431A-BAC6-BCE8DB1AD4FB}
{811AEBB3-BCE1-4B53-8F93-ACFAA3328C14} = {D3FBC1A0-E7E5-431A-BAC6-BCE8DB1AD4FB}
@@ -1138,6 +1161,8 @@ Global
{F0668EB6-9C39-42A9-BE4A-AF57FD7E9A1D} = {B1477A2C-41F4-4970-8640-5CCF8DA3EDFD}
{EEF81643-E541-4298-92FF-F0AF8433C44B} = {B1477A2C-41F4-4970-8640-5CCF8DA3EDFD}
{2F076ADB-04CE-4C75-A63E-90A160BB4C30} = {2B4C9E46-EA70-4ADE-B301-E2BB8CC31365}
+ {AF45A54A-A0A9-439A-B0C9-82ABAF46E624} = {45179294-70DC-47E8-AD22-1296F897B594}
+ {E2F71C96-1C18-4C05-AD21-94231A260436} = {45179294-70DC-47E8-AD22-1296F897B594}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6E7B035D-9A64-4D95-89AA-9D4653F17C42}
diff --git a/testing/TestHarness/TestHarness.Legacy.Droid/TestHarness.Legacy.Droid.csproj b/testing/TestHarness/TestHarness.Legacy.Droid/TestHarness.Legacy.Droid.csproj
index 0d539490a2..cff926cfc4 100644
--- a/testing/TestHarness/TestHarness.Legacy.Droid/TestHarness.Legacy.Droid.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Droid/TestHarness.Legacy.Droid.csproj
@@ -139,6 +139,7 @@
+
@@ -156,4 +157,4 @@
-
+
\ No newline at end of file
diff --git a/testing/TestHarness/TestHarness.Legacy.Skia.Gtk/TestHarness.Legacy.Skia.Gtk.csproj b/testing/TestHarness/TestHarness.Legacy.Skia.Gtk/TestHarness.Legacy.Skia.Gtk.csproj
index 2cd9829fa6..0b7c3db0ba 100644
--- a/testing/TestHarness/TestHarness.Legacy.Skia.Gtk/TestHarness.Legacy.Skia.Gtk.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Skia.Gtk/TestHarness.Legacy.Skia.Gtk.csproj
@@ -58,6 +58,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.Skia.Linux.FrameBuffer/TestHarness.Legacy.Skia.Linux.FrameBuffer.csproj b/testing/TestHarness/TestHarness.Legacy.Skia.Linux.FrameBuffer/TestHarness.Legacy.Skia.Linux.FrameBuffer.csproj
index 6f67e1ca4b..d5a273ecc3 100644
--- a/testing/TestHarness/TestHarness.Legacy.Skia.Linux.FrameBuffer/TestHarness.Legacy.Skia.Linux.FrameBuffer.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Skia.Linux.FrameBuffer/TestHarness.Legacy.Skia.Linux.FrameBuffer.csproj
@@ -57,6 +57,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.Skia.Tizen/TestHarness.Legacy.Skia.Tizen.csproj b/testing/TestHarness/TestHarness.Legacy.Skia.Tizen/TestHarness.Legacy.Skia.Tizen.csproj
index 9e49200831..645c9f1186 100644
--- a/testing/TestHarness/TestHarness.Legacy.Skia.Tizen/TestHarness.Legacy.Skia.Tizen.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Skia.Tizen/TestHarness.Legacy.Skia.Tizen.csproj
@@ -63,6 +63,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.Skia.WPF/TestHarness.Legacy.Skia.WPF.csproj b/testing/TestHarness/TestHarness.Legacy.Skia.WPF/TestHarness.Legacy.Skia.WPF.csproj
index 35d388e17d..e507f61899 100644
--- a/testing/TestHarness/TestHarness.Legacy.Skia.WPF/TestHarness.Legacy.Skia.WPF.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Skia.WPF/TestHarness.Legacy.Skia.WPF.csproj
@@ -53,6 +53,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.UWP/TestHarness.Legacy.Uwp.csproj b/testing/TestHarness/TestHarness.Legacy.UWP/TestHarness.Legacy.Uwp.csproj
index 9b946e8368..899bc62cd2 100644
--- a/testing/TestHarness/TestHarness.Legacy.UWP/TestHarness.Legacy.Uwp.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.UWP/TestHarness.Legacy.Uwp.csproj
@@ -180,6 +180,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.Wasm/TestHarness.Legacy.Wasm.csproj b/testing/TestHarness/TestHarness.Legacy.Wasm/TestHarness.Legacy.Wasm.csproj
index 3b2026be1c..3ca6849bac 100644
--- a/testing/TestHarness/TestHarness.Legacy.Wasm/TestHarness.Legacy.Wasm.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.Wasm/TestHarness.Legacy.Wasm.csproj
@@ -87,6 +87,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.iOS/TestHarness.Legacy.iOS.csproj b/testing/TestHarness/TestHarness.Legacy.iOS/TestHarness.Legacy.iOS.csproj
index a7e7075402..d99fe57636 100644
--- a/testing/TestHarness/TestHarness.Legacy.iOS/TestHarness.Legacy.iOS.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.iOS/TestHarness.Legacy.iOS.csproj
@@ -208,6 +208,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Legacy.macOS/TestHarness.Legacy.macOS.csproj b/testing/TestHarness/TestHarness.Legacy.macOS/TestHarness.Legacy.macOS.csproj
index 9b047c8d87..2d5b88a8f6 100644
--- a/testing/TestHarness/TestHarness.Legacy.macOS/TestHarness.Legacy.macOS.csproj
+++ b/testing/TestHarness/TestHarness.Legacy.macOS/TestHarness.Legacy.macOS.csproj
@@ -108,6 +108,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Mobile/TestHarness.Mobile.csproj b/testing/TestHarness/TestHarness.Mobile/TestHarness.Mobile.csproj
index f1f245f0a2..516893fa02 100644
--- a/testing/TestHarness/TestHarness.Mobile/TestHarness.Mobile.csproj
+++ b/testing/TestHarness/TestHarness.Mobile/TestHarness.Mobile.csproj
@@ -55,13 +55,14 @@
-
+
+
diff --git a/testing/TestHarness/TestHarness.Skia.Gtk/TestHarness.Skia.Gtk.csproj b/testing/TestHarness/TestHarness.Skia.Gtk/TestHarness.Skia.Gtk.csproj
index 940632fee7..7290d3fb7f 100644
--- a/testing/TestHarness/TestHarness.Skia.Gtk/TestHarness.Skia.Gtk.csproj
+++ b/testing/TestHarness/TestHarness.Skia.Gtk/TestHarness.Skia.Gtk.csproj
@@ -60,6 +60,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Skia.WPF/TestHarness.Skia.WPF.csproj b/testing/TestHarness/TestHarness.Skia.WPF/TestHarness.Skia.WPF.csproj
index dc64c9a32b..560ab2a56b 100644
--- a/testing/TestHarness/TestHarness.Skia.WPF/TestHarness.Skia.WPF.csproj
+++ b/testing/TestHarness/TestHarness.Skia.WPF/TestHarness.Skia.WPF.csproj
@@ -54,6 +54,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Wasm/TestHarness.Wasm.csproj b/testing/TestHarness/TestHarness.Wasm/TestHarness.Wasm.csproj
index f3eb78738b..69aa623914 100644
--- a/testing/TestHarness/TestHarness.Wasm/TestHarness.Wasm.csproj
+++ b/testing/TestHarness/TestHarness.Wasm/TestHarness.Wasm.csproj
@@ -92,6 +92,7 @@
+
diff --git a/testing/TestHarness/TestHarness.Windows/TestHarness.Windows.csproj b/testing/TestHarness/TestHarness.Windows/TestHarness.Windows.csproj
index ab0d5b73e6..50abb894e0 100644
--- a/testing/TestHarness/TestHarness.Windows/TestHarness.Windows.csproj
+++ b/testing/TestHarness/TestHarness.Windows/TestHarness.Windows.csproj
@@ -84,6 +84,7 @@
+
diff --git a/testing/TestHarness/TestHarness.sln b/testing/TestHarness/TestHarness.sln
index 76c9121f1c..4d501cbf6c 100644
--- a/testing/TestHarness/TestHarness.sln
+++ b/testing/TestHarness/TestHarness.sln
@@ -208,6 +208,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{87A72917-4D00-4C93-A792-1A00DFD380E6}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.UI", "..\..\src\Uno.Extensions.Http.UI\Uno.Extensions.Http.UI.csproj", "{72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Http.WinUI", "..\..\src\Uno.Extensions.Http.UI\Uno.Extensions.Http.WinUI.csproj", "{FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
@@ -4383,6 +4387,118 @@ Global
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x64.Build.0 = Release|Any CPU
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x86.ActiveCfg = Release|Any CPU
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x86.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|ARM.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|ARM.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|ARM64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|x64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|x64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.AppStore|x86.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|ARM.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|x64.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Debug|x86.Build.0 = Debug|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|ARM.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|ARM.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|ARM64.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|iPhone.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|x64.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|x64.Build.0 = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|x86.ActiveCfg = Release|Any CPU
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA}.Release|x86.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|ARM.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|ARM.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|ARM64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|x64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|x64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.AppStore|x86.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|x64.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Debug|x86.Build.0 = Debug|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|ARM.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|ARM64.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|iPhone.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|x64.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|x64.Build.0 = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|x86.ActiveCfg = Release|Any CPU
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -4473,6 +4589,8 @@ Global
{EB61C02F-B3DC-4297-9BFA-A676BE1BC652} = {3DE9532E-61E4-4B25-B0BD-B580BC63F6BD}
{99D01288-4673-43AB-88A5-B9D42ABA7F81} = {3DE9532E-61E4-4B25-B0BD-B580BC63F6BD}
{87A72917-4D00-4C93-A792-1A00DFD380E6} = {1380679E-0E34-4994-BD7F-1C848B11E761}
+ {72EAF7F2-A7CF-429B-9139-D7B435EFCFAA} = {5851B37C-ADC6-468D-8684-AC06476569AC}
+ {FE6C5BE3-3712-446C-BE40-CA9BE0D70EEC} = {5851B37C-ADC6-468D-8684-AC06476569AC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}