* AppDelegate.cs:

* packages.config:
* packages.config:
* qController.iOS.csproj:
* qController.Droid.csproj:
* qController.csproj: Update Packages

* App.xaml: Add some static styles

* App.xaml.cs: Trying out Sharpnado Stuff

* QCueGrid.cs: Move QCueGrid Recursive stuff inside class

* QBrowserViewModel.cs: Hook into new ServerFound/Lost Methods

* QCueViewModel.cs: Start work on cue children updating

* QServerViewModel.cs: Hook into WorkspaceAdded/Removed methods

* MenuPage.xaml.cs: Remove Add from side menu

* QBrowserPage.xaml: Further work on front page design

* QBrowserPage.xaml.cs: Add Manually add button to main page

* QWorkspacePage.xaml.cs: Move recursive stuff out of Page code behind
This commit is contained in:
2021-01-08 23:31:55 -06:00
parent 12ec5905f1
commit 9cf241f9c8
16 changed files with 309 additions and 165 deletions
+6 -5
View File
@@ -2,17 +2,18 @@
<packages> <packages>
<package id="Acr.Settings" version="9.0.1" targetFramework="monoandroid90" /> <package id="Acr.Settings" version="9.0.1" targetFramework="monoandroid90" />
<package id="Acr.Support" version="2.1.0" targetFramework="monoandroid90" /> <package id="Acr.Support" version="2.1.0" targetFramework="monoandroid90" />
<package id="Acr.UserDialogs" version="7.1.0.468" targetFramework="monoandroid90" /> <package id="Acr.UserDialogs" version="7.1.0.470" targetFramework="monoandroid90" />
<package id="AndHUD" version="1.4.2" targetFramework="monoandroid90" /> <package id="AndHUD" version="1.4.2" targetFramework="monoandroid90" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="monoandroid90" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="monoandroid90" />
<package id="Microsoft.NETCore.Platforms" version="5.0.0" targetFramework="monoandroid90" /> <package id="Microsoft.NETCore.Platforms" version="5.0.0" targetFramework="monoandroid90" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid90" /> <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid90" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="monoandroid90" /> <package id="NETStandard.Library" version="2.0.3" targetFramework="monoandroid90" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="monoandroid90" /> <package id="Newtonsoft.Json" version="12.0.3" targetFramework="monoandroid90" />
<package id="QControlKit" version="0.0.10" targetFramework="monoandroid90" /> <package id="QControlKit" version="0.0.11" targetFramework="monoandroid90" />
<package id="Serilog" version="2.10.0" targetFramework="monoandroid90" /> <package id="Serilog" version="2.10.0" targetFramework="monoandroid90" />
<package id="Serilog.Sinks.Xamarin" version="0.2.0.64" targetFramework="monoandroid90" /> <package id="Serilog.Sinks.Xamarin" version="0.2.0.64" targetFramework="monoandroid90" />
<package id="Splat" version="9.7.1" targetFramework="monoandroid90" /> <package id="Sharpnado.MaterialFrame" version="1.1.3" targetFramework="monoandroid90" />
<package id="Splat" version="9.8.1" targetFramework="monoandroid90" />
<package id="System.AppContext" version="4.3.0" targetFramework="monoandroid90" /> <package id="System.AppContext" version="4.3.0" targetFramework="monoandroid90" />
<package id="System.Collections" version="4.3.0" targetFramework="monoandroid90" /> <package id="System.Collections" version="4.3.0" targetFramework="monoandroid90" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid90" /> <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid90" />
@@ -119,7 +120,7 @@
<package id="Xamarin.Android.Support.Vector.Drawable" version="28.0.0.3" targetFramework="monoandroid90" /> <package id="Xamarin.Android.Support.Vector.Drawable" version="28.0.0.3" targetFramework="monoandroid90" />
<package id="Xamarin.Android.Support.VersionedParcelable" version="28.0.0.3" targetFramework="monoandroid90" /> <package id="Xamarin.Android.Support.VersionedParcelable" version="28.0.0.3" targetFramework="monoandroid90" />
<package id="Xamarin.Android.Support.ViewPager" version="28.0.0.3" targetFramework="monoandroid90" /> <package id="Xamarin.Android.Support.ViewPager" version="28.0.0.3" targetFramework="monoandroid90" />
<package id="Xamarin.Essentials" version="1.6.0-pre4" targetFramework="monoandroid90" /> <package id="Xamarin.Essentials" version="1.6.1-preview1" targetFramework="monoandroid90" />
<package id="Xamarin.Forms" version="4.8.0.1687" targetFramework="monoandroid90" /> <package id="Xamarin.Forms" version="5.0.0.1874" targetFramework="monoandroid90" />
<package id="Zeroconf" version="3.4.2" targetFramework="monoandroid90" /> <package id="Zeroconf" version="3.4.2" targetFramework="monoandroid90" />
</packages> </packages>
+15 -15
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" /> <Import Project="..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -83,7 +83,7 @@
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Acr.UserDialogs"> <Reference Include="Acr.UserDialogs">
<HintPath>..\packages\Acr.UserDialogs.7.1.0.468\lib\monoandroid90\Acr.UserDialogs.dll</HintPath> <HintPath>..\packages\Acr.UserDialogs.7.1.0.470\lib\monoandroid90\Acr.UserDialogs.dll</HintPath>
</Reference> </Reference>
<Reference Include="AndHUD"> <Reference Include="AndHUD">
<HintPath>..\packages\AndHUD.1.4.2\lib\MonoAndroid81\AndHUD.dll</HintPath> <HintPath>..\packages\AndHUD.1.4.2\lib\MonoAndroid81\AndHUD.dll</HintPath>
@@ -98,7 +98,7 @@
<HintPath>..\packages\Serilog.Sinks.Xamarin.0.2.0.64\lib\MonoAndroid403\Serilog.Sinks.Xamarin.dll</HintPath> <HintPath>..\packages\Serilog.Sinks.Xamarin.0.2.0.64\lib\MonoAndroid403\Serilog.Sinks.Xamarin.dll</HintPath>
</Reference> </Reference>
<Reference Include="Splat"> <Reference Include="Splat">
<HintPath>..\packages\Splat.9.7.1\lib\netstandard2.0\Splat.dll</HintPath> <HintPath>..\packages\Splat.9.8.1\lib\netstandard2.0\Splat.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Reactive"> <Reference Include="System.Reactive">
<HintPath>..\packages\System.Reactive.5.0.0\lib\netstandard2.0\System.Reactive.dll</HintPath> <HintPath>..\packages\System.Reactive.5.0.0\lib\netstandard2.0\System.Reactive.dll</HintPath>
@@ -233,28 +233,28 @@
<HintPath>..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll</HintPath> <HintPath>..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Essentials"> <Reference Include="Xamarin.Essentials">
<HintPath>..\packages\Xamarin.Essentials.1.6.0-pre4\lib\monoandroid90\Xamarin.Essentials.dll</HintPath> <HintPath>..\packages\Xamarin.Essentials.1.6.1-preview1\lib\monoandroid90\Xamarin.Essentials.dll</HintPath>
</Reference>
<Reference Include="FormsViewGroup">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\FormsViewGroup.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Core"> <Reference Include="Xamarin.Forms.Core">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Core.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform.Android">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Platform.Android.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Platform"> <Reference Include="Xamarin.Forms.Platform">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Platform.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Xaml"> <Reference Include="Xamarin.Forms.Xaml">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Xaml.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
</Reference> </Reference>
<Reference Include="Zeroconf"> <Reference Include="Zeroconf">
<HintPath>..\packages\Zeroconf.3.4.2\lib\netstandard2.0\Zeroconf.dll</HintPath> <HintPath>..\packages\Zeroconf.3.4.2\lib\netstandard2.0\Zeroconf.dll</HintPath>
</Reference> </Reference>
<Reference Include="QControlKit"> <Reference Include="QControlKit">
<HintPath>..\packages\QControlKit.0.0.10\lib\netstandard2.0\QControlKit.dll</HintPath> <HintPath>..\packages\QControlKit.0.0.11\lib\netstandard2.0\QControlKit.dll</HintPath>
</Reference>
<Reference Include="Sharpnado.MaterialFrame.Android">
<HintPath>..\packages\Sharpnado.MaterialFrame.1.1.3\lib\MonoAndroid10\Sharpnado.MaterialFrame.Android.dll</HintPath>
</Reference>
<Reference Include="Sharpnado.MaterialFrame">
<HintPath>..\packages\Sharpnado.MaterialFrame.1.1.3\lib\MonoAndroid10\Sharpnado.MaterialFrame.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -329,5 +329,5 @@
<Import Project="..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.Vector.Drawable.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.Vector.Drawable.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.VersionedParcelable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.VersionedParcelable.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.VersionedParcelable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.VersionedParcelable.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.ViewPager.targets" Condition="Exists('..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.ViewPager.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.ViewPager.targets" Condition="Exists('..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\build\monoandroid90\Xamarin.Android.Support.ViewPager.targets')" />
<Import Project="..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" /> <Import Project="..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.targets')" />
</Project> </Project>
+3 -1
View File
@@ -1,6 +1,8 @@
using Foundation; using Foundation;
using UIKit; using UIKit;
using Serilog; using Serilog;
using Sharpnado.MaterialFrame.iOS;
namespace qController.iOS namespace qController.iOS
{ {
[Register("AppDelegate")] [Register("AppDelegate")]
@@ -10,7 +12,7 @@ namespace qController.iOS
{ {
global::Xamarin.Forms.Forms.Init(); global::Xamarin.Forms.Forms.Init();
Log.Logger = new LoggerConfiguration().WriteTo.NSLog().MinimumLevel.Debug().CreateLogger(); Log.Logger = new LoggerConfiguration().WriteTo.NSLog().MinimumLevel.Debug().CreateLogger();
iOSMaterialFrameRenderer.Init();
LoadApplication(new App()); LoadApplication(new App());
return base.FinishedLaunching(app, options); return base.FinishedLaunching(app, options);
+5 -4
View File
@@ -1,16 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Acr.Settings" version="9.0.1" targetFramework="xamarinios10" /> <package id="Acr.Settings" version="9.0.1" targetFramework="xamarinios10" />
<package id="Acr.UserDialogs" version="7.1.0.468" targetFramework="xamarinios10" /> <package id="Acr.UserDialogs" version="7.1.0.470" targetFramework="xamarinios10" />
<package id="BTProgressHUD" version="1.3.2" targetFramework="xamarinios10" /> <package id="BTProgressHUD" version="1.3.2" targetFramework="xamarinios10" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="xamarinios10" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="xamarinios10" />
<package id="Microsoft.NETCore.Platforms" version="5.0.0" targetFramework="xamarinios10" /> <package id="Microsoft.NETCore.Platforms" version="5.0.0" targetFramework="xamarinios10" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="xamarinios10" /> <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="xamarinios10" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="xamarinios10" /> <package id="NETStandard.Library" version="2.0.3" targetFramework="xamarinios10" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="xamarinios10" /> <package id="Newtonsoft.Json" version="12.0.3" targetFramework="xamarinios10" />
<package id="QControlKit" version="0.0.10" targetFramework="xamarinios10" /> <package id="QControlKit" version="0.0.11" targetFramework="xamarinios10" />
<package id="Serilog" version="2.10.0" targetFramework="xamarinios10" /> <package id="Serilog" version="2.10.0" targetFramework="xamarinios10" />
<package id="Serilog.Sinks.Xamarin" version="0.2.0.64" targetFramework="xamarinios10" /> <package id="Serilog.Sinks.Xamarin" version="0.2.0.64" targetFramework="xamarinios10" />
<package id="Sharpnado.MaterialFrame" version="1.1.3" targetFramework="xamarinios10" />
<package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" /> <package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" />
<package id="System.Collections" version="4.3.0" targetFramework="xamarinios10" /> <package id="System.Collections" version="4.3.0" targetFramework="xamarinios10" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="xamarinios10" /> <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="xamarinios10" />
@@ -76,8 +77,8 @@
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="xamarinios10" /> <package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="xamarinios10" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="xamarinios10" /> <package id="System.Xml.XDocument" version="4.3.0" targetFramework="xamarinios10" />
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="xamarinios10" /> <package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="xamarinios10" />
<package id="Xamarin.Essentials" version="1.6.0-pre4" targetFramework="xamarinios10" /> <package id="Xamarin.Essentials" version="1.6.1-preview1" targetFramework="xamarinios10" />
<package id="Xamarin.Forms" version="4.8.0.1687" targetFramework="xamarinios10" /> <package id="Xamarin.Forms" version="5.0.0.1874" targetFramework="xamarinios10" />
<package id="Xamarin.iOS.MaterialComponents" version="92.0.0" targetFramework="xamarinios10" /> <package id="Xamarin.iOS.MaterialComponents" version="92.0.0" targetFramework="xamarinios10" />
<package id="Zeroconf" version="3.4.2" targetFramework="xamarinios10" /> <package id="Zeroconf" version="3.4.2" targetFramework="xamarinios10" />
</packages> </packages>
+18 -8
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" /> <Import Project="..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
@@ -92,7 +92,7 @@
<HintPath>..\packages\BTProgressHUD.1.3.2\lib\xamarinios10\BTProgressHUD.dll</HintPath> <HintPath>..\packages\BTProgressHUD.1.3.2\lib\xamarinios10\BTProgressHUD.dll</HintPath>
</Reference> </Reference>
<Reference Include="Acr.UserDialogs"> <Reference Include="Acr.UserDialogs">
<HintPath>..\packages\Acr.UserDialogs.7.1.0.468\lib\xamarinios10\Acr.UserDialogs.dll</HintPath> <HintPath>..\packages\Acr.UserDialogs.7.1.0.470\lib\xamarinios10\Acr.UserDialogs.dll</HintPath>
</Reference> </Reference>
<Reference Include="OpenTK-1.0" /> <Reference Include="OpenTK-1.0" />
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
@@ -124,16 +124,16 @@
<HintPath>..\packages\System.Reactive.PlatformServices.5.0.0\lib\netstandard2.0\System.Reactive.PlatformServices.dll</HintPath> <HintPath>..\packages\System.Reactive.PlatformServices.5.0.0\lib\netstandard2.0\System.Reactive.PlatformServices.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Core"> <Reference Include="Xamarin.Forms.Core">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Platform"> <Reference Include="Xamarin.Forms.Platform">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Forms.Xaml"> <Reference Include="Xamarin.Forms.Xaml">
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath> <HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xamarin.Essentials"> <Reference Include="Xamarin.Essentials">
<HintPath>..\packages\Xamarin.Essentials.1.6.0-pre4\lib\xamarinios10\Xamarin.Essentials.dll</HintPath> <HintPath>..\packages\Xamarin.Essentials.1.6.1-preview1\lib\xamarinios10\Xamarin.Essentials.dll</HintPath>
</Reference> </Reference>
<Reference Include="Serilog"> <Reference Include="Serilog">
<HintPath>..\packages\Serilog.2.10.0\lib\netstandard2.1\Serilog.dll</HintPath> <HintPath>..\packages\Serilog.2.10.0\lib\netstandard2.1\Serilog.dll</HintPath>
@@ -146,7 +146,17 @@
<HintPath>..\packages\Xamarin.iOS.MaterialComponents.92.0.0\lib\Xamarin.iOS\MaterialComponents.dll</HintPath> <HintPath>..\packages\Xamarin.iOS.MaterialComponents.92.0.0\lib\Xamarin.iOS\MaterialComponents.dll</HintPath>
</Reference> </Reference>
<Reference Include="QControlKit"> <Reference Include="QControlKit">
<HintPath>..\packages\QControlKit.0.0.10\lib\netstandard2.0\QControlKit.dll</HintPath> <HintPath>..\packages\QControlKit.0.0.11\lib\netstandard2.0\QControlKit.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="Xamarin.Forms.Platform.iOS">
<HintPath>..\packages\Xamarin.Forms.5.0.0.1874\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
</Reference>
<Reference Include="Sharpnado.MaterialFrame">
<HintPath>..\packages\Sharpnado.MaterialFrame.1.1.3\lib\Xamarin.iOS10\Sharpnado.MaterialFrame.dll</HintPath>
</Reference>
<Reference Include="Sharpnado.MaterialFrame.iOS">
<HintPath>..\packages\Sharpnado.MaterialFrame.1.1.3\lib\Xamarin.iOS10\Sharpnado.MaterialFrame.iOS.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -230,5 +240,5 @@
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" /> <Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
<Import Project="..\packages\BTProgressHUD.1.3.2\build\xamarin.ios10\BTProgressHud.targets" Condition="Exists('..\packages\BTProgressHUD.1.3.2\build\xamarin.ios10\BTProgressHud.targets')" /> <Import Project="..\packages\BTProgressHUD.1.3.2\build\xamarin.ios10\BTProgressHud.targets" Condition="Exists('..\packages\BTProgressHUD.1.3.2\build\xamarin.ios10\BTProgressHud.targets')" />
<Import Project="..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" /> <Import Project="..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.5.0.0.1874\build\Xamarin.Forms.targets')" />
</Project> </Project>
+36
View File
@@ -28,5 +28,41 @@
Value="{DynamicResource PrimaryTextColor}" /> Value="{DynamicResource PrimaryTextColor}" />
</Style> </Style>
<Style TargetType="Button"
Class="PrimaryButton"
ApplyToDerivedTypes="true">
<Setter Property="TextColor"
Value="{DynamicResource PrimaryTextColor}" />
</Style>
<x:Double x:Key="SmallPadding">4</x:Double>
<x:Double x:Key="MediumPadding">8</x:Double>
<x:Double x:Key="StandardPadding">16</x:Double>
<Thickness x:Key="SmallTopThickness" Top="{StaticResource SmallPadding}" />
<Thickness x:Key="MediumTopThickness" Top="{StaticResource MediumPadding}" />
<Thickness x:Key="StandardTopThickness" Top="{StaticResource StandardPadding}" />
<Thickness x:Key="SmallThickness"
Bottom="{StaticResource SmallPadding}"
Left="{StaticResource SmallPadding}"
Right="{StaticResource SmallPadding}"
Top="{StaticResource SmallPadding}" />
<Thickness x:Key="MediumThickness"
Bottom="{StaticResource MediumPadding}"
Left="{StaticResource MediumPadding}"
Right="{StaticResource MediumPadding}"
Top="{StaticResource MediumPadding}" />
<Thickness x:Key="StandardThickness"
Bottom="{StaticResource StandardPadding}"
Left="{StaticResource StandardPadding}"
Right="{StaticResource StandardPadding}"
Top="{StaticResource StandardPadding}" />
</Application.Resources> </Application.Resources>
</Application> </Application>
+1
View File
@@ -36,6 +36,7 @@ namespace qController
public App() public App()
{ {
InitializeComponent(); InitializeComponent();
Sharpnado.MaterialFrame.Initializer.Initialize(loggerEnable: false, debugLogEnable: false);
AppActions.OnAppAction += AppActions_OnAppAction; AppActions.OnAppAction += AppActions_OnAppAction;
/*MainPage = new NavigationPage(new QConnectionPage()); /*MainPage = new NavigationPage(new QConnectionPage());
+27 -2
View File
@@ -1,17 +1,24 @@
using Xamarin.Forms; using Xamarin.Forms;
using qController.ViewModels; using qController.ViewModels;
using QControlKit; using QControlKit;
using Serilog;
namespace qController.UI namespace qController.UI
{ {
public class QCueGrid : Grid public class QCueGrid : Grid
{ {
private QCueViewModel qCueViewModel;
public QCueGrid(QCue cue) public QCueGrid(QCue cue)
{ {
QCueViewModel qCueViewModel = new QCueViewModel(cue, true); qCueViewModel = new QCueViewModel(cue, true);
RowSpacing = 0; RowSpacing = 0;
RowDefinitions.Add(new RowDefinition { Height = new GridLength(40) }); RowDefinitions.Add(
new RowDefinition {
Height = new GridLength(40),
BindingContext = qCueViewModel
}
);
ColumnDefinitions = new ColumnDefinitionCollection ColumnDefinitions = new ColumnDefinitionCollection
{ {
new ColumnDefinition{Width = GridLength.Star}, new ColumnDefinition{Width = GridLength.Star},
@@ -141,6 +148,24 @@ namespace qController.UI
Children.Add(cueTypeLabel, 0, 0); Children.Add(cueTypeLabel, 0, 0);
Children.Add(cueLabel, 1, 0); Children.Add(cueLabel, 1, 0);
if (cue.cues.Count > 0)
{
foreach (var aCue in cue.cues)
{
this.RowDefinitions.Add(
new RowDefinition {
Height = GridLength.Auto,
BindingContext = new QCueViewModel(aCue, false)
}
);
var aCueGrid = new QCueGrid(aCue);
//cueGridDict.Add(aCue.uid, aCueGrid);
aCueGrid.Margin = new Thickness(0, 0, 0, 0);
Children.Add(aCueGrid, 0, aCue.sortIndex + 1);
Grid.SetColumnSpan(aCueGrid, this.ColumnDefinitions.Count);
}
}
} }
} }
} }
@@ -5,6 +5,8 @@ using Xamarin.Forms;
using QControlKit; using QControlKit;
using QControlKit.Events; using QControlKit.Events;
using System;
using System.Threading.Tasks;
namespace qController.ViewModels namespace qController.ViewModels
{ {
@@ -21,6 +23,18 @@ namespace qController.ViewModels
ServersGrouped = new ObservableCollection<QServerViewModel>(); ServersGrouped = new ObservableCollection<QServerViewModel>();
this.browser.ServerFound += OnServerFound; this.browser.ServerFound += OnServerFound;
this.browser.ServerLost += OnServerLost;
Device.StartTimer(TimeSpan.FromSeconds(4), () =>
{
Task.Run(async () =>
{
this.browser.ProbeForQLabInstances();
// do something with time...
});
return true;
});
} }
private void OnServerFound(object source, QServerFoundArgs args) private void OnServerFound(object source, QServerFoundArgs args)
@@ -32,6 +46,30 @@ namespace qController.ViewModels
}); });
} }
private void OnServerLost(object source, QServerLostArgs args)
{
QServerViewModel serverToRemove = null;
foreach(var serverGroup in ServersGrouped)
{
if (serverGroup.host.Equals(args.server.host))
{
serverToRemove = serverGroup;
break;
}
}
if(serverToRemove != null)
{
Device.BeginInvokeOnMainThread(() =>
{
System.Console.WriteLine($"[QBrowserViewModel] removing server: {args.server.description}");
ServersGrouped.Remove(serverToRemove);
});
}
}
void OnPropertyChanged([CallerMemberName] string name = "") void OnPropertyChanged([CallerMemberName] string name = "")
{ {
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
@@ -6,12 +6,13 @@ using Xamarin.Forms;
using QControlKit; using QControlKit;
using QControlKit.Constants; using QControlKit.Constants;
using QControlKit.Events; using QControlKit.Events;
using System.Collections.Generic;
namespace qController.ViewModels namespace qController.ViewModels
{ {
public class QCueViewModel : INotifyPropertyChanged public class QCueViewModel : INotifyPropertyChanged
{ {
QCue cue; public QCue cue;
bool isSelected = false; bool isSelected = false;
bool isCollapsed = false; bool isCollapsed = false;
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
@@ -46,7 +47,11 @@ namespace qController.ViewModels
} }
else if (property.Equals(QOSCKey.Children)) else if (property.Equals(QOSCKey.Children))
{ {
Log.Debug("children property updated"); //Log.Debug("children property updated");
if (cue.IsGroup)
{
OnPropertyChanged("cues");
}
} }
} }
} }
@@ -136,6 +141,14 @@ namespace qController.ViewModels
} }
} }
public List<QCue> cues
{
get
{
return cue.cues;
}
}
public bool IsSelected public bool IsSelected
{ {
get get
@@ -67,25 +67,48 @@ namespace qController.ViewModels
this.Add(new QWorkspaceViewModel(workspace)); this.Add(new QWorkspaceViewModel(workspace));
}); });
} }
this.server.WorkspaceAdded += Server_WorkspaceAdded;
this.server.WorkspaceRemoved += Server_WorkspaceRemoved;
this.server.ServerUpdated += OnServerUpdated; this.server.ServerUpdated += OnServerUpdated;
} }
private void Server_WorkspaceRemoved(object source, QServerWorkspaceChangedArgs args)
{
QWorkspaceViewModel workspaceToRemove = null;
foreach(var workspaceViewModel in this)
{
if(workspaceViewModel.workspace.uniqueID == args.workspace.uniqueID)
{
workspaceToRemove = workspaceViewModel;
break;
}
}
if(workspaceToRemove != null)
{
Device.BeginInvokeOnMainThread(() =>
{
Remove(workspaceToRemove);
});
}
}
private void Server_WorkspaceAdded(object source, QServerWorkspaceChangedArgs args)
{
QWorkspaceViewModel workspaceViewModel = new QWorkspaceViewModel(args.workspace);
Device.BeginInvokeOnMainThread(() =>
{
Add(workspaceViewModel);
});
}
private void OnServerUpdated(object source, QServerUpdatedArgs args) private void OnServerUpdated(object source, QServerUpdatedArgs args)
{ {
OnPropertyChanged("GroupName"); OnPropertyChanged("GroupName");
OnPropertyChanged("version"); OnPropertyChanged("version");
foreach (var workspace in this.server.workspaces)
{
QWorkspaceViewModel workspaceViewModel = new QWorkspaceViewModel(workspace);
if (!Contains(workspaceViewModel))
{
Device.BeginInvokeOnMainThread(() =>
{
Add(workspaceViewModel);
});
}
}
} }
void OnPropertyChanged([CallerMemberName] string name = "") void OnPropertyChanged([CallerMemberName] string name = "")
@@ -110,12 +110,6 @@ namespace qController
Command = "scan" Command = "scan"
}); });
items.Add(new MenuPageItem items.Add(new MenuPageItem
{
Title = "Add Manually",
Icon = "\uE801",
Command = "add"
});
items.Add(new MenuPageItem
{ {
Title = "Send Feedback", Title = "Send Feedback",
Icon = QIcon.MAIL, Icon = QIcon.MAIL,
+97 -81
View File
@@ -4,6 +4,7 @@
xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
xmlns:materialFrame="clr-namespace:Sharpnado.MaterialFrame;assembly=Sharpnado.MaterialFrame"
xmlns:qui="clr-namespace:qController.UI" xmlns:qui="clr-namespace:qController.UI"
mc:Ignorable="d" mc:Ignorable="d"
x:Class="qController.Pages.QBrowserPage" x:Class="qController.Pages.QBrowserPage"
@@ -37,101 +38,116 @@
<!--Beginning of new style of "server" view--> <!--Beginning of new style of "server" view-->
<Frame BackgroundColor="{DynamicResource PageBackgroundColor}" <Frame BackgroundColor="{DynamicResource PageBackgroundColor}"
CornerRadius="0" CornerRadius="0"
HasShadow="False"
Margin="0" Margin="0"
Padding="0" Padding="0"
Grid.Row="3"> Grid.Row="3">
<!--Need to try and remove the group spacing caused by ios:GroupHeaderStyle--> <StackLayout Spacing="0" BackgroundColor="Transparent">
<ListView x:Name="serverListView" <Label Margin="0,10,0,10"
ios:ListView.GroupHeaderStyle="Grouped" Padding="0"
GroupDisplayBinding="{Binding name}" HorizontalOptions="FillAndExpand"
IsGroupingEnabled="True" VerticalOptions="FillAndExpand"
d:IsGroupingEnabled="False" HorizontalTextAlignment="Center"
BackgroundColor="Transparent" FontSize="Header"
SeparatorVisibility="None" Text="Discovered QLab Instances" />
ItemsSource="{Binding ServersGrouped}" <!--Need to try and remove the group spacing caused by ios:GroupHeaderStyle-->
Margin="0"> <ListView x:Name="serverListView"
<ListView.GroupHeaderTemplate> ios:ListView.GroupHeaderStyle="Grouped"
<DataTemplate> GroupDisplayBinding="{Binding name}"
<ViewCell> IsGroupingEnabled="True"
<Frame BackgroundColor="{DynamicResource ServerCellBackgroundColor}" d:IsGroupingEnabled="False"
Margin="0,0,0,0" BackgroundColor="Transparent"
Padding="10,0,10,0" SeparatorVisibility="None"
CornerRadius="0"> ItemsSource="{Binding ServersGrouped}"
<Grid BackgroundColor="Transparent" VerticalOptions="FillAndExpand" Margin="0">
RowSpacing="0" <ListView.GroupHeaderTemplate>
ColumnSpacing="0"> <DataTemplate>
<Grid.RowDefinitions> <ViewCell>
<RowDefinition Height="*"/> <Frame BackgroundColor="{DynamicResource ServerCellBackgroundColor}"
</Grid.RowDefinitions> Margin="0,0,0,0"
<Grid.ColumnDefinitions> Padding="10,0,10,0"
<ColumnDefinition Width="*"/> CornerRadius="0">
<ColumnDefinition Width="Auto"/> <Grid BackgroundColor="Transparent" VerticalOptions="FillAndExpand"
</Grid.ColumnDefinitions> RowSpacing="0"
ColumnSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" <Label Grid.Column="0"
Text="{Binding GroupName}" Text="{Binding GroupName}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
StyleClass="PrimaryText"/>
<Label Grid.Column="1"
Text="{Binding version}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
HorizontalTextAlignment="End"
StyleClass="PrimaryText"/>
</Grid>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame BackgroundColor="{DynamicResource WorkspaceCellBackgroundColor}"
BorderColor="Black"
Margin="5,0,5,0"
Padding="10,0,10,0"
CornerRadius="0"
HasShadow="False">
<Grid Margin="0"
BackgroundColor="Transparent"
RowSpacing="0"
ColumnSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Name}"
HorizontalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center" VerticalTextAlignment="Center"
HorizontalTextAlignment="Start" HorizontalTextAlignment="Start"
StyleClass="PrimaryText"/> StyleClass="PrimaryText"/>
<Label Grid.Column="1"
<Label Grid.Column="1" Text="&#xf1184;" Text="{Binding version}"
FontFamily="{StaticResource MaterialFontFamily}"
FontSize="Large"
IsVisible="{Binding HasPasscode}"
HorizontalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center" VerticalTextAlignment="Center"
HorizontalTextAlignment="End" HorizontalTextAlignment="End"
StyleClass="PrimaryText"/> StyleClass="PrimaryText"/>
</Grid> </Grid>
</Frame> </Frame>
</ViewCell> </ViewCell>
</DataTemplate> </DataTemplate>
</ListView.ItemTemplate> </ListView.GroupHeaderTemplate>
</ListView> <ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame BackgroundColor="{DynamicResource WorkspaceCellBackgroundColor}"
BorderColor="Black"
Margin="5,0,5,0"
Padding="10,0,10,0"
CornerRadius="0"
HasShadow="False">
<Grid Margin="0"
BackgroundColor="Transparent"
RowSpacing="0"
ColumnSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Name}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
StyleClass="PrimaryText"/>
<Label Grid.Column="1" Text="&#xf1184;"
FontFamily="{StaticResource MaterialFontFamily}"
FontSize="Large"
IsVisible="{Binding HasPasscode}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
HorizontalTextAlignment="End"
StyleClass="PrimaryText"/>
</Grid>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Button Text="Manually Add..."
VerticalOptions="Center"
HorizontalOptions="FillAndExpand"
Clicked="AddInstance"
BackgroundColor="White"
StyleClass="PrimaryButton"/>
</StackLayout>
</Frame> </Frame>
<qui:QNavBar x:Name="qNavBar" <qui:QNavBar x:Name="qNavBar"
@@ -84,11 +84,7 @@ namespace qController.Pages
private void OnMenuItemSelected(object source, MenuEventArgs args) private void OnMenuItemSelected(object source, MenuEventArgs args)
{ {
if (args.Command == "add") if (args.Command == "feedback")
{
AddWorkspace();
}
else if (args.Command == "feedback")
{ {
Launcher.OpenAsync(new Uri("mailto:feedback@jwetzell.com?subject=qController%20feedback")); Launcher.OpenAsync(new Uri("mailto:feedback@jwetzell.com?subject=qController%20feedback"));
} }
@@ -97,6 +93,11 @@ namespace qController.Pages
UserDialogs.Instance.Confirm(new DonatePrompt()); UserDialogs.Instance.Confirm(new DonatePrompt());
} }
} }
private void AddInstance(object sender, EventArgs args)
{
AddWorkspace();
}
} }
@@ -95,6 +95,7 @@ namespace qController
if (cueGridDict.ContainsKey(args.cueID)) if (cueGridDict.ContainsKey(args.cueID))
{ {
var cueGrid = cueGridDict[args.cueID]; //element to scroll to var cueGrid = cueGridDict[args.cueID]; //element to scroll to
//TODO: FIX THIS
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true); cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
} }
} }
@@ -112,7 +113,7 @@ namespace qController
{ {
if(aCue.cues.Count > 0) if(aCue.cues.Count > 0)
{ {
QCueGrid cueGrid = cueToGrid(aCue); QCueGrid cueGrid = new QCueGrid(aCue);
cueGridDict.Add(aCue.uid, cueGrid); cueGridDict.Add(aCue.uid, cueGrid);
@@ -141,25 +142,6 @@ namespace qController
} }
QCueGrid cueToGrid(QCue cue)
{
QCueGrid cueGrid = new QCueGrid(cue);
if (cue.cues.Count > 0)
{
foreach (var aCue in cue.cues)
{
cueGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
var aCueGrid = cueToGrid(aCue);
cueGridDict.Add(aCue.uid, aCueGrid);
aCueGrid.Margin = new Thickness(0, 0, 0, 0);
cueGrid.Children.Add(aCueGrid, 0, aCue.sortIndex + 1);
Grid.SetColumnSpan(aCueGrid,cueGrid.ColumnDefinitions.Count);
}
}
return cueGrid;
}
void Back() void Back()
{ {
+5 -4
View File
@@ -57,14 +57,15 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Acr.UserDialogs" Version="7.1.0.468" /> <PackageReference Include="Acr.UserDialogs" Version="7.1.0.470" />
<PackageReference Include="Zeroconf" Version="3.4.2" /> <PackageReference Include="Zeroconf" Version="3.4.2" />
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1687" /> <PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
<PackageReference Include="Acr.Settings" Version="9.0.1" /> <PackageReference Include="Acr.Settings" Version="9.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Xamarin.Essentials" Version="1.6.0-pre4" /> <PackageReference Include="Xamarin.Essentials" Version="1.6.0" />
<PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="QControlKit" Version="0.0.10" /> <PackageReference Include="QControlKit" Version="0.0.11" />
<PackageReference Include="Sharpnado.MaterialFrame" Version="1.1.3" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Remove="App.xaml" /> <None Remove="App.xaml" />