diff --git a/.editorconfig b/.editorconfig
index 20db31bc..be457ccc 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -10,6 +10,39 @@ root = true
insert_final_newline = true
indent_style = space
indent_size = 4
+dotnet_diagnostic.CA1027.severity=error
+dotnet_diagnostic.CA1062.severity=error
+dotnet_diagnostic.CA1064.severity=error
+dotnet_diagnostic.CA1066.severity=error
+dotnet_diagnostic.CA1067.severity=error
+dotnet_diagnostic.CA1068.severity=error
+dotnet_diagnostic.CA1069.severity=warning
+dotnet_diagnostic.CA2013.severity=error
+dotnet_diagnostic.CA1802.severity=error
+dotnet_diagnostic.CA1813.severity=error
+dotnet_diagnostic.CA1814.severity=error
+dotnet_diagnostic.CA1815.severity=error
+dotnet_diagnostic.CA1822.severity=error
+dotnet_diagnostic.CA1827.severity=error
+dotnet_diagnostic.CA1828.severity=error
+dotnet_diagnostic.CA1826.severity=error
+dotnet_diagnostic.CA1829.severity=error
+dotnet_diagnostic.CA1830.severity=error
+dotnet_diagnostic.CA1831.severity=error
+dotnet_diagnostic.CA1832.severity=error
+dotnet_diagnostic.CA1833.severity=error
+dotnet_diagnostic.CA1834.severity=error
+dotnet_diagnostic.CA1835.severity=error
+dotnet_diagnostic.CA1836.severity=error
+dotnet_diagnostic.CA1837.severity=error
+dotnet_diagnostic.CA1838.severity=error
+dotnet_diagnostic.CA2015.severity=error
+dotnet_diagnostic.CA2012.severity=error
+dotnet_diagnostic.CA2011.severity=error
+dotnet_diagnostic.CA2009.severity=error
+dotnet_diagnostic.CA2008.severity=error
+dotnet_diagnostic.CA2007.severity=warning
+dotnet_diagnostic.CA2000.severity=suggestion
[project.json]
indent_size = 2
@@ -43,14 +76,11 @@ dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
# only use var when it's obvious what the variable type is
-csharp_style_var_for_built_in_types = false:none
+csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
-# Types: use keywords instead of BCL types, and permit var only when the type is clear
-csharp_style_var_for_built_in_types = false:suggestion
-csharp_style_var_when_type_is_apparent = false:none
-csharp_style_var_elsewhere = false:suggestion
+# prefer C# premade types.
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
@@ -370,7 +400,7 @@ dotnet_diagnostic.SA1501.severity = error
dotnet_diagnostic.SA1502.severity = error
dotnet_diagnostic.SA1503.severity = error
dotnet_diagnostic.SA1504.severity = error
-dotnet_diagnostic.SA1505.severity = error
+dotnet_diagnostic.SA1505.severity = none
dotnet_diagnostic.SA1506.severity = error
dotnet_diagnostic.SA1507.severity = error
dotnet_diagnostic.SA1508.severity = error
@@ -379,7 +409,7 @@ dotnet_diagnostic.SA1510.severity = error
dotnet_diagnostic.SA1511.severity = error
dotnet_diagnostic.SA1512.severity = error
dotnet_diagnostic.SA1513.severity = error
-dotnet_diagnostic.SA1514.severity = error
+dotnet_diagnostic.SA1514.severity = none
dotnet_diagnostic.SA1515.severity = error
dotnet_diagnostic.SA1516.severity = error
dotnet_diagnostic.SA1517.severity = error
@@ -429,6 +459,48 @@ dotnet_diagnostic.SA1651.severity = error
dotnet_diagnostic.SX1101.severity = error
dotnet_diagnostic.SX1309.severity = error
dotnet_diagnostic.SX1623.severity = none
+dotnet_diagnostic.RCS1102.severity=error
+dotnet_diagnostic.RCS1166.severity=error
+dotnet_diagnostic.RCS1078i.severity=error
+dotnet_diagnostic.RCS1248.severity=error
+dotnet_diagnostic.RCS1080.severity=error
+dotnet_diagnostic.RCS1077.severity=error
+dotnet_diagnostic.CA1825.severity=error
+dotnet_diagnostic.CA1812.severity=error
+dotnet_diagnostic.CA1805.severity=error
+dotnet_diagnostic.RCS1197.severity=error
+dotnet_diagnostic.RCS1198.severity=none
+dotnet_diagnostic.RCS1231.severity=suggestion
+dotnet_diagnostic.RCS1235.severity=error
+dotnet_diagnostic.RCS1242.severity=error
+dotnet_diagnostic.RCS1256.severity=none
+dotnet_diagnostic.CA2016.severity=warning
+dotnet_diagnostic.CA2014.severity=error
+dotnet_diagnostic.RCS1010.severity=error
+dotnet_diagnostic.RCS1006.severity=error
+dotnet_diagnostic.RCS1005.severity=error
+dotnet_diagnostic.RCS1020.severity=error
+dotnet_diagnostic.RCS1049.severity=warning
+dotnet_diagnostic.RCS1058.severity=warning
+dotnet_diagnostic.RCS1068.severity=warning
+dotnet_diagnostic.RCS1073.severity=warning
+dotnet_diagnostic.RCS1084.severity=error
+dotnet_diagnostic.RCS1085.severity=error
+dotnet_diagnostic.RCS1105.severity=error
+dotnet_diagnostic.RCS1112.severity=error
+dotnet_diagnostic.RCS1128.severity=error
+dotnet_diagnostic.RCS1143.severity=error
+dotnet_diagnostic.RCS1158.severity=none
+dotnet_diagnostic.RCS1163.severity=none
+dotnet_diagnostic.RCS1171.severity=error
+dotnet_diagnostic.RCS1173.severity=error
+dotnet_diagnostic.RCS1176.severity=error
+dotnet_diagnostic.RCS1177.severity=error
+dotnet_diagnostic.RCS1179.severity=error
+dotnet_diagnostic.RCS1180.severity=warning
+dotnet_diagnostic.RCS1190.severity=error
+dotnet_diagnostic.RCS1195.severity=error
+dotnet_diagnostic.RCS1214.severity=error
# C++ Files
[*.{cpp,h,in}]
@@ -456,3 +528,5 @@ indent_size = 2
end_of_line = lf
[*.{cmd, bat}]
end_of_line = crlf
+
+vsspell_dictionary_languages = en-US
\ No newline at end of file
diff --git a/.github/workflows/build-samples.yml b/.github/workflows/build-samples.yml
index 5f889761..fe522353 100644
--- a/.github/workflows/build-samples.yml
+++ b/.github/workflows/build-samples.yml
@@ -15,5 +15,6 @@ jobs:
uses: reactiveui/actions-common/.github/workflows/workflow-common-setup-and-build.yml@main
with:
productNamespacePrefix: "Sextant"
+ dotNetBuild: true
srcFolder: "src/Sample"
solutionFile: "SextantSample.sln"
diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index 5f0c7180..a25e217d 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -15,4 +15,5 @@ jobs:
uses: reactiveui/actions-common/.github/workflows/workflow-common-setup-and-build.yml@main
with:
productNamespacePrefix: "Sextant"
+ dotNetBuild: true
solutionFile: "Sextant.sln"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 93ad408d..3d7878de 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,6 +15,7 @@ jobs:
uses: reactiveui/actions-common/.github/workflows/workflow-common-release.yml@main
with:
productNamespacePrefix: "Sextant"
+ dotNetBuild: true
solutionFile: "Sextant.sln"
secrets:
SIGN_CLIENT_USER_ID: ${{ secrets.SIGN_CLIENT_USER_ID }}
diff --git a/Archive/SextantSample.Android.zip b/Archive/SextantSample.Android.zip
new file mode 100644
index 00000000..a90e0701
--- /dev/null
+++ b/Archive/SextantSample.Android.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8bfbbbd1808a7c4beb72e66910afd1d0877021a4a2358b1983bed4c6ac0a01b2
+size 380876
diff --git a/Archive/SextantSample.UWP.zip b/Archive/SextantSample.UWP.zip
new file mode 100644
index 00000000..771c180e
--- /dev/null
+++ b/Archive/SextantSample.UWP.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc65d5ae757fb279025f816fcc3879d4add41d4d1be9c84141c1d951bc603948
+size 28396
diff --git a/Archive/SextantSample.WPF.zip b/Archive/SextantSample.WPF.zip
new file mode 100644
index 00000000..109f6d82
--- /dev/null
+++ b/Archive/SextantSample.WPF.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d73db28596c60bb4b5f2886c87f099722c68867f415a2358e28cd52c7e418888
+size 2604
diff --git a/Archive/SextantSample.iOS.zip b/Archive/SextantSample.iOS.zip
new file mode 100644
index 00000000..9d48ffef
--- /dev/null
+++ b/Archive/SextantSample.iOS.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:726c12eac6708a834f38afa060e325ff9abaa09f1973d49cf639d232cd720cc8
+size 149107
diff --git a/Archive/SextantSample.zip b/Archive/SextantSample.zip
new file mode 100644
index 00000000..da6f49d0
--- /dev/null
+++ b/Archive/SextantSample.zip
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f7450bf017b6e4bbca37982d9efe2b6cc11a1cdcedd31d3eb023e83adb3d6a00
+size 8320
diff --git a/Samples/SextantSample.Maui/App.xaml b/Samples/SextantSample.Maui/App.xaml
new file mode 100644
index 00000000..e6062012
--- /dev/null
+++ b/Samples/SextantSample.Maui/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/SextantSample.Maui/App.xaml.cs b/Samples/SextantSample.Maui/App.xaml.cs
new file mode 100644
index 00000000..d213f853
--- /dev/null
+++ b/Samples/SextantSample.Maui/App.xaml.cs
@@ -0,0 +1,19 @@
+namespace SextantSample.Maui
+{
+ public partial class App : Application
+ {
+ public App()
+ {
+ InitializeComponent();
+
+ ////MainPage = new AppShell();
+ Locator
+ .Current
+ .GetService()
+ .PushPage(new HomeViewModel(), null, true, false)
+ .Subscribe();
+
+ MainPage = Locator.Current.GetNavigationView();
+ }
+ }
+}
diff --git a/Samples/SextantSample.Maui/AppShell.xaml b/Samples/SextantSample.Maui/AppShell.xaml
new file mode 100644
index 00000000..ea99f4e0
--- /dev/null
+++ b/Samples/SextantSample.Maui/AppShell.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/Samples/SextantSample.Maui/AppShell.xaml.cs b/Samples/SextantSample.Maui/AppShell.xaml.cs
new file mode 100644
index 00000000..945c9fd5
--- /dev/null
+++ b/Samples/SextantSample.Maui/AppShell.xaml.cs
@@ -0,0 +1,10 @@
+namespace SextantSample.Maui
+{
+ public partial class AppShell : Shell
+ {
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/Sample/SextantSample.Maui/GlobalUsings.cs b/Samples/SextantSample.Maui/GlobalUsings.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/GlobalUsings.cs
rename to Samples/SextantSample.Maui/GlobalUsings.cs
diff --git a/Samples/SextantSample.Maui/MainPage.xaml b/Samples/SextantSample.Maui/MainPage.xaml
new file mode 100644
index 00000000..5223e055
--- /dev/null
+++ b/Samples/SextantSample.Maui/MainPage.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/SextantSample.Maui/MainPage.xaml.cs b/Samples/SextantSample.Maui/MainPage.xaml.cs
new file mode 100644
index 00000000..35ee7ed8
--- /dev/null
+++ b/Samples/SextantSample.Maui/MainPage.xaml.cs
@@ -0,0 +1,25 @@
+namespace SextantSample.Maui
+{
+ public partial class MainPage : ContentPage
+ {
+ int count;
+
+ public MainPage()
+ {
+ InitializeComponent();
+ }
+
+ private void OnCounterClicked(object sender, EventArgs e)
+ {
+ count++;
+
+ if (count == 1)
+ CounterBtn.Text = $"Clicked {count} time";
+ else
+ CounterBtn.Text = $"Clicked {count} times";
+
+ SemanticScreenReader.Announce(CounterBtn.Text);
+ }
+ }
+
+}
diff --git a/Samples/SextantSample.Maui/MauiProgram.cs b/Samples/SextantSample.Maui/MauiProgram.cs
new file mode 100644
index 00000000..c219c10e
--- /dev/null
+++ b/Samples/SextantSample.Maui/MauiProgram.cs
@@ -0,0 +1,38 @@
+using Microsoft.Extensions.Logging;
+
+namespace SextantSample.Maui
+{
+ public static class MauiProgram
+ {
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+ builder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ });
+ RxApp.DefaultExceptionHandler = new SextantDefaultExceptionHandler();
+ var resolver = Locator.CurrentMutable;
+ resolver.InitializeSplat();
+ resolver.InitializeReactiveUI();
+ ////Instance.InitializeMaui();
+ Locator
+ .CurrentMutable
+ .RegisterViewForNavigation()
+ .RegisterViewForNavigation(() => new(), () => new(Locator.Current.GetService()))
+ .RegisterViewForNavigation(() => new(), () => new(Locator.Current.GetService()))
+ .RegisterViewForNavigation(() => new(), () => new(Locator.Current.GetService()))
+ .RegisterViewForNavigation(() => new(), () => new(Locator.Current.GetService()))
+ .RegisterNavigationView(() => new BlueNavigationView());
+
+#if DEBUG
+ builder.Logging.AddDebug();
+#endif
+
+ return builder.Build();
+ }
+ }
+}
diff --git a/src/Sample/SextantSample.Maui/Platforms/Android/AndroidManifest.xml b/Samples/SextantSample.Maui/Platforms/Android/AndroidManifest.xml
similarity index 76%
rename from src/Sample/SextantSample.Maui/Platforms/Android/AndroidManifest.xml
rename to Samples/SextantSample.Maui/Platforms/Android/AndroidManifest.xml
index 0f8b33b6..a66cfe96 100644
--- a/src/Sample/SextantSample.Maui/Platforms/Android/AndroidManifest.xml
+++ b/Samples/SextantSample.Maui/Platforms/Android/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
-
\ No newline at end of file
+
+
diff --git a/Samples/SextantSample.Maui/Platforms/Android/MainActivity.cs b/Samples/SextantSample.Maui/Platforms/Android/MainActivity.cs
new file mode 100644
index 00000000..0aecf3b9
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/Android/MainActivity.cs
@@ -0,0 +1,11 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+
+namespace SextantSample.Maui
+{
+ [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
+ public class MainActivity : MauiAppCompatActivity
+ {
+ }
+}
diff --git a/Samples/SextantSample.Maui/Platforms/Android/MainApplication.cs b/Samples/SextantSample.Maui/Platforms/Android/MainApplication.cs
new file mode 100644
index 00000000..2945aa2c
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/Android/MainApplication.cs
@@ -0,0 +1,16 @@
+using Android.App;
+using Android.Runtime;
+
+namespace SextantSample.Maui
+{
+ [Application]
+ public class MainApplication : MauiApplication
+ {
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/src/Sample/SextantSample.Maui/Platforms/Android/Resources/values/colors.xml b/Samples/SextantSample.Maui/Platforms/Android/Resources/values/colors.xml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Platforms/Android/Resources/values/colors.xml
rename to Samples/SextantSample.Maui/Platforms/Android/Resources/values/colors.xml
diff --git a/Samples/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs b/Samples/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs
new file mode 100644
index 00000000..8e6aaae5
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+
+namespace SextantSample.Maui
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/Samples/SextantSample.Maui/Platforms/MacCatalyst/Entitlements.plist b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Entitlements.plist
new file mode 100644
index 00000000..de4adc94
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Entitlements.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ com.apple.security.app-sandbox
+
+
+ com.apple.security.network.client
+
+
+
+
diff --git a/src/Sample/SextantSample.Maui/Platforms/iOS/Info.plist b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Info.plist
similarity index 59%
rename from src/Sample/SextantSample.Maui/Platforms/iOS/Info.plist
rename to Samples/SextantSample.Maui/Platforms/MacCatalyst/Info.plist
index ed2ffb61..72689771 100644
--- a/src/Sample/SextantSample.Maui/Platforms/iOS/Info.plist
+++ b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Info.plist
@@ -2,13 +2,17 @@
- LSRequiresIPhoneOS
-
- MinimumOSVersion
- 10.3.4
+
+
+
+
+
+
+
+
+
UIDeviceFamily
- 1
2
UIRequiredDeviceCapabilities
diff --git a/Samples/SextantSample.Maui/Platforms/MacCatalyst/Program.cs b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Program.cs
new file mode 100644
index 00000000..292017fd
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/MacCatalyst/Program.cs
@@ -0,0 +1,10 @@
+using UIKit;
+
+namespace SextantSample.Maui
+{
+ public static class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args) => UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/Samples/SextantSample.Maui/Platforms/Tizen/Main.cs b/Samples/SextantSample.Maui/Platforms/Tizen/Main.cs
new file mode 100644
index 00000000..c327d600
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/Tizen/Main.cs
@@ -0,0 +1,17 @@
+using System;
+using Microsoft.Maui;
+using Microsoft.Maui.Hosting;
+
+namespace SextantSample.Maui
+{
+ internal class Program : MauiApplication
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+
+ static void Main(string[] args)
+ {
+ var app = new Program();
+ app.Run(args);
+ }
+ }
+}
diff --git a/Samples/SextantSample.Maui/Platforms/Tizen/tizen-manifest.xml b/Samples/SextantSample.Maui/Platforms/Tizen/tizen-manifest.xml
new file mode 100644
index 00000000..c376e6ee
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/Tizen/tizen-manifest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ maui-appicon-placeholder
+
+
+
+
+ http://tizen.org/privilege/internet
+
+
+
+
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Maui/Platforms/Windows/App.xaml b/Samples/SextantSample.Maui/Platforms/Windows/App.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Platforms/Windows/App.xaml
rename to Samples/SextantSample.Maui/Platforms/Windows/App.xaml
diff --git a/Samples/SextantSample.Maui/Platforms/Windows/App.xaml.cs b/Samples/SextantSample.Maui/Platforms/Windows/App.xaml.cs
new file mode 100644
index 00000000..a127cad3
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/Windows/App.xaml.cs
@@ -0,0 +1,25 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace SextantSample.Maui.WinUI
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : MauiWinUIApplication
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+
+}
diff --git a/src/Sample/SextantSample.Maui/Platforms/Windows/Package.appxmanifest b/Samples/SextantSample.Maui/Platforms/Windows/Package.appxmanifest
similarity index 65%
rename from src/Sample/SextantSample.Maui/Platforms/Windows/Package.appxmanifest
rename to Samples/SextantSample.Maui/Platforms/Windows/Package.appxmanifest
index a04e3629..b41e1075 100644
--- a/src/Sample/SextantSample.Maui/Platforms/Windows/Package.appxmanifest
+++ b/Samples/SextantSample.Maui/Platforms/Windows/Package.appxmanifest
@@ -1,5 +1,4 @@
-
-
+
-
+
$placeholder$
@@ -26,24 +22,18 @@
-
+
-
+
-
-
+ Square44x44Logo="$placeholder$.png"
+ BackgroundColor="transparent">
+
diff --git a/src/Sample/SextantSample.Maui/Platforms/Windows/app.manifest b/Samples/SextantSample.Maui/Platforms/Windows/app.manifest
similarity index 100%
rename from src/Sample/SextantSample.Maui/Platforms/Windows/app.manifest
rename to Samples/SextantSample.Maui/Platforms/Windows/app.manifest
diff --git a/Samples/SextantSample.Maui/Platforms/iOS/AppDelegate.cs b/Samples/SextantSample.Maui/Platforms/iOS/AppDelegate.cs
new file mode 100644
index 00000000..8e6aaae5
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/iOS/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+
+namespace SextantSample.Maui
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Info.plist b/Samples/SextantSample.Maui/Platforms/iOS/Info.plist
similarity index 96%
rename from src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Info.plist
rename to Samples/SextantSample.Maui/Platforms/iOS/Info.plist
index c96dd0a2..0004a4fd 100644
--- a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Info.plist
+++ b/Samples/SextantSample.Maui/Platforms/iOS/Info.plist
@@ -2,6 +2,8 @@
+ LSRequiresIPhoneOS
+
UIDeviceFamily
1
diff --git a/Samples/SextantSample.Maui/Platforms/iOS/Program.cs b/Samples/SextantSample.Maui/Platforms/iOS/Program.cs
new file mode 100644
index 00000000..292017fd
--- /dev/null
+++ b/Samples/SextantSample.Maui/Platforms/iOS/Program.cs
@@ -0,0 +1,10 @@
+using UIKit;
+
+namespace SextantSample.Maui
+{
+ public static class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args) => UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/src/Sample/SextantSample.Maui/Properties/launchSettings.json b/Samples/SextantSample.Maui/Properties/launchSettings.json
similarity index 100%
rename from src/Sample/SextantSample.Maui/Properties/launchSettings.json
rename to Samples/SextantSample.Maui/Properties/launchSettings.json
diff --git a/src/Sample/SextantSample.Maui/Resources/AppIcon/appicon.svg b/Samples/SextantSample.Maui/Resources/AppIcon/appicon.svg
similarity index 100%
rename from src/Sample/SextantSample.Maui/Resources/AppIcon/appicon.svg
rename to Samples/SextantSample.Maui/Resources/AppIcon/appicon.svg
diff --git a/src/Sample/SextantSample.Maui/Resources/AppIcon/appiconfg.svg b/Samples/SextantSample.Maui/Resources/AppIcon/appiconfg.svg
similarity index 100%
rename from src/Sample/SextantSample.Maui/Resources/AppIcon/appiconfg.svg
rename to Samples/SextantSample.Maui/Resources/AppIcon/appiconfg.svg
diff --git a/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf b/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 00000000..4d9bd713
--- /dev/null
+++ b/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d0ab9264819683234ff724d96538ae548f0f6fbb2df8ad73db1221a06523a5e4
+size 107168
diff --git a/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf b/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf
new file mode 100644
index 00000000..3806b5b1
--- /dev/null
+++ b/Samples/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8859d10e78e10c0fa23078c91d4320148953dd8f463ac03a676aa5315ca3dc67
+size 111072
diff --git a/Samples/SextantSample.Maui/Resources/Images/dotnet_bot.png b/Samples/SextantSample.Maui/Resources/Images/dotnet_bot.png
new file mode 100644
index 00000000..5e8655d5
--- /dev/null
+++ b/Samples/SextantSample.Maui/Resources/Images/dotnet_bot.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46b44df1a69e178a57c7f928dc39636aa29b35bca2c864752440b9c340b3726c
+size 69811
diff --git a/src/Sample/SextantSample.Maui/Resources/Raw/AboutAssets.txt b/Samples/SextantSample.Maui/Resources/Raw/AboutAssets.txt
similarity index 86%
rename from src/Sample/SextantSample.Maui/Resources/Raw/AboutAssets.txt
rename to Samples/SextantSample.Maui/Resources/Raw/AboutAssets.txt
index 15d62448..89dc758d 100644
--- a/src/Sample/SextantSample.Maui/Resources/Raw/AboutAssets.txt
+++ b/Samples/SextantSample.Maui/Resources/Raw/AboutAssets.txt
@@ -4,7 +4,7 @@ is automatically handled by the following `MauiAsset` Build Action within your `
-These files will be deployed with you package and will be accessible using Essentials:
+These files will be deployed with your package and will be accessible using Essentials:
async Task LoadMauiAsset()
{
diff --git a/src/Sample/SextantSample.Maui/Resources/Splash/splash.svg b/Samples/SextantSample.Maui/Resources/Splash/splash.svg
similarity index 100%
rename from src/Sample/SextantSample.Maui/Resources/Splash/splash.svg
rename to Samples/SextantSample.Maui/Resources/Splash/splash.svg
diff --git a/src/Sample/SextantSample.Maui/Resources/Styles/Colors.xaml b/Samples/SextantSample.Maui/Resources/Styles/Colors.xaml
similarity index 80%
rename from src/Sample/SextantSample.Maui/Resources/Styles/Colors.xaml
rename to Samples/SextantSample.Maui/Resources/Styles/Colors.xaml
index 245758ba..30307a5d 100644
--- a/src/Sample/SextantSample.Maui/Resources/Styles/Colors.xaml
+++ b/Samples/SextantSample.Maui/Resources/Styles/Colors.xaml
@@ -4,11 +4,21 @@
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+
#512BD4
+ #ac99ea
+ #242424
#DFD8F7
+ #9880e5
#2B0B98
+
White
Black
+ #D600AA
+ #190649
+ #1f1f1f
+
#E1E1E1
#C8C8C8
#ACACAC
@@ -17,11 +27,13 @@
#404040
#212121
#141414
+
+
@@ -30,15 +42,4 @@
-
- #F7B548
- #FFD590
- #FFE5B9
- #28C2D1
- #7BDDEF
- #C3F2F4
- #3E8EED
- #72ACF1
- #A7CBF6
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Maui/Resources/Styles/Styles.xaml b/Samples/SextantSample.Maui/Resources/Styles/Styles.xaml
similarity index 91%
rename from src/Sample/SextantSample.Maui/Resources/Styles/Styles.xaml
rename to Samples/SextantSample.Maui/Resources/Styles/Styles.xaml
index dc4a0347..19ceac51 100644
--- a/src/Sample/SextantSample.Maui/Resources/Styles/Styles.xaml
+++ b/Samples/SextantSample.Maui/Resources/Styles/Styles.xaml
@@ -20,14 +20,15 @@
+
+
+
+
+
+
diff --git a/Samples/SextantSample.Maui/SextantSample.Maui.csproj b/Samples/SextantSample.Maui/SextantSample.Maui.csproj
new file mode 100644
index 00000000..3a915d29
--- /dev/null
+++ b/Samples/SextantSample.Maui/SextantSample.Maui.csproj
@@ -0,0 +1,64 @@
+
+
+
+ net8.0-android;net8.0-ios
+ $(TargetFrameworks);net8.0-windows10.0.19041.0
+ Exe
+ true
+ true
+ enable
+ false
+ false
+
+ SextantSample.Maui
+
+
+ com.companyname.sextantsample.maui
+
+
+ 1.0
+ 1
+
+ 11.0
+ 13.1
+ 21.0
+ 10.0.17763.0
+ 10.0.17763.0
+ 6.5
+ x64
+
+
+ win-x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Sample/SextantSample.Maui/Views/BlueNavigationView.cs b/Samples/SextantSample.Maui/Views/BlueNavigationView.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/BlueNavigationView.cs
rename to Samples/SextantSample.Maui/Views/BlueNavigationView.cs
diff --git a/src/Sample/SextantSample.Maui/Views/FirstModalView.xaml b/Samples/SextantSample.Maui/Views/FirstModalView.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/FirstModalView.xaml
rename to Samples/SextantSample.Maui/Views/FirstModalView.xaml
diff --git a/src/Sample/SextantSample.Maui/Views/FirstModalView.xaml.cs b/Samples/SextantSample.Maui/Views/FirstModalView.xaml.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/FirstModalView.xaml.cs
rename to Samples/SextantSample.Maui/Views/FirstModalView.xaml.cs
diff --git a/src/Sample/SextantSample.Maui/Views/GreenView.xaml b/Samples/SextantSample.Maui/Views/GreenView.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/GreenView.xaml
rename to Samples/SextantSample.Maui/Views/GreenView.xaml
diff --git a/src/Sample/SextantSample.Maui/Views/GreenView.xaml.cs b/Samples/SextantSample.Maui/Views/GreenView.xaml.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/GreenView.xaml.cs
rename to Samples/SextantSample.Maui/Views/GreenView.xaml.cs
diff --git a/src/Sample/SextantSample.Maui/Views/HomeView.xaml b/Samples/SextantSample.Maui/Views/HomeView.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/HomeView.xaml
rename to Samples/SextantSample.Maui/Views/HomeView.xaml
diff --git a/src/Sample/SextantSample.Maui/Views/HomeView.xaml.cs b/Samples/SextantSample.Maui/Views/HomeView.xaml.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/HomeView.xaml.cs
rename to Samples/SextantSample.Maui/Views/HomeView.xaml.cs
diff --git a/src/Sample/SextantSample.Maui/Views/RedView.xaml b/Samples/SextantSample.Maui/Views/RedView.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/RedView.xaml
rename to Samples/SextantSample.Maui/Views/RedView.xaml
diff --git a/src/Sample/SextantSample.Maui/Views/RedView.xaml.cs b/Samples/SextantSample.Maui/Views/RedView.xaml.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/RedView.xaml.cs
rename to Samples/SextantSample.Maui/Views/RedView.xaml.cs
diff --git a/src/Sample/SextantSample.Maui/Views/SecondModalView.xaml b/Samples/SextantSample.Maui/Views/SecondModalView.xaml
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/SecondModalView.xaml
rename to Samples/SextantSample.Maui/Views/SecondModalView.xaml
diff --git a/src/Sample/SextantSample.Maui/Views/SecondModalView.xaml.cs b/Samples/SextantSample.Maui/Views/SecondModalView.xaml.cs
similarity index 100%
rename from src/Sample/SextantSample.Maui/Views/SecondModalView.xaml.cs
rename to Samples/SextantSample.Maui/Views/SecondModalView.xaml.cs
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 3f797b26..f926d20d 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -5,8 +5,7 @@
11.0.10
- 19.6.12
- 6.0.0
+ 20.1.1
@@ -15,10 +14,10 @@
-
+
-
-
+
+
@@ -29,22 +28,18 @@
-
+
-
-
-
-
-
+
+
-
-
+
diff --git a/src/Directory.build.props b/src/Directory.build.props
index df85e48e..b291338f 100644
--- a/src/Directory.build.props
+++ b/src/Directory.build.props
@@ -23,6 +23,7 @@
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
CS8600;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8623;CS8624;CS8625;CS8626;CS8627;CS8628;CS8629;CS8630;CS8634;CS8766;CS8767
preview
+ enable
True
latest
nullable
@@ -36,15 +37,21 @@
+
+
+
+
+
+
-
+
diff --git a/src/Directory.build.targets b/src/Directory.build.targets
index 8c56efb8..2528d8dd 100644
--- a/src/Directory.build.targets
+++ b/src/Directory.build.targets
@@ -10,69 +10,20 @@
$(DefineConstants);NET_461;XAML
-
+
$(DefineConstants);MONO;UIKIT;COCOA;IOS
-
+
$(DefineConstants);MONO;UIKIT;COCOA;IOS
-
- $(DefineConstants);MONO;UIKIT;COCOA;IOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;IOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;IOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;IOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;IOS
-
-
- $(DefineConstants);MONO;COCOA;MAC
-
-
- $(DefineConstants);MONO;COCOA;MAC
-
-
- $(DefineConstants);MONO;COCOA;MAC
-
-
+
$(DefineConstants);MONO;COCOA;MAC
-
- $(DefineConstants);MONO;UIKIT;COCOA;TVOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;TVOS
-
-
- $(DefineConstants);MONO;UIKIT;COCOA;TVOS
-
-
+
$(DefineConstants);MONO;UIKIT;COCOA;TVOS
-
- $(DefineConstants);MONO;UIKIT;COCOA;WATCHOS
-
-
+
$(DefineConstants);MONO;ANDROID
- false
-
-
- $(DefineConstants);MONO;ANDROID
-
-
- $(DefineConstants);MONO;ANDROID
-
-
- $(DefineConstants);MONO;ANDROID
-
-
- $(DefineConstants);TIZEN
diff --git a/src/Sample/SextantSample.Android/Assets/AboutAssets.txt b/src/Sample/SextantSample.Android/Assets/AboutAssets.txt
deleted file mode 100644
index 81b5afc7..00000000
--- a/src/Sample/SextantSample.Android/Assets/AboutAssets.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Any raw assets you want to be deployed with your application can be placed in
-this directory (and child directories) and given a Build Action of "AndroidAsset".
-
-These files will be deployed with you package and will be accessible using Android's
-AssetManager, like this:
-
-public class ReadAsset : Activity
-{
- protected override void OnCreate (Bundle bundle)
- {
- base.OnCreate (bundle);
-
- InputStream input = Assets.Open ("my_asset.txt");
- }
-}
-
-Additionally, some Android functions will automatically load asset files:
-
-Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
diff --git a/src/Sample/SextantSample.Android/MainActivity.cs b/src/Sample/SextantSample.Android/MainActivity.cs
deleted file mode 100644
index b169c606..00000000
--- a/src/Sample/SextantSample.Android/MainActivity.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-
-using Android.App;
-using Android.Content.PM;
-using Android.OS;
-
-namespace SextantSample.Droid;
-
-[Activity(Label = "SextantSample", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
-public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
-{
- protected override void OnCreate(Bundle bundle)
- {
- TabLayoutResource = Resource.Layout.Tabbar;
- ToolbarResource = Resource.Layout.Toolbar;
-
- base.OnCreate(bundle);
-
- Xamarin.Forms.Forms.Init(this, bundle);
- LoadApplication(new App());
- }
-}
diff --git a/src/Sample/SextantSample.Android/Properties/AndroidManifest.xml b/src/Sample/SextantSample.Android/Properties/AndroidManifest.xml
deleted file mode 100644
index da365097..00000000
--- a/src/Sample/SextantSample.Android/Properties/AndroidManifest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Android/Properties/AssemblyInfo.cs b/src/Sample/SextantSample.Android/Properties/AssemblyInfo.cs
deleted file mode 100644
index 946cb6f0..00000000
--- a/src/Sample/SextantSample.Android/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using Android.App;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SextantSample.Android")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SextantSample.Android")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-[assembly: ComVisible(false)]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-// [assembly: AssemblyVersion("1.0.0.0")]
-// [assembly: AssemblyFileVersion("1.0.0.0")]
-
-// Add some common permissions, these can be removed if not needed
-[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
-[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
diff --git a/src/Sample/SextantSample.Android/Resources/AboutResources.txt b/src/Sample/SextantSample.Android/Resources/AboutResources.txt
deleted file mode 100644
index cb30f20b..00000000
--- a/src/Sample/SextantSample.Android/Resources/AboutResources.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Images, layout descriptions, binary blobs and string dictionaries can be included
-in your application as resource files. Various Android APIs are designed to
-operate on the resource IDs instead of dealing with images, strings or binary blobs
-directly.
-
-For example, a sample Android app that contains a user interface layout (main.xml),
-an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
-would keep its resources in the "Resources" directory of the application:
-
-Resources/
- drawable-hdpi/
- icon.png
-
- drawable-ldpi/
- icon.png
-
- drawable-mdpi/
- icon.png
-
- layout/
- main.xml
-
- values/
- strings.xml
-
-In order to get the build system to recognize Android resources, set the build action to
-"AndroidResource". The native Android APIs do not operate directly with filenames, but
-instead operate on resource IDs. When you compile an Android application that uses resources,
-the build system will package the resources for distribution and generate a class called
-"Resource" that contains the tokens for each one of the resources included. For example,
-for the above Resources layout, this is what the Resource class would expose:
-
-public class Resource {
- public class drawable {
- public const int icon = 0x123;
- }
-
- public class layout {
- public const int main = 0x456;
- }
-
- public class strings {
- public const int first_string = 0xabc;
- public const int second_string = 0xbcd;
- }
-}
-
-You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
-to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
-string in the dictionary file values/strings.xml.
diff --git a/src/Sample/SextantSample.Android/Resources/drawable/xamarin_logo.png b/src/Sample/SextantSample.Android/Resources/drawable/xamarin_logo.png
deleted file mode 100644
index 6befe10f..00000000
--- a/src/Sample/SextantSample.Android/Resources/drawable/xamarin_logo.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea73ef57fbb8e1e93f7effee76c3a3109146b878dd691ebce5560d7c38bde01d
-size 21481
diff --git a/src/Sample/SextantSample.Android/Resources/layout/Tabbar.axml b/src/Sample/SextantSample.Android/Resources/layout/Tabbar.axml
deleted file mode 100644
index 900ce3cc..00000000
--- a/src/Sample/SextantSample.Android/Resources/layout/Tabbar.axml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
diff --git a/src/Sample/SextantSample.Android/Resources/layout/Toolbar.axml b/src/Sample/SextantSample.Android/Resources/layout/Toolbar.axml
deleted file mode 100644
index aabd0a3b..00000000
--- a/src/Sample/SextantSample.Android/Resources/layout/Toolbar.axml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon.xml b/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon.xml
deleted file mode 100644
index 88d1d0a1..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon_round.xml b/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon_round.xml
deleted file mode 100644
index 88d1d0a1..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-anydpi-v26/icon_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/Icon.png b/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/Icon.png
deleted file mode 100644
index b7990051..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/Icon.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a5bb656d9c5f9d702ab1b7fb2c3ea6d4855fdcdf7592b8affa37a0f7c788efe7
-size 4754
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/launcher_foreground.png b/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/launcher_foreground.png
deleted file mode 100644
index 50421b21..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-hdpi/launcher_foreground.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:992d032e705646cd3be0fb83873074c9b1dcb0673c05307953d72679a37b65f4
-size 11695
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/icon.png b/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/icon.png
deleted file mode 100644
index 6669aaa9..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/icon.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:54f2cbea5af45cc7a4fe7d4c80841c8be270e8e4e337201ff2422ecf4007e181
-size 2807
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/launcher_foreground.png b/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/launcher_foreground.png
deleted file mode 100644
index 3e396ae1..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-mdpi/launcher_foreground.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0dc5150f8c57eef92075a270adf3578c77cf390bea2ea161e4ef09dbf2a6e698
-size 6439
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/Icon.png b/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/Icon.png
deleted file mode 100644
index eed23e84..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/Icon.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5ffdb4ae78761bf99a0a43f827f42ea1a3410fc3b8537832536af712cefdb069
-size 7028
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/launcher_foreground.png b/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/launcher_foreground.png
deleted file mode 100644
index e43c47de..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xhdpi/launcher_foreground.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3a84ead75472a8b35a9d3a25a046fd7c869880a254882e03f8b96c7d49accdf0
-size 17898
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/Icon.png b/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/Icon.png
deleted file mode 100644
index 68749366..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/Icon.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9f3bffe7057bb1215c9764b0faa56e3a5ffa4ce3b92ce1d54c1ef106d125bcfb
-size 12827
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/launcher_foreground.png b/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
deleted file mode 100644
index a6c6c13d..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7235e00896cbc1f3558c6199f2ca74e828bb6d444517802b1e288558748aa228
-size 33484
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/Icon.png b/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/Icon.png
deleted file mode 100644
index fba4eefb..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/Icon.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8911287772984d5bac8d0c89fcbf501285fdbf10d5a6540c1b5a4e6ccc4ff06f
-size 19380
diff --git a/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png b/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
deleted file mode 100644
index 74aaa5cd..00000000
--- a/src/Sample/SextantSample.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:54d86486f9ba368807632acd6dafc7e56395a7cfe8599cb44c36a4a1a424fb96
-size 52285
diff --git a/src/Sample/SextantSample.Android/Resources/values/colors.xml b/src/Sample/SextantSample.Android/Resources/values/colors.xml
deleted file mode 100644
index d9f6e0ba..00000000
--- a/src/Sample/SextantSample.Android/Resources/values/colors.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- #FFFFFF
- #3F51B5
- #303F9F
- #FF4081
-
diff --git a/src/Sample/SextantSample.Android/Resources/values/styles.xml b/src/Sample/SextantSample.Android/Resources/values/styles.xml
deleted file mode 100644
index 48d15fe3..00000000
--- a/src/Sample/SextantSample.Android/Resources/values/styles.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.Android/Resources/xml/file_paths.xml b/src/Sample/SextantSample.Android/Resources/xml/file_paths.xml
deleted file mode 100644
index 90b770f7..00000000
--- a/src/Sample/SextantSample.Android/Resources/xml/file_paths.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Android/SextantSample.Android.csproj b/src/Sample/SextantSample.Android/SextantSample.Android.csproj
deleted file mode 100644
index a8809266..00000000
--- a/src/Sample/SextantSample.Android/SextantSample.Android.csproj
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
- Debug
- AnyCPU
- {4A684BB2-2CB4-4B04-8541-FF0FA677DD49}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {c9e5eea5-ca05-42a1-839b-61506e0a37df}
- Library
- SextantSample.Droid
- SextantSample.Android
- True
- Resources\Resource.designer.cs
- Resource
- Properties\AndroidManifest.xml
- Resources
- Assets
- v13.0
-
-
-
-
- true
- full
- false
- bin\Debug
- DEBUG;LOGGING
- prompt
- 4
- None
- false
- false
- false
- false
-
- Xamarin
- false
-
-
- true
- pdbonly
- true
- bin\Release
- prompt
- 4
- true
- false
-
-
- true
- pdbonly
- true
- bin\Sample Release
- prompt
- 4
- true
- false
- true
- armeabi-v7a
-
-
- true
- bin\x64\Debug\
- DEBUG;LOGGING
- portable
- x64
- Off
- 8.0
- prompt
-
-
- true
- bin\x64\Release\
- true
- portable
- x64
- Off
- 8.0
- prompt
-
-
- true
- bin\x64\Sample Release\
- true
- portable
- x64
- Off
- 8.0
- prompt
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {4cf5e8d0-bb2c-4790-9ad5-03aec069c3c3}
- Sextant
-
-
- {44FA03FD-7A52-41AD-9332-1B34FFDEE67B}
- SextantSample
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Avalonia.sln b/src/Sample/SextantSample.Avalonia.sln
index 3f8d57c5..d38d97bb 100644
--- a/src/Sample/SextantSample.Avalonia.sln
+++ b/src/Sample/SextantSample.Avalonia.sln
@@ -3,14 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34902.65
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample", "SextantSample\SextantSample.csproj", "{AB35E5EE-24AE-479A-909E-1FD941E152EF}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant", "..\Sextant\Sextant.csproj", "{4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.ViewModels", "SextantSample.Core\SextantSample.ViewModels.csproj", "{5818A5AF-3FF6-4E68-80FC-604D4AEF156C}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant.XamForms", "..\Sextant.XamForms\Sextant.XamForms.csproj", "{3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant.Avalonia", "..\Sextant.Avalonia\Sextant.Avalonia.csproj", "{41165CA6-DE68-4DF0-A554-CD47B643F545}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.Avalonia", "SextantSample.Avalonia\SextantSample.Avalonia.csproj", "{901979AB-BEBA-440A-BC70-9067F02B6B63}"
@@ -43,36 +39,6 @@ Global
Sample Release|iPhoneSimulator = Sample Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhone.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
@@ -133,36 +99,6 @@ Global
{5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhone.Build.0 = Release|Any CPU
{5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|iPhone.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|Any CPU.Build.0 = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|iPhone.ActiveCfg = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|iPhone.Build.0 = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|Any CPU.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|Any CPU.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|iPhone.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|iPhone.Build.0 = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3A3613ED-BB0D-40CF-B0D5-A13C2F12D7BC}.Sample Release|iPhoneSimulator.Build.0 = Debug|Any CPU
{41165CA6-DE68-4DF0-A554-CD47B643F545}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{41165CA6-DE68-4DF0-A554-CD47B643F545}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{41165CA6-DE68-4DF0-A554-CD47B643F545}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
diff --git a/src/Sample/SextantSample.Avalonia/App.xaml.cs b/src/Sample/SextantSample.Avalonia/App.xaml.cs
index 7dd79b8c..d255744e 100644
--- a/src/Sample/SextantSample.Avalonia/App.xaml.cs
+++ b/src/Sample/SextantSample.Avalonia/App.xaml.cs
@@ -31,20 +31,19 @@ public class App : Application
///
public override void OnFrameworkInitializationCompleted()
{
- Locator
- .CurrentMutable
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterViewModelFactory(() => new DefaultViewModelFactory())
- .RegisterNavigationView(() => new NavigationView())
- .RegisterViewModel(() => new GreenViewModel(Locator.Current.GetService()));
+ IViewStackService viewStackService = default!;
Locator
- .Current
- .GetService()
+ .CurrentMutable
+ .RegisterViewForNavigation()
+ .RegisterViewForNavigation(() => new(), () => new(viewStackService))
+ .RegisterViewForNavigation(() => new(), () => new(viewStackService))
+ .RegisterViewForNavigation(() => new(), () => new(viewStackService))
+ .RegisterViewForNavigation(() => new(), () => new(viewStackService))
+ .RegisterViewModelFactory(() => new DefaultViewModelFactory())
+ .RegisterNavigationView(() => new NavigationView());
+ viewStackService = Locator.Current.GetService()!;
+ viewStackService
.PushPage(new HomeViewModel());
Interactions.ErrorMessage.RegisterHandler(async context =>
diff --git a/src/Sample/SextantSample.Core/FirstModalNavigationViewModel.cs b/src/Sample/SextantSample.Core/FirstModalNavigationViewModel.cs
index 412be61f..af31f63a 100644
--- a/src/Sample/SextantSample.Core/FirstModalNavigationViewModel.cs
+++ b/src/Sample/SextantSample.Core/FirstModalNavigationViewModel.cs
@@ -10,7 +10,7 @@ namespace SextantSample.ViewModels;
///
/// FirstModalNavigationViewModel.
///
-///
+///
public class FirstModalNavigationViewModel(IViewStackService viewStackService) : ViewModelBase(viewStackService)
{
///
diff --git a/src/Sample/SextantSample.Core/FirstModalViewModel.cs b/src/Sample/SextantSample.Core/FirstModalViewModel.cs
index 820335c9..a17a3092 100644
--- a/src/Sample/SextantSample.Core/FirstModalViewModel.cs
+++ b/src/Sample/SextantSample.Core/FirstModalViewModel.cs
@@ -14,8 +14,8 @@ namespace SextantSample.ViewModels;
///
/// FirstModalViewModel.
///
-///
-///
+///
+///
public class FirstModalViewModel : ViewModelBase, IDestructible
{
///
@@ -26,10 +26,10 @@ public FirstModalViewModel(IViewStackService viewStackService)
: base(viewStackService)
{
OpenModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushModal(new SecondModalViewModel(viewStackService)), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushModal(new SecondModalViewModel(viewStackService)), outputScheduler: RxApp.MainThreadScheduler);
PopModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
OpenModal.Subscribe(_ => Debug.WriteLine("PagePushed"));
PopModal.Subscribe(_ => Debug.WriteLine("PagePopped"));
diff --git a/src/Sample/SextantSample.Core/GreenViewModel.cs b/src/Sample/SextantSample.Core/GreenViewModel.cs
index 0fe7d975..672d465f 100644
--- a/src/Sample/SextantSample.Core/GreenViewModel.cs
+++ b/src/Sample/SextantSample.Core/GreenViewModel.cs
@@ -15,9 +15,9 @@ namespace SextantSample.ViewModels;
///
/// GreenViewModel.
///
-///
-///
-///
+///
+///
+///
public class GreenViewModel : ViewModelBase, INavigable, IDestructible
{
///
@@ -27,7 +27,7 @@ public class GreenViewModel : ViewModelBase, INavigable, IDestructible
public GreenViewModel(IViewStackService viewStackService)
: base(viewStackService) =>
OpenModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushModal(new FirstModalViewModel(viewStackService), string.Empty, false), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushModal(new FirstModalViewModel(viewStackService), string.Empty, false), outputScheduler: RxApp.MainThreadScheduler);
///
/// Gets the identifier.
diff --git a/src/Sample/SextantSample.Core/HomeNavigationViewModel.cs b/src/Sample/SextantSample.Core/HomeNavigationViewModel.cs
index 98c791be..46a70450 100644
--- a/src/Sample/SextantSample.Core/HomeNavigationViewModel.cs
+++ b/src/Sample/SextantSample.Core/HomeNavigationViewModel.cs
@@ -10,5 +10,5 @@ namespace SextantSample.ViewModels;
///
/// HomeNavigationViewModel.
///
-///
+///
public class HomeNavigationViewModel : ReactiveObject;
diff --git a/src/Sample/SextantSample.Core/HomeViewModel.cs b/src/Sample/SextantSample.Core/HomeViewModel.cs
index 7860530b..0c21306e 100644
--- a/src/Sample/SextantSample.Core/HomeViewModel.cs
+++ b/src/Sample/SextantSample.Core/HomeViewModel.cs
@@ -14,7 +14,7 @@ namespace SextantSample.ViewModels;
///
/// HomeViewModel.
///
-///
+///
public class HomeViewModel : ViewModelBase
{
///
@@ -24,13 +24,13 @@ public HomeViewModel()
: base(Locator.Current.GetService())
{
OpenModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushModal(new FirstModalViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushModal(new FirstModalViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
PushPage = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
PushGenericPage = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushPage(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushPage(), outputScheduler: RxApp.MainThreadScheduler);
PushPage.ThrownExceptions.Subscribe(error => Interactions.ErrorMessage.Handle(error).Subscribe());
PushGenericPage.ThrownExceptions.Subscribe(error => Interactions.ErrorMessage.Handle(error).Subscribe());
diff --git a/src/Sample/SextantSample.Core/RedViewModel.cs b/src/Sample/SextantSample.Core/RedViewModel.cs
index a480a91b..10a7afac 100644
--- a/src/Sample/SextantSample.Core/RedViewModel.cs
+++ b/src/Sample/SextantSample.Core/RedViewModel.cs
@@ -14,7 +14,7 @@ namespace SextantSample.ViewModels;
///
/// RedViewModel.
///
-///
+///
public class RedViewModel : ViewModelBase
{
///
@@ -25,16 +25,16 @@ public RedViewModel(IViewStackService viewStackService)
: base(viewStackService)
{
PopModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
PopPage = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PopPage(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PopPage(), outputScheduler: RxApp.MainThreadScheduler);
PushPage = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
PopToRoot = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PopToRootPage(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PopToRootPage(), outputScheduler: RxApp.MainThreadScheduler);
PopModal.Subscribe(_ => Debug.WriteLine("PagePushed"));
PopModal.ThrownExceptions.Subscribe(error => Interactions.ErrorMessage.Handle(error).Subscribe());
diff --git a/src/Sample/SextantSample.Core/SecondModalNavigationViewModel.cs b/src/Sample/SextantSample.Core/SecondModalNavigationViewModel.cs
index 08b504bb..415fb53c 100644
--- a/src/Sample/SextantSample.Core/SecondModalNavigationViewModel.cs
+++ b/src/Sample/SextantSample.Core/SecondModalNavigationViewModel.cs
@@ -11,5 +11,5 @@ namespace SextantSample.ViewModels;
///
/// SecondModalNavigationViewModel.
///
-///
+///
public class SecondModalNavigationViewModel : ReactiveObject;
diff --git a/src/Sample/SextantSample.Core/SecondModalViewModel.cs b/src/Sample/SextantSample.Core/SecondModalViewModel.cs
index 1382e214..c4394e7c 100644
--- a/src/Sample/SextantSample.Core/SecondModalViewModel.cs
+++ b/src/Sample/SextantSample.Core/SecondModalViewModel.cs
@@ -14,7 +14,7 @@ namespace SextantSample.ViewModels;
///
/// SecondModalViewModel.
///
-///
+///
public class SecondModalViewModel : ViewModelBase
{
///
@@ -25,10 +25,10 @@ public SecondModalViewModel(IViewStackService viewStackService)
: base(viewStackService)
{
PushPage = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PushPage(new RedViewModel(ViewStackService)), outputScheduler: RxApp.MainThreadScheduler);
PopModal = ReactiveCommand
- .CreateFromObservable(() => ViewStackService.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
+ .CreateFromObservable(() => ViewStackService!.PopModal(), outputScheduler: RxApp.MainThreadScheduler);
PushPage.Subscribe(_ => Debug.WriteLine("PagePushed"));
PopModal.Subscribe(_ => Debug.WriteLine("PagePopped"));
diff --git a/src/Sample/SextantSample.Core/SextantSample.ViewModels.csproj b/src/Sample/SextantSample.Core/SextantSample.ViewModels.csproj
index a84bf3ef..43cd8254 100644
--- a/src/Sample/SextantSample.Core/SextantSample.ViewModels.csproj
+++ b/src/Sample/SextantSample.Core/SextantSample.ViewModels.csproj
@@ -1,9 +1,8 @@
-
+
- netstandard2.0;net6.0;net7.0;net8.0
- AnyCPU;x64
- preview
+ netstandard2.0;net6.0;net8.0
+ false
diff --git a/src/Sample/SextantSample.Core/ViewModelBase.cs b/src/Sample/SextantSample.Core/ViewModelBase.cs
index dfc10e19..4ddf2f0f 100644
--- a/src/Sample/SextantSample.Core/ViewModelBase.cs
+++ b/src/Sample/SextantSample.Core/ViewModelBase.cs
@@ -12,21 +12,21 @@ namespace SextantSample.ViewModels;
///
/// ViewModelBase.
///
-///
-///
+///
+///
///
/// Initializes a new instance of the class.
///
/// The view stack service.
-public abstract class ViewModelBase(IViewStackService viewStackService) : ReactiveObject, IViewModel
+public abstract class ViewModelBase(IViewStackService? viewStackService) : ReactiveObject, IViewModel
{
///
/// Gets the ID of the page.
///
- public virtual string Id { get; }
+ public virtual string? Id { get; }
///
/// Gets the view stack service.
///
- protected IViewStackService ViewStackService { get; } = viewStackService;
+ protected IViewStackService? ViewStackService { get; } = viewStackService;
}
diff --git a/src/Sample/SextantSample.Maui/App.xaml b/src/Sample/SextantSample.Maui/App.xaml
deleted file mode 100644
index 28a858fc..00000000
--- a/src/Sample/SextantSample.Maui/App.xaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.Maui/App.xaml.cs b/src/Sample/SextantSample.Maui/App.xaml.cs
deleted file mode 100644
index 697e0957..00000000
--- a/src/Sample/SextantSample.Maui/App.xaml.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
-
-namespace SextantSample.Maui;
-
-public partial class App : Application
-{
- public App()
- {
- InitializeComponent();
-
- Locator
- .Current
- .GetService()
- .PushPage(new HomeViewModel(), null, true, false)
- .Subscribe();
-
- MainPage = Locator.Current.GetNavigationView();
- }
-}
diff --git a/src/Sample/SextantSample.Maui/MauiProgram.cs b/src/Sample/SextantSample.Maui/MauiProgram.cs
deleted file mode 100644
index 526b10f2..00000000
--- a/src/Sample/SextantSample.Maui/MauiProgram.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using static Sextant.Sextant;
-
-namespace SextantSample.Maui;
-
-public static class MauiProgram
-{
- public static MauiApp CreateMauiApp()
- {
- MauiAppBuilder builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- });
-
- RxApp.DefaultExceptionHandler = new SextantDefaultExceptionHandler();
- IMutableDependencyResolver resolver = Locator.CurrentMutable;
- resolver.InitializeSplat();
- resolver.InitializeReactiveUI();
- Instance.InitializeMaui();
- Locator
- .CurrentMutable
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterNavigationView(() => new BlueNavigationView())
- .RegisterViewModel(() => new GreenViewModel(Locator.Current.GetService()));
-
-#if DEBUG
- builder.Logging.AddDebug();
-#endif
-
- return builder.Build();
- }
-}
diff --git a/src/Sample/SextantSample.Maui/Platforms/Android/MainActivity.cs b/src/Sample/SextantSample.Maui/Platforms/Android/MainActivity.cs
deleted file mode 100644
index 0e4f3ac4..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/Android/MainActivity.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using Android.App;
-using Android.Content.PM;
-using Android.OS;
-
-namespace SextantSample.Maui;
-
-///
-/// MainActivity.
-///
-///
-[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
-public class MainActivity : MauiAppCompatActivity
-{
- ///
- /// Called when [create].
- ///
- /// State of the saved instance.
- protected override void OnCreate(Bundle savedInstanceState)
- {
- base.OnCreate(savedInstanceState);
- Platform.Init(this, savedInstanceState);
- }
-
- ///
- /// Called when [request permissions result].
- ///
- /// The request code.
- /// The permissions.
- /// The grant results.
- public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
- {
- Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
-
- base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- }
-}
diff --git a/src/Sample/SextantSample.Maui/Platforms/Android/MainApplication.cs b/src/Sample/SextantSample.Maui/Platforms/Android/MainApplication.cs
deleted file mode 100644
index bcd7e187..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/Android/MainApplication.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Android.App;
-using Android.Runtime;
-
-namespace SextantSample.Maui;
-
-[Application]
-public class MainApplication : MauiApplication
-{
- public MainApplication(IntPtr handle, JniHandleOwnership ownership)
- : base(handle, ownership)
- {
- }
-
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
-}
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs b/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs
deleted file mode 100644
index 7a2de645..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/AppDelegate.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Foundation;
-
-namespace SextantSample.Maui;
-
-[Register("AppDelegate")]
-public class AppDelegate : MauiUIApplicationDelegate
-{
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
-}
diff --git a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Program.cs b/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Program.cs
deleted file mode 100644
index 8b3d71fe..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/MacCatalyst/Program.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using UIKit;
-
-namespace SextantSample.Maui;
-
-public class Program
-{
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppDelegate));
- }
-}
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Maui/Platforms/Windows/App.xaml.cs b/src/Sample/SextantSample.Maui/Platforms/Windows/App.xaml.cs
deleted file mode 100644
index 63988fc3..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/Windows/App.xaml.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// To learn more about WinUI, the WinUI project structure,
-// and more about our project templates, see: http://aka.ms/winui-project-info.
-
-namespace SextantSample.Maui.WinUI;
-
-///
-/// Provides application-specific behavior to supplement the default Application class.
-///
-public partial class App : MauiWinUIApplication
-{
- ///
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
- ///
- public App()
- {
- InitializeComponent();
- }
-
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
-}
diff --git a/src/Sample/SextantSample.Maui/Platforms/iOS/AppDelegate.cs b/src/Sample/SextantSample.Maui/Platforms/iOS/AppDelegate.cs
deleted file mode 100644
index 7a2de645..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/iOS/AppDelegate.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Foundation;
-
-namespace SextantSample.Maui;
-
-[Register("AppDelegate")]
-public class AppDelegate : MauiUIApplicationDelegate
-{
- protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
-}
diff --git a/src/Sample/SextantSample.Maui/Platforms/iOS/Program.cs b/src/Sample/SextantSample.Maui/Platforms/iOS/Program.cs
deleted file mode 100644
index 8b3d71fe..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/iOS/Program.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using UIKit;
-
-namespace SextantSample.Maui;
-
-public class Program
-{
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppDelegate));
- }
-}
\ No newline at end of file
diff --git a/src/Sample/SextantSample.Maui/Platforms/iOS/Resources/LaunchScreen.xib b/src/Sample/SextantSample.Maui/Platforms/iOS/Resources/LaunchScreen.xib
deleted file mode 100644
index 3e5075f7..00000000
--- a/src/Sample/SextantSample.Maui/Platforms/iOS/Resources/LaunchScreen.xib
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf b/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf
deleted file mode 100644
index 1beddae5..00000000
--- a/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Regular.ttf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:037236ed4bf58a85f67074c165d308260fd6be01c86d7df4e79ea16eb273f8c5
-size 96932
diff --git a/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf b/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf
deleted file mode 100644
index d81c625f..00000000
--- a/src/Sample/SextantSample.Maui/Resources/Fonts/OpenSans-Semibold.ttf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e8d9e1a89083cd1b0849993fe2f3acc9aa33b7f439f7e8616872f6897f30684
-size 100820
diff --git a/src/Sample/SextantSample.Maui/Resources/Images/dotnet_bot.svg b/src/Sample/SextantSample.Maui/Resources/Images/dotnet_bot.svg
deleted file mode 100644
index abfaff26..00000000
--- a/src/Sample/SextantSample.Maui/Resources/Images/dotnet_bot.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-
diff --git a/src/Sample/SextantSample.Maui/SextantSample.Maui.csproj b/src/Sample/SextantSample.Maui/SextantSample.Maui.csproj
deleted file mode 100644
index 193f0eae..00000000
--- a/src/Sample/SextantSample.Maui/SextantSample.Maui.csproj
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
- net8.0-ios;net8.0-android;net8.0-maccatalyst
- $(TargetFrameworks);net8.0-windows10.0.19041.0
- Exe
- SextantSample.Maui
- true
- true
- enable
- true
-
- SextantSample.Maui
-
- com.companyname.SextantSample.Maui
- 919dc1f9-17a9-48b3-81f8-0b8016bdfbf7
-
- 1.0
- 1
-
- True
- 14.2
- 14.0
- 21.0
- 10.0.17763.0
- 10.0.17763.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(Filename)
-
-
-
-
- Designer
-
-
-
- WinExe
- win10-x64
- MSIX
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/App.xaml b/src/Sample/SextantSample.UWP/App.xaml
deleted file mode 100644
index 871674c0..00000000
--- a/src/Sample/SextantSample.UWP/App.xaml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
diff --git a/src/Sample/SextantSample.UWP/App.xaml.cs b/src/Sample/SextantSample.UWP/App.xaml.cs
deleted file mode 100644
index 7d276f34..00000000
--- a/src/Sample/SextantSample.UWP/App.xaml.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using ReactiveUI;
-using Sextant;
-using SextantSample.UWP.Views;
-using SextantSample.ViewModels;
-using Splat;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-using static Sextant.Sextant;
-
-namespace SextantSample.UWP
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- sealed partial class App : Application
- {
- ///
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
- ///
- public App()
- {
- this.InitializeComponent();
- this.Suspending += OnSuspending;
-
- RxApp.DefaultExceptionHandler = new SextantDefaultExceptionHandler();
- }
-
- ///
- /// Invoked when the application is launched normally by the end user. Other entry points
- /// will be used such as when the application is launched to open a specific file.
- ///
- /// Details about the launch request and process.
- protected override void OnLaunched(LaunchActivatedEventArgs e)
- {
- Frame rootFrame = Window.Current.Content as Frame;
-
- Instance.Initialize();
-
- Locator
- .CurrentMutable
- .RegisterViewUWP()
- .RegisterViewUWP()
- .RegisterViewUWP()
- .RegisterViewUWP()
- .RegisterViewUWP()
- .RegisterNavigationView(() => new BlueNavigationView())
- .RegisterViewModel(() => new GreenViewModel(Locator.Current.GetService()));
-
- Window.Current.Content = Splat.Locator.Current.GetNavigationView();
-
- //// Do not repeat app initialization when the Window already has content,
- //// just ensure that the window is active
- //if (rootFrame is null)
- //{
- // // Create a Frame to act as the navigation context and navigate to the first page
- // rootFrame = new Frame();
-
- // rootFrame.NavigationFailed += OnNavigationFailed;
-
- // if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
- // {
- // //TODO: Load state from previously suspended application
- // }
-
- // // Place the frame in the current Window
- // Window.Current.Content = rootFrame;
- //}
-
- if (e.PrelaunchActivated == false)
- {
- //if (rootFrame.Content is null)
- //{
- // // When the navigation stack isn't restored navigate to the first page,
- // // configuring the new page by passing required information as a navigation
- // // parameter
- // //rootFrame.Navigate(typeof(MainPage), e.Arguments);
-
-
-
- //}
-
- Locator
- .Current
- .GetService()
- .PushPage(new HomeViewModel(), null, true, false)
- .Subscribe();
- // Ensure the current window is active
- Window.Current.Activate();
- }
- }
-
- ///
- /// Invoked when Navigation to a certain page fails
- ///
- /// The Frame which failed navigation
- /// Details about the navigation failure
- void OnNavigationFailed(object sender, NavigationFailedEventArgs e) => throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
-
- ///
- /// Invoked when application execution is being suspended. Application state is saved
- /// without knowing whether the application will be terminated or resumed with the contents
- /// of memory still intact.
- ///
- /// The source of the suspend request.
- /// Details about the suspend request.
- private void OnSuspending(object sender, SuspendingEventArgs e)
- {
- var deferral = e.SuspendingOperation.GetDeferral();
- //TODO: Save application state and stop any background activity
- deferral.Complete();
- }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Assets/LockScreenLogo.scale-200.png b/src/Sample/SextantSample.UWP/Assets/LockScreenLogo.scale-200.png
deleted file mode 100644
index 8cf1cc02..00000000
--- a/src/Sample/SextantSample.UWP/Assets/LockScreenLogo.scale-200.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a41a053b3fc3b0c109720ccd437a19725ae9163ea75990222a12b596b9c7ca76
-size 1430
diff --git a/src/Sample/SextantSample.UWP/Assets/SplashScreen.scale-200.png b/src/Sample/SextantSample.UWP/Assets/SplashScreen.scale-200.png
deleted file mode 100644
index 1ade290f..00000000
--- a/src/Sample/SextantSample.UWP/Assets/SplashScreen.scale-200.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a3382b0b1b834e95b888f06d483dc2d78fa1b3855e0683d5cfbd5167be9731a6
-size 7700
diff --git a/src/Sample/SextantSample.UWP/Assets/Square150x150Logo.scale-200.png b/src/Sample/SextantSample.UWP/Assets/Square150x150Logo.scale-200.png
deleted file mode 100644
index f269619b..00000000
--- a/src/Sample/SextantSample.UWP/Assets/Square150x150Logo.scale-200.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7f3cb5738e8f05544445f79996a313f8b47dee22dbc9c7be859d2707710f0c73
-size 2937
diff --git a/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.scale-200.png b/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.scale-200.png
deleted file mode 100644
index 818d96d8..00000000
--- a/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.scale-200.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:594492a25070951d7462c091d9f899a66f55ba992bb9b05d98d50f67cdfb2abe
-size 1647
diff --git a/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
deleted file mode 100644
index 8c010282..00000000
--- a/src/Sample/SextantSample.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:48cf9c22156a0b3d77982641f972785e7861a7257f7bcf155be7d5a12e1aa3d8
-size 1255
diff --git a/src/Sample/SextantSample.UWP/Assets/StoreLogo.png b/src/Sample/SextantSample.UWP/Assets/StoreLogo.png
deleted file mode 100644
index 679f7d74..00000000
--- a/src/Sample/SextantSample.UWP/Assets/StoreLogo.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ae95e99a96251abaf8de15c9cdaddb8cefb1b8b320b10a4f1f4e1dc3c25c1b1a
-size 1451
diff --git a/src/Sample/SextantSample.UWP/Assets/Wide310x150Logo.scale-200.png b/src/Sample/SextantSample.UWP/Assets/Wide310x150Logo.scale-200.png
deleted file mode 100644
index 75789826..00000000
--- a/src/Sample/SextantSample.UWP/Assets/Wide310x150Logo.scale-200.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b5b7754832c08e58faacfe64ea4b9f8b59b52a658e4eea4aab3790cfb89faa03
-size 3204
diff --git a/src/Sample/SextantSample.UWP/Package.appxmanifest b/src/Sample/SextantSample.UWP/Package.appxmanifest
deleted file mode 100644
index f33abb50..00000000
--- a/src/Sample/SextantSample.UWP/Package.appxmanifest
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
- SextantSample.UWP
- leemc
- Assets\StoreLogo.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.UWP/Properties/AssemblyInfo.cs b/src/Sample/SextantSample.UWP/Properties/AssemblyInfo.cs
deleted file mode 100644
index ab8fe06f..00000000
--- a/src/Sample/SextantSample.UWP/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SextantSample.UWP")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SextantSample.UWP")]
-[assembly: AssemblyCopyright("Copyright © .NET Foundation 2021")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: ComVisible(false)]
diff --git a/src/Sample/SextantSample.UWP/Properties/Default.rd.xml b/src/Sample/SextantSample.UWP/Properties/Default.rd.xml
deleted file mode 100644
index af00722c..00000000
--- a/src/Sample/SextantSample.UWP/Properties/Default.rd.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.UWP/SextantDefaultExceptionHandler.cs b/src/Sample/SextantSample.UWP/SextantDefaultExceptionHandler.cs
deleted file mode 100644
index 84d9ca88..00000000
--- a/src/Sample/SextantSample.UWP/SextantDefaultExceptionHandler.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Reactive.Concurrency;
-using ReactiveUI;
-
-namespace SextantSample.UWP
-{
- public class SextantDefaultExceptionHandler : IObserver
- {
- public void OnNext(Exception ex)
- {
- if (Debugger.IsAttached)
- {
- Debugger.Break();
- }
-
- RxApp.MainThreadScheduler.Schedule(() => { throw ex; });
- }
-
- public void OnError(Exception ex)
- {
- if (Debugger.IsAttached)
- {
- Debugger.Break();
- }
- RxApp.MainThreadScheduler.Schedule(() => { throw ex; });
- }
-
- public void OnCompleted()
- {
- if (Debugger.IsAttached) Debugger.Break();
- RxApp.MainThreadScheduler.Schedule(() => { throw new NotImplementedException(); });
- }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/SextantSample.UWP.csproj b/src/Sample/SextantSample.UWP/SextantSample.UWP.csproj
deleted file mode 100644
index 29c59cc4..00000000
--- a/src/Sample/SextantSample.UWP/SextantSample.UWP.csproj
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
-
- Debug
- x86
- {30FC2A59-FFBA-4C10-9E8F-39C504DDA990}
- AppContainerExe
- Properties
- SextantSample.UWP
- SextantSample.UWP
- en-US
- UAP
- 10.0.18362.0
- 10.0.17763.0
- 14
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- true
- false
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x86
- false
- prompt
- true
-
-
- bin\x86\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x86
- false
- prompt
- true
- true
-
-
- true
- bin\ARM\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- ARM
- false
- prompt
- true
-
-
- bin\ARM\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- ARM
- false
- prompt
- true
- true
-
-
- true
- bin\ARM64\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- ARM64
- false
- prompt
- true
- true
-
-
- bin\ARM64\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- ARM64
- false
- prompt
- true
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x64
- false
- prompt
- true
-
-
- bin\x64\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x64
- false
- prompt
- true
- true
-
-
- PackageReference
-
-
-
- App.xaml
-
-
-
-
-
- FirstModalView.xaml
-
-
- GreenView.xaml
-
-
- HomeView.xaml
-
-
- RedView.xaml
-
-
- SecondModalView.xaml
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
- Designer
- MSBuild:Compile
-
-
-
-
- 6.2.14
-
-
- 13.*
-
-
-
-
-
- {d6b84899-4afc-4e6c-9c3f-005f21df5a52}
- Sextant
-
-
- {69790d55-7aa2-4d01-8d1d-70cc25aae8f0}
- SextantSample.ViewModels
-
-
-
-
- 14.0
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/BlueNavigationView.cs b/src/Sample/SextantSample.UWP/Views/BlueNavigationView.cs
deleted file mode 100644
index 77e26db2..00000000
--- a/src/Sample/SextantSample.UWP/Views/BlueNavigationView.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reactive.Concurrency;
-using System.Text;
-using System.Threading.Tasks;
-using ReactiveUI;
-using Windows.UI.Xaml.Controls;
-
-namespace SextantSample.UWP.Views
-{
- public class BlueNavigationView : Sextant.NavigationView, IViewFor
- {
- public BlueNavigationView() : base(RxApp.MainThreadScheduler, RxApp.TaskpoolScheduler, ViewLocator.Current)
- {
- var titleBar = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TitleBar;
- titleBar.BackgroundColor = Windows.UI.Colors.Blue;
- titleBar.ForegroundColor = Windows.UI.Colors.White;
- }
-
- public object ViewModel { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml b/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml
deleted file mode 100644
index b0c4df35..00000000
--- a/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml.cs b/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml.cs
deleted file mode 100644
index 3a3b2302..00000000
--- a/src/Sample/SextantSample.UWP/Views/FirstModalView.xaml.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using ReactiveUI;
-using SextantSample.ViewModels;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace SextantSample.UWP.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class FirstModalView : Page, IViewFor
- {
- public FirstModalView()
- {
- this.InitializeComponent();
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- var dialog = new Windows.UI.Popups.MessageDialog(x.Input.Message, "Error");
- dialog.Commands.Add(new Windows.UI.Popups.UICommand("Done"));
- _ = await dialog.ShowAsync();
- x.SetOutput(true);
- });
- }
-
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty
- .Register(nameof(ViewModel), typeof(FirstModalViewModel), typeof(FirstModalView), null);
-
- public FirstModalViewModel ViewModel
- {
- get => (FirstModalViewModel)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
-
- object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (FirstModalViewModel)value; }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Views/GreenView.xaml b/src/Sample/SextantSample.UWP/Views/GreenView.xaml
deleted file mode 100644
index fe050d1a..00000000
--- a/src/Sample/SextantSample.UWP/Views/GreenView.xaml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/GreenView.xaml.cs b/src/Sample/SextantSample.UWP/Views/GreenView.xaml.cs
deleted file mode 100644
index 2fdbfa24..00000000
--- a/src/Sample/SextantSample.UWP/Views/GreenView.xaml.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using ReactiveUI;
-using SextantSample.ViewModels;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace SextantSample.UWP.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class GreenView : Page, IViewFor
- {
- public GreenView() => this.InitializeComponent();
-
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty
- .Register(nameof(ViewModel), typeof(GreenViewModel), typeof(GreenView), null);
-
- public GreenViewModel ViewModel
- {
- get => (GreenViewModel)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
-
- object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (GreenViewModel)value; }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Views/HomeView.xaml b/src/Sample/SextantSample.UWP/Views/HomeView.xaml
deleted file mode 100644
index f17c8067..00000000
--- a/src/Sample/SextantSample.UWP/Views/HomeView.xaml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/HomeView.xaml.cs b/src/Sample/SextantSample.UWP/Views/HomeView.xaml.cs
deleted file mode 100644
index 36376c1c..00000000
--- a/src/Sample/SextantSample.UWP/Views/HomeView.xaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Reactive.Disposables;
-using ReactiveUI;
-using SextantSample.ViewModels;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace SextantSample.UWP.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class HomeView : Page, ReactiveUI.IViewFor
- {
- public HomeView() => this.InitializeComponent();
-
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty
- .Register(nameof(ViewModel), typeof(HomeViewModel), typeof(HomeView), null);
-
- public HomeViewModel ViewModel
- {
- get => (HomeViewModel)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
-
- object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (HomeViewModel)value; }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Views/RedView.xaml b/src/Sample/SextantSample.UWP/Views/RedView.xaml
deleted file mode 100644
index a822dc38..00000000
--- a/src/Sample/SextantSample.UWP/Views/RedView.xaml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/RedView.xaml.cs b/src/Sample/SextantSample.UWP/Views/RedView.xaml.cs
deleted file mode 100644
index 1cb0530b..00000000
--- a/src/Sample/SextantSample.UWP/Views/RedView.xaml.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using ReactiveUI;
-using SextantSample.ViewModels;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace SextantSample.UWP.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class RedView : Page, IViewFor
- {
- public RedView()
- {
- this.InitializeComponent();
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- var dialog = new Windows.UI.Popups.MessageDialog(x.Input.Message, "Error");
- dialog.Commands.Add(new Windows.UI.Popups.UICommand("Done"));
- _ = await dialog.ShowAsync();
- x.SetOutput(true);
- });
- }
-
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty
- .Register(nameof(ViewModel), typeof(RedViewModel), typeof(RedView), null);
-
- public RedViewModel ViewModel
- {
- get => (RedViewModel)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
-
- object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (RedViewModel)value; }
- }
-}
diff --git a/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml b/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml
deleted file mode 100644
index 1d380125..00000000
--- a/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml.cs b/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml.cs
deleted file mode 100644
index 6f698093..00000000
--- a/src/Sample/SextantSample.UWP/Views/SecondModalView.xaml.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using ReactiveUI;
-using SextantSample.ViewModels;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
-
-namespace SextantSample.UWP.Views
-{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
- public sealed partial class SecondModalView : Page, IViewFor
- {
- public SecondModalView()
- {
- this.InitializeComponent();
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- var dialog = new Windows.UI.Popups.MessageDialog(x.Input.Message, "Error");
- dialog.Commands.Add(new Windows.UI.Popups.UICommand("Done"));
- _ = await dialog.ShowAsync();
- x.SetOutput(true);
- });
- }
-
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty
- .Register(nameof(ViewModel), typeof(SecondModalViewModel), typeof(SecondModalView), null);
-
- public SecondModalViewModel ViewModel
- {
- get => (SecondModalViewModel)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
-
- object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (SecondModalViewModel)value; }
- }
-}
diff --git a/src/Sample/SextantSample.WPF/App.xaml b/src/Sample/SextantSample.WPF/App.xaml
deleted file mode 100644
index 735695a0..00000000
--- a/src/Sample/SextantSample.WPF/App.xaml
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/src/Sample/SextantSample.WPF/App.xaml.cs b/src/Sample/SextantSample.WPF/App.xaml.cs
deleted file mode 100644
index db4c8ec0..00000000
--- a/src/Sample/SextantSample.WPF/App.xaml.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-namespace SextantSample.WPF;
-
-///
-/// App.
-///
-///
-public partial class App;
diff --git a/src/Sample/SextantSample.WPF/AssemblyInfo.cs b/src/Sample/SextantSample.WPF/AssemblyInfo.cs
deleted file mode 100644
index 407b3343..00000000
--- a/src/Sample/SextantSample.WPF/AssemblyInfo.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using System.Windows;
-
-[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
diff --git a/src/Sample/SextantSample.WPF/MainWindow.xaml b/src/Sample/SextantSample.WPF/MainWindow.xaml
deleted file mode 100644
index cec26402..00000000
--- a/src/Sample/SextantSample.WPF/MainWindow.xaml
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/Sample/SextantSample.WPF/MainWindow.xaml.cs b/src/Sample/SextantSample.WPF/MainWindow.xaml.cs
deleted file mode 100644
index bce9d793..00000000
--- a/src/Sample/SextantSample.WPF/MainWindow.xaml.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using Xamarin.Forms;
-
-namespace SextantSample.WPF;
-
-///
-/// MainWindow.
-///
-///
-///
-public partial class MainWindow
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public MainWindow()
- {
- InitializeComponent();
-
- Forms.Init();
- LoadApplication(new SextantSample.App());
- }
-}
diff --git a/src/Sample/SextantSample.WPF/SextantSample.WPF.csproj b/src/Sample/SextantSample.WPF/SextantSample.WPF.csproj
deleted file mode 100644
index 3757213b..00000000
--- a/src/Sample/SextantSample.WPF/SextantSample.WPF.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- WinExe
- net8.0-windows10.0.19041.0
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.iOS/AppDelegate.cs b/src/Sample/SextantSample.iOS/AppDelegate.cs
deleted file mode 100644
index 99aa89d4..00000000
--- a/src/Sample/SextantSample.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-
-using Foundation;
-using UIKit;
-
-namespace SextantSample.iOS
-{
- // The UIApplicationDelegate for the application. This class is responsible for launching the
- // User Interface of the application, as well as listening (and optionally responding) to
- // application events from iOS.
- [Register("AppDelegate")]
- public class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
- {
- //
- // This method is invoked when the application has loaded and is ready to run. In this
- // method you should instantiate the window, load the UI into it and then make the window
- // visible.
- //
- // You have 17 seconds to return from this method, or iOS will terminate your application.
- //
- public override bool FinishedLaunching(UIApplication app, NSDictionary options)
- {
- Xamarin.Forms.Forms.Init();
- LoadApplication(new App());
-
- return base.FinishedLaunching(app, options);
- }
- }
-}
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 98f4d035..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "images": [
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon40.png"
- },
- {
- "scale": "3x",
- "size": "20x20",
- "idiom": "iphone",
- "filename": "Icon60.png"
- },
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon58.png"
- },
- {
- "scale": "3x",
- "size": "29x29",
- "idiom": "iphone",
- "filename": "Icon87.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon80.png"
- },
- {
- "scale": "3x",
- "size": "40x40",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "2x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon120.png"
- },
- {
- "scale": "3x",
- "size": "60x60",
- "idiom": "iphone",
- "filename": "Icon180.png"
- },
- {
- "scale": "1x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon20.png"
- },
- {
- "scale": "2x",
- "size": "20x20",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "1x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon29.png"
- },
- {
- "scale": "2x",
- "size": "29x29",
- "idiom": "ipad",
- "filename": "Icon58.png"
- },
- {
- "scale": "1x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon40.png"
- },
- {
- "scale": "2x",
- "size": "40x40",
- "idiom": "ipad",
- "filename": "Icon80.png"
- },
- {
- "scale": "1x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon76.png"
- },
- {
- "scale": "2x",
- "size": "76x76",
- "idiom": "ipad",
- "filename": "Icon152.png"
- },
- {
- "scale": "2x",
- "size": "83.5x83.5",
- "idiom": "ipad",
- "filename": "Icon167.png"
- },
- {
- "scale": "1x",
- "size": "1024x1024",
- "idiom": "ios-marketing",
- "filename": "Icon1024.png"
- }
- ],
- "properties": {},
- "info": {
- "version": 1,
- "author": "xcode"
- }
-}
\ No newline at end of file
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
deleted file mode 100644
index 00ea39f4..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cc7f7cb40a3d7b2d7639e2a15b62bc3404d779a56c8863ae492218fb3519452e
-size 70429
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
deleted file mode 100644
index d15e0877..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:faf908f37fa0eb73f531d8c46ef422df52252b9bca73cd726ec299bf92852fb6
-size 3773
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
deleted file mode 100644
index e08d2743..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8b98982a7dd52bbaea5515ce0681e7b1180eaddf85589cc6a261c5b1c98336d9
-size 4750
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
deleted file mode 100644
index b3cf0e41..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ed32a51128101cd81f0569f209f415ca21315591fc46b1db5533f254d4db6c69
-size 4692
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
deleted file mode 100644
index 29144004..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d11de68c36358cccbb16a82ba7645c3ab6c7568b4cd5f29f7b7879f38a99495e
-size 5192
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
deleted file mode 100644
index 7cede99d..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:de96a3ba670c8163ba94ef578bb897b951b14c475ac1fecab06b297af967bd6f
-size 1313
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
deleted file mode 100644
index b3b8a23e..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:653a3d75c42c01ce4dd60c0aa0b59f6de548a016a2d70cc9aaa3a5e9664e78c9
-size 845
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
deleted file mode 100644
index d8cb0c9e..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:09242c80c04a97fc083bca554f5c992f4ae090ffaa858af7a92613b5cdb07354
-size 1101
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
deleted file mode 100644
index 5b90b812..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:04cfee2b3a4feb32a77bb953c8453a0bb416f48906a9448b5edc355c0d68da86
-size 1761
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
deleted file mode 100644
index e15f3192..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bf145cb811bd1095bd94aadd17e3ed38b489dde1e8ce58ad5e9de090bb3556f8
-size 2537
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
deleted file mode 100644
index a80c4e0f..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:170b1b2119e0fff597104534ab50b7c31b930eb76b24bfc9bd7508e1b489bc30
-size 2332
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
deleted file mode 100644
index c6ef7b4b..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:538ba04ed28b7eec3917fa1a3226e4b023ffc263bb762891a2a25e2c95f9f394
-size 2454
diff --git a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
deleted file mode 100644
index 306a529c..00000000
--- a/src/Sample/SextantSample.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a5bf0830dc6cffbf5685ee16b11c9e04b08466cce1ddd4c9598f9ad8e7952c6f
-size 2758
diff --git a/src/Sample/SextantSample.iOS/Entitlements.plist b/src/Sample/SextantSample.iOS/Entitlements.plist
deleted file mode 100644
index e9a3005f..00000000
--- a/src/Sample/SextantSample.iOS/Entitlements.plist
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample.iOS/Info.plist b/src/Sample/SextantSample.iOS/Info.plist
deleted file mode 100644
index 32f141ba..00000000
--- a/src/Sample/SextantSample.iOS/Info.plist
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- UIDeviceFamily
-
- 1
- 2
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- MinimumOSVersion
- 8.0
- CFBundleDisplayName
- SextantSample
- CFBundleIdentifier
- com.giusepe.SextantSample
- CFBundleVersion
- 1.0
- UILaunchStoryboardName
- LaunchScreen
- CFBundleName
- SextantSample
- XSAppIconAssets
- Assets.xcassets/AppIcon.appiconset
-
-
diff --git a/src/Sample/SextantSample.iOS/Main.cs b/src/Sample/SextantSample.iOS/Main.cs
deleted file mode 100644
index 3323228c..00000000
--- a/src/Sample/SextantSample.iOS/Main.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-
-using UIKit;
-
-namespace SextantSample.iOS
-{
- public static class Application
- {
- // This is the main entry point of the application.
- public static void Main(string[] args) =>
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, "AppDelegate");
- }
-}
diff --git a/src/Sample/SextantSample.iOS/Properties/AssemblyInfo.cs b/src/Sample/SextantSample.iOS/Properties/AssemblyInfo.cs
deleted file mode 100644
index c5cdd7ac..00000000
--- a/src/Sample/SextantSample.iOS/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SextantSample.iOS")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SextantSample.iOS")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/Sample/SextantSample.iOS/Resources/Default-568h@2x.png b/src/Sample/SextantSample.iOS/Resources/Default-568h@2x.png
deleted file mode 100644
index 1879d94e..00000000
--- a/src/Sample/SextantSample.iOS/Resources/Default-568h@2x.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:10eaeb5095d8d61941eab7ff58132727c467542efebdbdfc61583ff03c79206b
-size 8884
diff --git a/src/Sample/SextantSample.iOS/Resources/Default-Portrait.png b/src/Sample/SextantSample.iOS/Resources/Default-Portrait.png
deleted file mode 100644
index 1cfd9b69..00000000
--- a/src/Sample/SextantSample.iOS/Resources/Default-Portrait.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2f79839ed7826658f68d6f9b78d3683aea06c52782970bf05eaf3f189340487e
-size 10710
diff --git a/src/Sample/SextantSample.iOS/Resources/Default-Portrait@2x.png b/src/Sample/SextantSample.iOS/Resources/Default-Portrait@2x.png
deleted file mode 100644
index c50a51e4..00000000
--- a/src/Sample/SextantSample.iOS/Resources/Default-Portrait@2x.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e0f6fe0f2c7861b27f833d66631a944161a094a75819a02c3acf7f4ac5dc0ad6
-size 34540
diff --git a/src/Sample/SextantSample.iOS/Resources/Default.png b/src/Sample/SextantSample.iOS/Resources/Default.png
deleted file mode 100644
index faac8579..00000000
--- a/src/Sample/SextantSample.iOS/Resources/Default.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2c8e7ff274347291e4bceba1a7b8c2811e6346994732d86ad31a21ed8dc3e9ec
-size 7243
diff --git a/src/Sample/SextantSample.iOS/Resources/Default@2x.png b/src/Sample/SextantSample.iOS/Resources/Default@2x.png
deleted file mode 100644
index 40ddf908..00000000
--- a/src/Sample/SextantSample.iOS/Resources/Default@2x.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6a4a6ddba32b0253bbd267c1ba23f7c3cacf39a1f3ceeaea97427a13149de3dd
-size 8368
diff --git a/src/Sample/SextantSample.iOS/Resources/LaunchScreen.storyboard b/src/Sample/SextantSample.iOS/Resources/LaunchScreen.storyboard
deleted file mode 100644
index f12b9368..00000000
--- a/src/Sample/SextantSample.iOS/Resources/LaunchScreen.storyboard
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample.iOS/SextantSample.iOS.csproj b/src/Sample/SextantSample.iOS/SextantSample.iOS.csproj
deleted file mode 100644
index 586a8ade..00000000
--- a/src/Sample/SextantSample.iOS/SextantSample.iOS.csproj
+++ /dev/null
@@ -1,219 +0,0 @@
-
-
-
- Debug
- iPhoneSimulator
- 8.0.30703
- 2.0
- {A5BBADB1-F348-49CD-8264-59B5BE8E9F17}
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {6143fdea-f3c2-4a09-aafa-6e230626515e}
- Exe
- SextantSample.iOS
- Resources
- SextantSample.iOS
-
-
-
-
- true
- full
- false
- bin\iPhoneSimulator\Debug
- __IOS__;__MOBILE__;__UNIFIED__;DEBUG;LOGGING
- prompt
- 4
- false
- x86_64
- None
- true
-
-
- none
- true
- bin\iPhoneSimulator\Release
- prompt
- 4
- None
- x86_64
- false
-
-
- true
- full
- false
- bin\iPhone\Debug
- DEBUG
- prompt
- 4
- false
- ARM64
- iPhone Developer
- true
- Entitlements.plist
-
-
- none
- true
- bin\iPhone\Release
- prompt
- 4
- ARM64
- false
- iPhone Developer
- Entitlements.plist
-
-
- none
- True
- bin\iPhone\Ad-Hoc
- prompt
- 4
- False
- ARM64
- True
- Automatic:AdHoc
- iPhone Distribution
- Entitlements.plist
-
-
- none
- True
- bin\iPhone\AppStore
- prompt
- 4
- False
- ARM64
- Automatic:AppStore
- iPhone Distribution
- Entitlements.plist
-
-
- false
- bin\Sample Release
-
-
- 4
- iPhone Developer
- true
-
-
-
-
-
-
-
-
- true
- bin\x64\Debug\
- __IOS__;__MOBILE__;__UNIFIED__;DEBUG;LOGGING
- full
- x64
- false
- 7.3
- prompt
-
-
- bin\x64\Release\
- __IOS__;__MOBILE__;__UNIFIED__;
- true
- x64
- false
- 7.3
- prompt
-
-
- bin\x64\Ad-Hoc\
- __IOS__;__MOBILE__;__UNIFIED__;
- x64
- false
- 7.3
-
-
- bin\x64\AppStore\
- __IOS__;__MOBILE__;__UNIFIED__;
- x64
- false
- 7.3
-
-
- bin\x64\Sample Release\
- __IOS__;__MOBILE__;__UNIFIED__;
- x64
- false
- 7.3
-
-
-
-
-
-
-
-
-
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}
- SextantSample
-
-
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}
- Sextant
-
-
-
diff --git a/src/Sample/SextantSample.sln b/src/Sample/SextantSample.sln
index f9af6a25..48567d34 100644
--- a/src/Sample/SextantSample.sln
+++ b/src/Sample/SextantSample.sln
@@ -1,302 +1,63 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.0.31717.71
+VisualStudioVersion = 17.10.34916.146
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample", "SextantSample\SextantSample.csproj", "{AB35E5EE-24AE-479A-909E-1FD941E152EF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant", "..\Sextant\Sextant.csproj", "{4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant.XamForms", "..\Sextant.XamForms\Sextant.XamForms.csproj", "{4529D741-5B1E-4A05-9FDA-36625C12FC33}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.ViewModels", "SextantSample.Core\SextantSample.ViewModels.csproj", "{5818A5AF-3FF6-4E68-80FC-604D4AEF156C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.WPF", "SextantSample.WPF\SextantSample.WPF.csproj", "{B3804254-BA2D-4ECF-9A71-8685843A546F}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{637F2480-8306-4A3C-8E97-CB12D5FC3676}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant.Maui", "..\Sextant.Maui\Sextant.Maui.csproj", "{21A3E901-0F54-4970-B994-09F0574D42E0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionConfig", "SolutionConfig", "{39EAC236-B550-4A5A-AF5C-DEB935D54F37}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionConfig", "SolutionConfig", "{F29AF2F3-DEC8-58BC-043A-1447862C832D}"
ProjectSection(SolutionItems) = preProject
+ ..\..\.editorconfig = ..\..\.editorconfig
+ ..\..\nuget.config = ..\..\nuget.config
+ ..\..\README.md = ..\..\README.md
+ ..\..\version.json = ..\..\version.json
..\Directory.build.props = ..\Directory.build.props
..\Directory.build.targets = ..\Directory.build.targets
..\Directory.Packages.props = ..\Directory.Packages.props
..\global.json = ..\global.json
..\stylecop.json = ..\stylecop.json
+ ..\xunit.runner.json = ..\xunit.runner.json
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{6C4D298B-81FB-2B6B-5AB6-46205EDDC72C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant", "..\Sextant\Sextant.csproj", "{23FAD9AC-3228-B931-96D7-313C66385B72}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sextant.Maui", "..\Sextant.Maui\Sextant.Maui.csproj", "{731C35C8-C3BB-2867-88CA-EF67291B98AC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.Maui", "..\..\Samples\SextantSample.Maui\SextantSample.Maui.csproj", "{0A65FB55-9845-3253-1E62-54F5ECF8EC45}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SextantSample.ViewModels", "SextantSample.Core\SextantSample.ViewModels.csproj", "{8F56EB4C-63F9-C156-A8CE-0BC8C8DA73E1}"
+EndProject
Global
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {110EFF91-41B2-44E2-960B-417D89D786DC}
+ EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
- Ad-Hoc|iPhone = Ad-Hoc|iPhone
- Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
- Ad-Hoc|x64 = Ad-Hoc|x64
- AppStore|Any CPU = AppStore|Any CPU
- AppStore|iPhone = AppStore|iPhone
- AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
- AppStore|x64 = AppStore|x64
- Debug|Any CPU = Debug|Any CPU
- Debug|iPhone = Debug|iPhone
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
Debug|x64 = Debug|x64
- Release|Any CPU = Release|Any CPU
- Release|iPhone = Release|iPhone
- Release|iPhoneSimulator = Release|iPhoneSimulator
Release|x64 = Release|x64
- Sample Release|Any CPU = Sample Release|Any CPU
- Sample Release|iPhone = Sample Release|iPhone
- Sample Release|iPhoneSimulator = Sample Release|iPhoneSimulator
- Sample Release|x64 = Sample Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Ad-Hoc|x64.Build.0 = Debug|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|x64.ActiveCfg = Debug|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.AppStore|x64.Build.0 = Debug|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Debug|x64.ActiveCfg = Debug|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhone.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|x64.ActiveCfg = Release|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Release|x64.Build.0 = Release|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|x64.ActiveCfg = Release|x64
- {AB35E5EE-24AE-479A-909E-1FD941E152EF}.Sample Release|x64.Build.0 = Release|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Ad-Hoc|x64.Build.0 = Debug|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|x64.ActiveCfg = Debug|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.AppStore|x64.Build.0 = Debug|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|iPhone.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Debug|x64.Build.0 = Debug|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|Any CPU.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|iPhone.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|iPhone.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|x64.ActiveCfg = Release|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Release|x64.Build.0 = Release|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|x64.ActiveCfg = Release|x64
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3}.Sample Release|x64.Build.0 = Release|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Ad-Hoc|x64.Build.0 = Debug|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|iPhone.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|x64.ActiveCfg = Debug|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.AppStore|x64.Build.0 = Debug|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|iPhone.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Debug|x64.ActiveCfg = Debug|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|Any CPU.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|iPhone.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|iPhone.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|x64.ActiveCfg = Release|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Release|x64.Build.0 = Release|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|x64.ActiveCfg = Release|x64
- {4529D741-5B1E-4A05-9FDA-36625C12FC33}.Sample Release|x64.Build.0 = Release|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Ad-Hoc|x64.Build.0 = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|x64.ActiveCfg = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.AppStore|x64.Build.0 = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|x64.ActiveCfg = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Debug|x64.Build.0 = Debug|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|iPhone.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|x64.ActiveCfg = Release|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Release|x64.Build.0 = Release|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|x64.ActiveCfg = Release|x64
- {5818A5AF-3FF6-4E68-80FC-604D4AEF156C}.Sample Release|x64.Build.0 = Release|x64
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Ad-Hoc|x64.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|x64.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.AppStore|x64.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Debug|x64.Build.0 = Debug|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|Any CPU.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|iPhone.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|x64.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Release|x64.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|x64.ActiveCfg = Release|Any CPU
- {B3804254-BA2D-4ECF-9A71-8685843A546F}.Sample Release|x64.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|x64.ActiveCfg = Debug|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Ad-Hoc|x64.Build.0 = Debug|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|x64.ActiveCfg = Debug|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.AppStore|x64.Build.0 = Debug|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Debug|x64.Build.0 = Debug|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|iPhone.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|x64.ActiveCfg = Release|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Release|x64.Build.0 = Release|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|Any CPU.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|Any CPU.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|iPhone.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|iPhone.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|x64.ActiveCfg = Release|x64
- {21A3E901-0F54-4970-B994-09F0574D42E0}.Sample Release|x64.Build.0 = Release|x64
+ {0A65FB55-9845-3253-1E62-54F5ECF8EC45}.Debug|x64.Deploy.0 = Debug|x64
+ {23FAD9AC-3228-B931-96D7-313C66385B72}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {23FAD9AC-3228-B931-96D7-313C66385B72}.Debug|x64.Build.0 = Debug|Any CPU
+ {23FAD9AC-3228-B931-96D7-313C66385B72}.Release|x64.ActiveCfg = Release|Any CPU
+ {23FAD9AC-3228-B931-96D7-313C66385B72}.Release|x64.Build.0 = Release|Any CPU
+ {731C35C8-C3BB-2867-88CA-EF67291B98AC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {731C35C8-C3BB-2867-88CA-EF67291B98AC}.Debug|x64.Build.0 = Debug|Any CPU
+ {731C35C8-C3BB-2867-88CA-EF67291B98AC}.Release|x64.ActiveCfg = Release|Any CPU
+ {731C35C8-C3BB-2867-88CA-EF67291B98AC}.Release|x64.Build.0 = Release|Any CPU
+ {0A65FB55-9845-3253-1E62-54F5ECF8EC45}.Debug|x64.ActiveCfg = Debug|x64
+ {0A65FB55-9845-3253-1E62-54F5ECF8EC45}.Debug|x64.Build.0 = Debug|x64
+ {0A65FB55-9845-3253-1E62-54F5ECF8EC45}.Release|x64.ActiveCfg = Release|x64
+ {0A65FB55-9845-3253-1E62-54F5ECF8EC45}.Release|x64.Build.0 = Release|x64
+ {8F56EB4C-63F9-C156-A8CE-0BC8C8DA73E1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8F56EB4C-63F9-C156-A8CE-0BC8C8DA73E1}.Debug|x64.Build.0 = Debug|Any CPU
+ {8F56EB4C-63F9-C156-A8CE-0BC8C8DA73E1}.Release|x64.ActiveCfg = Release|Any CPU
+ {8F56EB4C-63F9-C156-A8CE-0BC8C8DA73E1}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {4CF5E8D0-BB2C-4790-9AD5-03AEC069C3C3} = {637F2480-8306-4A3C-8E97-CB12D5FC3676}
- {4529D741-5B1E-4A05-9FDA-36625C12FC33} = {637F2480-8306-4A3C-8E97-CB12D5FC3676}
- {21A3E901-0F54-4970-B994-09F0574D42E0} = {637F2480-8306-4A3C-8E97-CB12D5FC3676}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F9AB7F21-AD32-47C9-A787-767DD85B40CB}
+ {23FAD9AC-3228-B931-96D7-313C66385B72} = {6C4D298B-81FB-2B6B-5AB6-46205EDDC72C}
+ {731C35C8-C3BB-2867-88CA-EF67291B98AC} = {6C4D298B-81FB-2B6B-5AB6-46205EDDC72C}
EndGlobalSection
EndGlobal
diff --git a/src/Sample/SextantSample/App.xaml b/src/Sample/SextantSample/App.xaml
deleted file mode 100644
index 98afee93..00000000
--- a/src/Sample/SextantSample/App.xaml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample/App.xaml.cs b/src/Sample/SextantSample/App.xaml.cs
deleted file mode 100644
index 628fb2c3..00000000
--- a/src/Sample/SextantSample/App.xaml.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using System;
-using ReactiveUI;
-using Sextant;
-using Sextant.XamForms;
-using SextantSample.ViewModels;
-using SextantSample.Views;
-using Splat;
-using Xamarin.Forms.Xaml;
-using static Sextant.Sextant;
-
-[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
-
-namespace SextantSample;
-
-///
-/// App.
-///
-///
-public partial class App
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public App()
- {
- InitializeComponent();
-
- RxApp.DefaultExceptionHandler = new SextantDefaultExceptionHandler();
- Instance.InitializeForms();
- Locator
- .CurrentMutable
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterView()
- .RegisterNavigationView(() => new BlueNavigationView())
- .RegisterViewModel(() => new GreenViewModel(Locator.Current.GetService()));
-
- Locator
- .Current
- .GetService()
- .PushPage(new HomeViewModel(), null, true, false)
- .Subscribe();
-
- MainPage = Locator.Current.GetNavigationView();
- }
-
- ///
- /// Application developers override this method to perform actions when the application starts.
- ///
- ///
- /// To be added.
- ///
- protected override void OnStart()
- {
- // Handle when your app starts
- }
-
- ///
- /// Application developers override this method to perform actions when the application enters the sleeping state.
- ///
- ///
- /// To be added.
- ///
- protected override void OnSleep()
- {
- // Handle when your app sleeps
- }
-
- ///
- /// Application developers override this method to perform actions when the application resumes from a sleeping state.
- ///
- ///
- /// To be added.
- ///
- protected override void OnResume()
- {
- // Handle when your app resumes
- }
-}
diff --git a/src/Sample/SextantSample/SextantSample.csproj b/src/Sample/SextantSample/SextantSample.csproj
deleted file mode 100644
index 859b3dd6..00000000
--- a/src/Sample/SextantSample/SextantSample.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- netstandard2.0
- AnyCPU;x64
- preview
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sample/SextantSample/Views/BlueNavigationView.cs b/src/Sample/SextantSample/Views/BlueNavigationView.cs
deleted file mode 100644
index 6e1db4e2..00000000
--- a/src/Sample/SextantSample/Views/BlueNavigationView.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using System;
-
-using ReactiveUI;
-
-using Sextant.XamForms;
-using Xamarin.Forms;
-
-namespace SextantSample.Views;
-
-///
-/// BlueNavigationView.
-///
-///
-///
-public class BlueNavigationView : NavigationView, IViewFor
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public BlueNavigationView()
- : base(RxApp.MainThreadScheduler, RxApp.TaskpoolScheduler, ViewLocator.Current)
- {
- BarBackgroundColor = Color.Blue;
- BarTextColor = Color.White;
- }
-
- ///
- /// Gets or sets the View Model associated with the View.
- ///
-#pragma warning disable CA1065 // Do not raise exceptions in unexpected locations
- public object ViewModel { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
-#pragma warning restore CA1065 // Do not raise exceptions in unexpected locations
-}
diff --git a/src/Sample/SextantSample/Views/FirstModalView.xaml b/src/Sample/SextantSample/Views/FirstModalView.xaml
deleted file mode 100644
index 679e6a1f..00000000
--- a/src/Sample/SextantSample/Views/FirstModalView.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample/Views/FirstModalView.xaml.cs b/src/Sample/SextantSample/Views/FirstModalView.xaml.cs
deleted file mode 100644
index 8f703000..00000000
--- a/src/Sample/SextantSample/Views/FirstModalView.xaml.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using ReactiveUI;
-
-using SextantSample.ViewModels;
-
-namespace SextantSample.Views;
-
-///
-/// FirstModalView.
-///
-public partial class FirstModalView
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public FirstModalView()
- {
- InitializeComponent();
- this.BindCommand(ViewModel, x => x.OpenModal, x => x.OpenSecondModal);
- this.BindCommand(ViewModel, x => x.PopModal, x => x.PopModal);
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- await DisplayAlert("Error", x.Input.Message, "Done");
- x.SetOutput(true);
- });
- }
-}
diff --git a/src/Sample/SextantSample/Views/GreenView.xaml b/src/Sample/SextantSample/Views/GreenView.xaml
deleted file mode 100644
index 0798aaab..00000000
--- a/src/Sample/SextantSample/Views/GreenView.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample/Views/GreenView.xaml.cs b/src/Sample/SextantSample/Views/GreenView.xaml.cs
deleted file mode 100644
index 5ce35b14..00000000
--- a/src/Sample/SextantSample/Views/GreenView.xaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using ReactiveUI;
-using ReactiveUI.XamForms;
-
-using SextantSample.ViewModels;
-using Xamarin.Forms.Xaml;
-
-namespace SextantSample.Views;
-
-///
-/// GreenView.
-///
-[XamlCompilation(XamlCompilationOptions.Compile)]
-public partial class GreenView : ReactiveContentPage
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public GreenView()
- {
- InitializeComponent();
-
- this.BindCommand(ViewModel, x => x.OpenModal, x => x.Modal);
- }
-}
diff --git a/src/Sample/SextantSample/Views/HomeView.xaml b/src/Sample/SextantSample/Views/HomeView.xaml
deleted file mode 100644
index a5af1dcb..00000000
--- a/src/Sample/SextantSample/Views/HomeView.xaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample/Views/HomeView.xaml.cs b/src/Sample/SextantSample/Views/HomeView.xaml.cs
deleted file mode 100644
index d16216f6..00000000
--- a/src/Sample/SextantSample/Views/HomeView.xaml.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using System.Reactive.Disposables;
-
-using ReactiveUI;
-
-using SextantSample.ViewModels;
-
-namespace SextantSample.Views;
-
-///
-/// HomeView.
-///
-public partial class HomeView
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public HomeView()
- {
- InitializeComponent();
-
- this.WhenActivated(disposables =>
- {
- this.BindCommand(ViewModel, x => x.OpenModal, x => x.FirstModalButton).DisposeWith(disposables);
- this.BindCommand(ViewModel, x => x.PushPage, x => x.PushPage).DisposeWith(disposables);
- this.BindCommand(ViewModel, x => x.PushGenericPage, x => x.PushGenericPage).DisposeWith(disposables);
- });
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- await DisplayAlert("Error", x.Input.Message, "Done");
- x.SetOutput(true);
- });
- }
-}
diff --git a/src/Sample/SextantSample/Views/RedView.xaml b/src/Sample/SextantSample/Views/RedView.xaml
deleted file mode 100644
index 490f4426..00000000
--- a/src/Sample/SextantSample/Views/RedView.xaml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample/Views/RedView.xaml.cs b/src/Sample/SextantSample/Views/RedView.xaml.cs
deleted file mode 100644
index 5be989e7..00000000
--- a/src/Sample/SextantSample/Views/RedView.xaml.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using ReactiveUI;
-using ReactiveUI.XamForms;
-using SextantSample.ViewModels;
-
-namespace SextantSample.Views;
-
-///
-/// RedView.
-///
-public partial class RedView
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public RedView()
- {
- InitializeComponent();
- this.BindCommand(ViewModel, x => x.PopModal, x => x.PopModal);
- this.BindCommand(ViewModel, x => x.PushPage, x => x.PushPage);
- this.BindCommand(ViewModel, x => x.PopPage, x => x.PopPage);
- this.BindCommand(ViewModel, x => x.PopToRoot, x => x.PopToRoot);
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- await DisplayAlert("Error", x.Input.Message, "Done");
- x.SetOutput(true);
- });
- }
-}
diff --git a/src/Sample/SextantSample/Views/SecondModalView.xaml b/src/Sample/SextantSample/Views/SecondModalView.xaml
deleted file mode 100644
index 4761a0d2..00000000
--- a/src/Sample/SextantSample/Views/SecondModalView.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Sample/SextantSample/Views/SecondModalView.xaml.cs b/src/Sample/SextantSample/Views/SecondModalView.xaml.cs
deleted file mode 100644
index 9ff4aad7..00000000
--- a/src/Sample/SextantSample/Views/SecondModalView.xaml.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2021 .NET Foundation and Contributors. All rights reserved.
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for full license information.
-
-using ReactiveUI;
-using SextantSample.ViewModels;
-
-namespace SextantSample.Views;
-
-///
-/// SecondModalView.
-///
-public partial class SecondModalView
-{
- ///
- /// Initializes a new instance of the class.
- ///
- public SecondModalView()
- {
- InitializeComponent();
- this.BindCommand(ViewModel, x => x.PushPage, x => x.PushPage);
- this.BindCommand(ViewModel, x => x.PopModal, x => x.PopModal);
-
- Interactions
- .ErrorMessage
- .RegisterHandler(async x =>
- {
- await DisplayAlert("Error", x.Input.Message, "Done");
- x.SetOutput(true);
- });
- }
-}
diff --git a/src/Sextant.Avalonia/DependencyResolverMixins.cs b/src/Sextant.Avalonia/DependencyResolverMixins.cs
index fccb231e..ded4346b 100644
--- a/src/Sextant.Avalonia/DependencyResolverMixins.cs
+++ b/src/Sextant.Avalonia/DependencyResolverMixins.cs
@@ -26,6 +26,11 @@ public static IMutableDependencyResolver RegisterNavigationView(
Func navigationViewFactory)
where TView : IView
{
+ if (navigationViewFactory == null)
+ {
+ throw new ArgumentNullException(nameof(navigationViewFactory));
+ }
+
var navigationView = navigationViewFactory();
var viewStackService = new ViewStackService(navigationView);
dependencyResolver.RegisterLazySingleton(() => viewStackService);
diff --git a/src/Sextant.Avalonia/NavigationView.cs b/src/Sextant.Avalonia/NavigationView.cs
index d11b9837..49442cb4 100644
--- a/src/Sextant.Avalonia/NavigationView.cs
+++ b/src/Sextant.Avalonia/NavigationView.cs
@@ -94,6 +94,11 @@ public IObservable PushPage(
bool resetStack,
bool animate = true)
{
+ if (viewModel == null)
+ {
+ throw new ArgumentNullException(nameof(viewModel));
+ }
+
var view = LocateView(viewModel, contract);
_pageNavigation.ToggleAnimations(!_modalNavigation.IsVisible);
_pageNavigation.Push(view, resetStack);
@@ -122,6 +127,11 @@ public IObservable PushModal(
string? contract,
bool withNavigationPage = true)
{
+ if (modalViewModel == null)
+ {
+ throw new ArgumentNullException(nameof(modalViewModel));
+ }
+
var view = LocateView(modalViewModel, contract);
_modalNavigation.Push(view);
return Observable.Return(Unit.Default);
diff --git a/src/Sextant.Avalonia/Sextant.Avalonia.csproj b/src/Sextant.Avalonia/Sextant.Avalonia.csproj
index 7e23962b..1e038b4b 100644
--- a/src/Sextant.Avalonia/Sextant.Avalonia.csproj
+++ b/src/Sextant.Avalonia/Sextant.Avalonia.csproj
@@ -1,11 +1,7 @@
-
+
- netstandard2.0;net6.0;net7.0;net8.0
- Sextant.Avalonia
+ netstandard2.0;net6.0;net8.0
Sextant.Avalonia
- Sextant.Avalonia
- enable
- preview
diff --git a/src/Sextant.Maui/NavigationView.cs b/src/Sextant.Maui/NavigationView.cs
index 9c677b29..e6749669 100644
--- a/src/Sextant.Maui/NavigationView.cs
+++ b/src/Sextant.Maui/NavigationView.cs
@@ -195,7 +195,7 @@ public IObservable PushPage(
.ToObservable();
});
- private static void SetPageTitle(Page page, string resourceKey) =>
+ private static void SetPageTitle(Page page, string? resourceKey) =>
// var title = Localize.GetString(resourceKey);
// TODO: ensure resourceKey isn't null and is localized.
diff --git a/src/Sextant.Maui/Sextant.Maui.csproj b/src/Sextant.Maui/Sextant.Maui.csproj
index 7796d1ed..0746fc50 100644
--- a/src/Sextant.Maui/Sextant.Maui.csproj
+++ b/src/Sextant.Maui/Sextant.Maui.csproj
@@ -1,26 +1,14 @@
-
+
- net7.0;net8.0
+ net8.0
+ $(TargetFrameworks);net8.0-windows10.0.19041.0
enable
- Sextant.Maui
- Sextant.Maui
- Sextant.Maui
- enable
- latest
true
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Sextant.Mocks/Sextant.Mocks.csproj b/src/Sextant.Mocks/Sextant.Mocks.csproj
index bb4aee02..783da394 100644
--- a/src/Sextant.Mocks/Sextant.Mocks.csproj
+++ b/src/Sextant.Mocks/Sextant.Mocks.csproj
@@ -1,11 +1,9 @@
-
+
- netstandard2.0;net6.0;net7.0;net8.0
+ netstandard2.0;net6.0;net8.0
$(TargetFrameworks);net462;
false
- enable
- latest
diff --git a/src/Sextant.Plugins.Popup/IPopupViewStackService.cs b/src/Sextant.Plugins.Popup/IPopupViewStackService.cs
index 0e5ccb96..380a8506 100644
--- a/src/Sextant.Plugins.Popup/IPopupViewStackService.cs
+++ b/src/Sextant.Plugins.Popup/IPopupViewStackService.cs
@@ -6,100 +6,100 @@
using System;
using System.Collections.Generic;
using System.Reactive;
+using Mopups.Interfaces;
-namespace Sextant.Plugins.Popup
+namespace Sextant.Plugins.Popup;
+
+///
+/// Interface representing a Sextant decorator for .
+///
+public interface IPopupViewStackService : IParameterViewStackService
{
///
- /// Interface representing a Sextant decorator for .
+ /// Gets an observable sequence of pushing events.
///
- public interface IPopupViewStackService : IParameterViewStackService
- {
- ///
- /// Gets an observable sequence of pushing events.
- ///
- IObservable Pushing { get; }
+ IObservable Pushing { get; }
- ///
- /// Gets an observable sequence of pushed events.
- ///
- IObservable Pushed { get; }
+ ///
+ /// Gets an observable sequence of pushed events.
+ ///
+ IObservable Pushed { get; }
- ///
- /// Gets an observable sequence of popping events.
- ///
- IObservable Popping { get; }
+ ///
+ /// Gets an observable sequence of popping events.
+ ///
+ IObservable Popping { get; }
- ///
- /// Gets an observable sequence of popped events.
- ///
- IObservable Popped { get; }
+ ///
+ /// Gets an observable sequence of popped events.
+ ///
+ IObservable Popped { get; }
- ///
- /// Gets the popup stack.
- ///
- IReadOnlyList PopupStack { get; }
+ ///
+ /// Gets the popup stack.
+ ///
+ IReadOnlyList PopupStack { get; }
- ///
- /// Push a pop up page to the stack.
- ///
- /// The view model.
- /// The contract.
- /// Animate the page.
- /// A completion notification.
- IObservable PushPopup(IViewModel viewModel, string? contract = null, bool animate = true);
+ ///
+ /// Push a pop up page to the stack.
+ ///
+ /// The view model.
+ /// The contract.
+ /// Animate the page.
+ /// A completion notification.
+ IObservable PushPopup(IViewModel viewModel, string? contract = null, bool animate = true);
- ///
- /// Push a pop up page to the stack.
- ///
- /// The contract.
- /// Animate the page.
- /// The view model type.
- /// A completion notification.
- IObservable PushPopup(string? contract = null, bool animate = true)
- where TViewModel : IViewModel;
+ ///
+ /// Push a pop up page to the stack.
+ ///
+ /// The contract.
+ /// Animate the page.
+ /// The view model type.
+ /// A completion notification.
+ IObservable PushPopup(string? contract = null, bool animate = true)
+ where TViewModel : IViewModel;
- ///
- /// Push a pop up page to the stack.
- ///
- /// The view model.
- /// The navigation parameter.
- /// The contract.
- /// Animate the page.
- /// A completion notification.
- IObservable PushPopup(INavigable viewModel, INavigationParameter navigationParameter, string? contract = null, bool animate = true);
+ ///
+ /// Push a pop up page to the stack.
+ ///
+ /// The view model.
+ /// The navigation parameter.
+ /// The contract.
+ /// Animate the page.
+ /// A completion notification.
+ IObservable PushPopup(INavigable viewModel, INavigationParameter navigationParameter, string? contract = null, bool animate = true);
- ///
- /// Push a pop up page to the stack.
- ///
- /// The navigation parameter.
- /// The contract.
- /// Animate the page.
- /// The view model type.
- /// A completion notification.
- IObservable PushPopup(INavigationParameter navigationParameter, string? contract = null, bool animate = true)
- where TViewModel : INavigable;
+ ///
+ /// Push a pop up page to the stack.
+ ///
+ /// The navigation parameter.
+ /// The contract.
+ /// Animate the page.
+ /// The view model type.
+ /// A completion notification.
+ IObservable PushPopup(INavigationParameter navigationParameter, string? contract = null, bool animate = true)
+ where TViewModel : INavigable;
- ///
- /// Pop a pop up page.
- ///
- /// Animate the page.
- /// A completion notification.
- IObservable PopPopup(bool animate = true);
+ ///
+ /// Pop a pop up page.
+ ///
+ /// Animate the page.
+ /// A completion notification.
+ IObservable PopPopup(bool animate = true);
- ///
- /// Pop all popups from the stack.
- ///
- /// Animate the page.
- /// A completion notification.
- IObservable PopAllPopups(bool animate = true);
+ ///
+ /// Pop all popups from the stack.
+ ///
+ /// Animate the page.
+ /// A completion notification.
+ IObservable PopAllPopups(bool animate = true);
- ///
- /// Remove Popup.
- ///
- /// The view model.
- /// The contract.
- /// Animate the page.
- /// A completion notification.
- IObservable RemovePopup(IViewModel viewModel, string? contract = null, bool animate = true);
- }
+ ///
+ /// Remove Popup.
+ ///
+ /// The view model.
+ /// The contract.
+ /// Animate the page.
+ /// A completion notification.
+ IObservable RemovePopup(IViewModel viewModel, string? contract = null, bool animate = true);
}
diff --git a/src/Sextant.Plugins.Popup/PopupNavigationEvent.cs b/src/Sextant.Plugins.Popup/PopupNavigationEvent.cs
index 2ae9affb..7c031b46 100644
--- a/src/Sextant.Plugins.Popup/PopupNavigationEvent.cs
+++ b/src/Sextant.Plugins.Popup/PopupNavigationEvent.cs
@@ -6,42 +6,38 @@
using System;
using ReactiveUI;
-namespace Sextant.Plugins.Popup
+namespace Sextant.Plugins.Popup;
+
+///
+/// Represents a popup navigation event.
+///
+public class PopupNavigationEvent
{
///
- /// Represents a popup navigation event.
+ /// Initializes a new instance of the class.
///
- public class PopupNavigationEvent
+ /// The view model.
+ /// Is the page animated.
+ public PopupNavigationEvent(IViewFor page, bool isAnimated)
{
- ///
- /// Initializes a new instance of the class.
- ///
- /// The view model.
- /// Is the page animated.
- public PopupNavigationEvent(IViewFor page, bool isAnimated)
- {
- if (page is null)
- {
- throw new ArgumentNullException(nameof(page));
- }
-
- if (page.ViewModel is null)
- {
- throw new InvalidOperationException($"{nameof(page.ViewModel)} cannot be null.");
- }
+ ArgumentNullException.ThrowIfNull(page);
- ViewModel = (IViewModel)page.ViewModel;
- IsAnimated = isAnimated;
+ if (page.ViewModel is null)
+ {
+ throw new InvalidOperationException($"{nameof(page.ViewModel)} cannot be null.");
}
- ///
- /// Gets the view model for the event.
- ///
- public IViewModel ViewModel { get; }
-
- ///
- /// Gets a value indicating whether the page is animated.
- ///
- public bool IsAnimated { get; }
+ ViewModel = (IViewModel)page.ViewModel;
+ IsAnimated = isAnimated;
}
+
+ ///
+ /// Gets the view model for the event.
+ ///
+ public IViewModel ViewModel { get; }
+
+ ///
+ /// Gets a value indicating whether the page is animated.
+ ///
+ public bool IsAnimated { get; }
}
diff --git a/src/Sextant.Plugins.Popup/PopupViewStackService.cs b/src/Sextant.Plugins.Popup/PopupViewStackService.cs
index f20504a6..7f1ecae4 100644
--- a/src/Sextant.Plugins.Popup/PopupViewStackService.cs
+++ b/src/Sextant.Plugins.Popup/PopupViewStackService.cs
@@ -3,23 +3,20 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.
+using Mopups.Interfaces;
using ReactiveUI;
-using Rg.Plugins.Popup.Contracts;
-namespace Sextant.Plugins.Popup
-{
- ///
- /// Abstract base class for view stack services.
- ///
- ///
- /// Initializes a new instance of the class.
- ///
- /// The view.
- /// The popup navigation.
- /// The view locator.
- /// The view model factory.
- public sealed class PopupViewStackService(IView view, IPopupNavigation popupNavigation, IViewLocator viewLocator, IViewModelFactory viewModelFactory)
- : PopupViewStackServiceBase(view, popupNavigation, viewLocator, viewModelFactory)
- {
- }
-}
+namespace Sextant.Plugins.Popup;
+
+///
+/// Abstract base class for view stack services.
+///
+///
+/// Initializes a new instance of the class.
+///
+/// The view.
+/// The popup navigation.
+/// The view locator.
+/// The view model factory.
+public sealed class PopupViewStackService(IView view, IPopupNavigation popupNavigation, IViewLocator viewLocator, IViewModelFactory viewModelFactory)
+ : PopupViewStackServiceBase(view, popupNavigation, viewLocator, viewModelFactory);
diff --git a/src/Sextant.Plugins.Popup/PopupViewStackServiceBase.cs b/src/Sextant.Plugins.Popup/PopupViewStackServiceBase.cs
index 389fc42d..55e0609e 100644
--- a/src/Sextant.Plugins.Popup/PopupViewStackServiceBase.cs
+++ b/src/Sextant.Plugins.Popup/PopupViewStackServiceBase.cs
@@ -12,265 +12,244 @@
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Reactive.Subjects;
+using Mopups.Events;
+using Mopups.Interfaces;
+using Mopups.Pages;
using ReactiveUI;
-using Rg.Plugins.Popup.Contracts;
-using Rg.Plugins.Popup.Events;
-using Rg.Plugins.Popup.Pages;
-namespace Sextant.Plugins.Popup
+namespace Sextant.Plugins.Popup;
+
+///
+/// Represents a popup view stack service implementation.
+///
+public abstract class PopupViewStackServiceBase : ParameterViewStackServiceBase, IPopupViewStackService
{
+ private readonly IPopupNavigation _popupNavigation;
+ private readonly IViewLocator _viewLocator;
+
///
- /// Represents a popup view stack service implementation.
+ /// Initializes a new instance of the class.
///
- public abstract class PopupViewStackServiceBase : ParameterViewStackServiceBase, IPopupViewStackService
+ /// The view.
+ /// The popup navigation.
+ /// The view locator.
+ /// The view model factory.
+ protected PopupViewStackServiceBase(IView view, IPopupNavigation popupNavigation, IViewLocator viewLocator, IViewModelFactory viewModelFactory)
+ : base(view, viewModelFactory)
{
- private readonly IPopupNavigation _popupNavigation;
- private readonly IViewLocator _viewLocator;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The view.
- /// The popup navigation.
- /// The view locator.
- /// The view model factory.
- protected PopupViewStackServiceBase(IView view, IPopupNavigation popupNavigation, IViewLocator viewLocator, IViewModelFactory viewModelFactory)
- : base(view, viewModelFactory)
- {
- _popupNavigation = popupNavigation;
- _viewLocator = viewLocator;
- PopupSubject = new BehaviorSubject>(ImmutableList.Empty);
+ _popupNavigation = popupNavigation;
+ _viewLocator = viewLocator;
+ PopupSubject = new BehaviorSubject>(ImmutableList.Empty);
- Pushing = Observable.FromEvent, PopupNavigationEventArgs>(
- eventHandler =>
- {
- void Handler(object? sender, PopupNavigationEventArgs args) => eventHandler(args);
+ Pushing = Observable.FromEvent, PopupNavigationEventArgs>(
+ eventHandler =>
+ {
+ void Handler(object? sender, PopupNavigationEventArgs args) => eventHandler(args);
- return Handler;
- },
- x => _popupNavigation.Pushing += x,
- x => _popupNavigation.Pushing -= x)
- .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
+ return Handler;
+ },
+ x => _popupNavigation.Pushing += x,
+ x => _popupNavigation.Pushing -= x)
+ .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
- Pushed = Observable.FromEvent, PopupNavigationEventArgs>(
- eventHandler =>
- {
- void Handler(object? sender, PopupNavigationEventArgs args)
- => eventHandler(args);
+ Pushed = Observable.FromEvent, PopupNavigationEventArgs>(
+ eventHandler =>
+ {
+ void Handler(object? sender, PopupNavigationEventArgs args)
+ => eventHandler(args);
- return Handler;
- },
- x => _popupNavigation.Pushed += x,
- x => _popupNavigation.Pushed -= x)
- .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
+ return Handler;
+ },
+ x => _popupNavigation.Pushed += x,
+ x => _popupNavigation.Pushed -= x)
+ .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
- Popping = Observable.FromEvent, PopupNavigationEventArgs>(
- eventHandler =>
- {
- void Handler(object? sender, PopupNavigationEventArgs args)
- => eventHandler(args);
+ Popping = Observable.FromEvent, PopupNavigationEventArgs>(
+ eventHandler =>
+ {
+ void Handler(object? sender, PopupNavigationEventArgs args)
+ => eventHandler(args);
- return Handler;
- },
- x => _popupNavigation.Popping += x,
- x => _popupNavigation.Popping -= x)
- .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
+ return Handler;
+ },
+ x => _popupNavigation.Popping += x,
+ x => _popupNavigation.Popping -= x)
+ .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
- Popped = Observable.FromEvent, PopupNavigationEventArgs>(
- eventHandler =>
- {
- void Handler(object? sender, PopupNavigationEventArgs args) => eventHandler(args);
+ Popped = Observable.FromEvent, PopupNavigationEventArgs>(
+ eventHandler =>
+ {
+ void Handler(object? sender, PopupNavigationEventArgs args) => eventHandler(args);
- return Handler;
- },
- x => _popupNavigation.Popped += x,
- x => _popupNavigation.Popped -= x)
- .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
+ return Handler;
+ },
+ x => _popupNavigation.Popped += x,
+ x => _popupNavigation.Popped -= x)
+ .Select(x => new PopupNavigationEvent((IViewFor)x.Page, x.IsAnimated));
- Popped
- .Subscribe(popped => popped.ViewModel.InvokeViewModelAction(x => x.Destroy()))
- .DisposeWith(NavigationDisposables);
+ Popped
+ .Subscribe(popped => popped.ViewModel.InvokeViewModelAction(x => x.Destroy()))
+ .DisposeWith(NavigationDisposables);
- PopupSubject.DisposeWith(NavigationDisposables);
- }
+ PopupSubject.DisposeWith(NavigationDisposables);
+ }
- ///
- public IObservable Pushing { get; }
+ ///
+ public IObservable Pushing { get; }
- ///
- public IObservable Pushed { get; }
+ ///
+ public IObservable Pushed { get; }
- ///
- public IObservable Popping { get; }
+ ///
+ public IObservable Popping { get; }
- ///
- public IObservable Popped { get; }
+ ///
+ public IObservable Popped { get; }
- ///
- public IReadOnlyList PopupStack =>
+ ///
+ public IReadOnlyList PopupStack =>
#pragma warning disable 8619
- _popupNavigation
- .PopupStack
- .Cast>()
- .Where(x => x is not null)
- .Select(x => x.ViewModel)
- .ToList();
+ _popupNavigation
+ .PopupStack
+ .Cast>()
+ .Where(x => x is not null)
+ .Select(x => x.ViewModel)
+ .ToList();
#pragma warning restore 8619
- ///
- /// Gets the popup subject that contains the stack history.
- ///
- protected BehaviorSubject> PopupSubject { get; }
-
- ///
- public IObservable PushPopup(IViewModel viewModel, string? contract = null, bool animate = true)
- {
- if (viewModel is null)
- {
- throw new ArgumentNullException(nameof(viewModel));
- }
-
- PopupPage popupPage = LocatePopupFor(viewModel, contract);
+ ///
+ /// Gets the popup subject that contains the stack history.
+ ///
+ protected BehaviorSubject> PopupSubject { get; }
- return Observable
- .FromAsync(() => _popupNavigation.PushAsync(popupPage, animate))
- .Do(_ =>
- {
- AddToStackAndTick(PopupSubject, viewModel, false);
- Logger.Debug($"Added page '{viewModel.Id}' (contract '{contract}') to stack.");
- });
- }
+ ///
+ public IObservable PushPopup(IViewModel viewModel, string? contract = null, bool animate = true)
+ {
+ ArgumentNullException.ThrowIfNull(viewModel);
- ///
- public IObservable PushPopup(string? contract = null, bool animate = true)
- where TViewModel : IViewModel
- {
- var viewModel = Factory.Create();
- return PushPopup(viewModel, contract, animate);
- }
+ PopupPage popupPage = LocatePopupFor(viewModel, contract);
- ///
- public IObservable PushPopup(
- INavigable viewModel,
- INavigationParameter navigationParameter,
- string? contract = null,
- bool animate = true) =>
- Observable.Create(observer =>
+ return Observable
+ .FromAsync(() => _popupNavigation.PushAsync(popupPage, animate))
+ .Do(_ =>
{
- if (viewModel == null)
- {
- throw new ArgumentNullException(nameof(viewModel));
- }
-
- if (navigationParameter == null)
- {
- throw new ArgumentNullException(nameof(navigationParameter));
- }
-
- var compositeDisposable = new CompositeDisposable();
-
- Observable
- .Start(() => LocatePopupFor(viewModel, contract), CurrentThreadScheduler.Instance)
- .ObserveOn(CurrentThreadScheduler.Instance)
- .Select(popup =>
- {
- popup
- .ViewModel?
- .InvokeViewModelAction(x =>
- x.WhenNavigatingTo(navigationParameter)
- .Subscribe()
- .DisposeWith(compositeDisposable));
- return popup;
- })
- .Select(popup =>
- Observable
- .FromAsync(() => _popupNavigation.PushAsync(popup, animate))
- .Select(_ =>
- popup
- .ViewModel?
- .InvokeViewModelAction(x =>
- x.WhenNavigatedTo(navigationParameter)
- .Subscribe()
- .DisposeWith(compositeDisposable))))
- .Switch()
- .Do(_ =>
- {
- AddToStackAndTick(PopupSubject, viewModel, false);
- Logger.Debug($"Added page '{viewModel.Id}' (contract '{contract}') to stack.");
- })
- .Select(_ => Unit.Default)
- .Subscribe(observer)
- .DisposeWith(compositeDisposable);
-
- return Disposable.Create(() => compositeDisposable.Dispose());
+ AddToStackAndTick(PopupSubject, viewModel, false);
+ Logger.Debug($"Added page '{viewModel.Id}' (contract '{contract}') to stack.");
});
+ }
+
+ ///
+ public IObservable PushPopup(string? contract = null, bool animate = true)
+ where TViewModel : IViewModel
+ {
+ var viewModel = Factory.Create();
+ return PushPopup(viewModel, contract, animate);
+ }
- ///
- public IObservable PushPopup(
- INavigationParameter navigationParameter,
- string? contract = null,
- bool animate = true)
- where TViewModel : INavigable
+ ///
+ public IObservable PushPopup(
+ INavigable viewModel,
+ INavigationParameter navigationParameter,
+ string? contract = null,
+ bool animate = true) =>
+ Observable.Create(observer =>
{
- var viewModel = Factory.Create(contract);
+ ArgumentNullException.ThrowIfNull(viewModel);
- return PushPopup(viewModel, navigationParameter, contract, animate);
- }
+ ArgumentNullException.ThrowIfNull(navigationParameter);
- ///
- public IObservable PopPopup(bool animate = true) =>
- Observable.FromAsync(() => _popupNavigation.PopAsync(animate));
+ var compositeDisposable = new CompositeDisposable();
- ///
- public IObservable PopAllPopups(bool animate = true) =>
Observable
- .FromAsync(() => _popupNavigation.PopAllAsync(animate))
- .Do(_ => PopRootAndTick(PopupSubject, NavigationDisposables));
+ .Start(() => LocatePopupFor(viewModel, contract), CurrentThreadScheduler.Instance)
+ .ObserveOn(CurrentThreadScheduler.Instance)
+ .Select(popup =>
+ {
+ popup
+ .ViewModel?
+ .InvokeViewModelAction(x =>
+ x.WhenNavigatingTo(navigationParameter)
+ .Subscribe()
+ .DisposeWith(compositeDisposable));
+ return popup;
+ })
+ .Select(popup =>
+ Observable
+ .FromAsync(() => _popupNavigation.PushAsync(popup, animate))
+ .Select(_ =>
+ popup
+ .ViewModel?
+ .InvokeViewModelAction(x =>
+ x.WhenNavigatedTo(navigationParameter)
+ .Subscribe()
+ .DisposeWith(compositeDisposable))))
+ .Switch()
+ .Do(_ =>
+ {
+ AddToStackAndTick(PopupSubject, viewModel, false);
+ Logger.Debug($"Added page '{viewModel.Id}' (contract '{contract}') to stack.");
+ })
+ .Select(_ => Unit.Default)
+ .Subscribe(observer)
+ .DisposeWith(compositeDisposable);
+
+ return Disposable.Create(() => compositeDisposable.Dispose());
+ });
+
+ ///
+ public IObservable PushPopup(
+ INavigationParameter navigationParameter,
+ string? contract = null,
+ bool animate = true)
+ where TViewModel : INavigable
+ {
+ var viewModel = Factory.Create(contract);
- ///
- public IObservable RemovePopup(IViewModel viewModel, string? contract = null, bool animate = true)
- {
- if (viewModel is null)
- {
- throw new ArgumentNullException(nameof(viewModel));
- }
+ return PushPopup(viewModel, navigationParameter, contract, animate);
+ }
- PopupPage popupPage = LocatePopupFor(viewModel, contract);
+ ///
+ public IObservable PopPopup(bool animate = true) =>
+ Observable.FromAsync(() => _popupNavigation.PopAsync(animate));
- return Observable.FromAsync(() => _popupNavigation.RemovePageAsync(popupPage, animate))
- .Do(_ => RemoveFromStackAndTick(PopupSubject, viewModel));
- }
+ ///
+ public IObservable PopAllPopups(bool animate = true) =>
+ Observable
+ .FromAsync(() => _popupNavigation.PopAllAsync(animate))
+ .Do(_ => PopRootAndTick(PopupSubject, NavigationDisposables));
- private static void RemoveFromStackAndTick(BehaviorSubject> stackSubject, T item)
- {
- if (stackSubject is null)
- {
- throw new ArgumentNullException(nameof(stackSubject));
- }
+ ///
+ public IObservable RemovePopup(IViewModel viewModel, string? contract = null, bool animate = true)
+ {
+ ArgumentNullException.ThrowIfNull(viewModel);
- var stack = stackSubject.Value;
+ PopupPage popupPage = LocatePopupFor(viewModel, contract);
- stack = stack.Remove(item);
+ return Observable.FromAsync(() => _popupNavigation.RemovePageAsync(popupPage, animate))
+ .Do(_ => RemoveFromStackAndTick(PopupSubject, viewModel));
+ }
- stackSubject.OnNext(stack);
- }
+ private static void RemoveFromStackAndTick(BehaviorSubject> stackSubject, T item)
+ {
+ ArgumentNullException.ThrowIfNull(stackSubject);
- private SextantPopupPage LocatePopupFor(IViewModel viewModel, string? contract)
- {
- IViewFor? view = _viewLocator.ResolveView(viewModel, contract);
- if (view is null)
- {
- throw new InvalidOperationException($"No view could be located for type '{viewModel.GetType().FullName}', contract '{contract}'. Be sure Splat has an appropriate registration.");
- }
+ var stack = stackSubject.Value;
- if (!(view is SextantPopupPage page))
- {
- throw new InvalidOperationException($"Resolved view '{view.GetType().FullName}' for type '{viewModel.GetType().FullName}', contract '{contract}' is not a {nameof(SextantPopupPage)}.");
- }
+ stack = stack.Remove(item);
- page.ViewModel = viewModel;
+ stackSubject.OnNext(stack);
+ }
- return page;
+ private SextantPopupPage LocatePopupFor(IViewModel viewModel, string? contract)
+ {
+ var view = _viewLocator.ResolveView(viewModel, contract) ?? throw new InvalidOperationException($"No view could be located for type '{viewModel.GetType().FullName}', contract '{contract}'. Be sure Splat has an appropriate registration.");
+ if (view is not SextantPopupPage page)
+ {
+ throw new InvalidOperationException($"Resolved view '{view.GetType().FullName}' for type '{viewModel.GetType().FullName}', contract '{contract}' is not a {nameof(SextantPopupPage)}.");
}
+
+ page.ViewModel = viewModel;
+
+ return page;
}
}
diff --git a/src/Sextant.Plugins.Popup/Sextant.Plugins.Popup.csproj b/src/Sextant.Plugins.Popup/Sextant.Plugins.Popup.csproj
index 9c808141..d2286d9b 100644
--- a/src/Sextant.Plugins.Popup/Sextant.Plugins.Popup.csproj
+++ b/src/Sextant.Plugins.Popup/Sextant.Plugins.Popup.csproj
@@ -1,15 +1,13 @@
-
+
- netstandard2.0
- latest
- enable
- Sextant.Plugins.Popup
- Sextant.Plugins.Popup
+ net8.0
+ $(TargetFrameworks);net8.0-windows10.0.19041.0
+ true
-
+
-
+
\ No newline at end of file
diff --git a/src/Sextant.Plugins.Popup/SextantPopupPage.cs b/src/Sextant.Plugins.Popup/SextantPopupPage.cs
index ec57f698..7837dcaa 100644
--- a/src/Sextant.Plugins.Popup/SextantPopupPage.cs
+++ b/src/Sextant.Plugins.Popup/SextantPopupPage.cs
@@ -4,118 +4,66 @@
// See the LICENSE file in the project root for full license information.
using System;
-using System.Diagnostics.CodeAnalysis;
using System.Reactive;
using System.Reactive.Linq;
+using Microsoft.Maui.Controls;
+using Mopups.Pages;
using ReactiveUI;
-using Rg.Plugins.Popup.Pages;
-using Xamarin.Forms;
-[assembly:SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:FileMayOnlyContainASingleType", Justification = "Contains generic.")]
+namespace Sextant.Plugins.Popup;
-namespace Sextant.Plugins.Popup
+///
+/// Base Popup page for that implements .
+///
+public abstract class SextantPopupPage : PopupPage, IViewFor
{
///
- /// Base Popup page for that implements .
+ /// The view model property.
///
- /// The view model type.
- public abstract class SextantPopupPage : SextantPopupPage, IViewFor
- where TViewModel : class, IViewModel
- {
- ///
- /// The view model property.
- ///
- public static new readonly BindableProperty ViewModelProperty = BindableProperty.Create(
- nameof(ViewModel),
- typeof(TViewModel),
- typeof(IViewFor),
- null,
- BindingMode.OneWay,
- null,
- OnViewModelChanged);
-
- ///
- /// Gets or sets the ViewModel to display.
- ///
- public new TViewModel? ViewModel
- {
- get => (TViewModel?)GetValue(ViewModelProperty);
- set => SetValue(ViewModelProperty, value);
- }
+ public static readonly BindableProperty ViewModelProperty = BindableProperty.Create(
+ nameof(ViewModel),
+ typeof(object),
+ typeof(IViewFor