mirror of
https://github.com/jwetzell/qController.git
synced 2026-09-08 15:59:22 +00:00
* IconConstants.cs: Relocate
* QWorkspaceInfo.cs: * QParser.cs: * WorkspacePrompt.cs: * QEventArgs.cs: Remove redundant QWorkspaceInfo class * QRecentWorkspaceInfo.cs: Add bundle info class for recent workspace info * ControlPage.xaml.cs: * QBrowserPage.xaml.cs: * QButton.cs: * qConnectionPage.xaml.cs: * QLevelsCell.cs: * QCueListCell.cs: * QInstanceCell.cs: * QControlsBlock.cs: * ShadowButton.cs: * QLevelsButton.cs: * QSelectedCueCell.cs: Move Cells classess under UI * AppDelegate.cs: * packages.config: * MainActivity.cs: * packages.config: * qController.iOS.csproj: * qController.Droid.csproj: * qController.csproj: Update dependencies * App.xaml.cs: Add AppAction code for recent workspace * QStorage.cs: Add recent workspace to persistent storage * QCueGrid.cs: Start on interactivity with cue list grid * QCueViewModel.cs: debug for children updated start on reactive QCueGrid * WorkspacePage.xaml.cs: Start handling a "no selected cue" state and recent workspace * QInstance.cs: * IPHelper.cs: move reachable check to IPHelper - TODO: implement
This commit is contained in:
@@ -42,5 +42,20 @@ namespace qController.Droid
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnResume()
|
||||||
|
{
|
||||||
|
base.OnResume();
|
||||||
|
|
||||||
|
Xamarin.Essentials.Platform.OnResume(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnNewIntent(Intent intent)
|
||||||
|
{
|
||||||
|
base.OnNewIntent(intent);
|
||||||
|
|
||||||
|
Xamarin.Essentials.Platform.OnNewIntent(intent);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-11
@@ -2,17 +2,17 @@
|
|||||||
<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.462" targetFramework="monoandroid90" />
|
<package id="Acr.UserDialogs" version="7.1.0.468" 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="3.1.3" 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.5" targetFramework="monoandroid90" />
|
<package id="QControlKit" version="0.0.10" 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.6.1" targetFramework="monoandroid90" />
|
<package id="Splat" version="9.7.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" />
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid90" />
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="monoandroid90" />
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid90" />
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reactive" version="4.4.1" targetFramework="monoandroid90" />
|
<package id="System.Reactive" version="5.0.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reactive.Core" version="4.4.1" targetFramework="monoandroid90" />
|
<package id="System.Reactive.Core" version="5.0.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reactive.Interfaces" version="4.4.1" targetFramework="monoandroid90" />
|
<package id="System.Reactive.Interfaces" version="5.0.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reactive.Linq" version="4.4.1" targetFramework="monoandroid90" />
|
<package id="System.Reactive.Linq" version="5.0.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reactive.PlatformServices" version="4.4.1" targetFramework="monoandroid90" />
|
<package id="System.Reactive.PlatformServices" version="5.0.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reflection" version="4.3.0" targetFramework="monoandroid90" />
|
<package id="System.Reflection" version="4.3.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid90" />
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid90" />
|
||||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid90" />
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid90" />
|
||||||
@@ -119,7 +119,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.5.3.2" targetFramework="monoandroid90" />
|
<package id="Xamarin.Essentials" version="1.6.0-pre4" targetFramework="monoandroid90" />
|
||||||
<package id="Xamarin.Forms" version="4.8.0.1560" targetFramework="monoandroid90" />
|
<package id="Xamarin.Forms" version="4.8.0.1687" targetFramework="monoandroid90" />
|
||||||
<package id="Zeroconf" version="3.4.2" targetFramework="monoandroid90" />
|
<package id="Zeroconf" version="3.4.2" targetFramework="monoandroid90" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -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.1560\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1560\build\Xamarin.Forms.props')" />
|
<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')" />
|
||||||
<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.462\lib\monoandroid90\Acr.UserDialogs.dll</HintPath>
|
<HintPath>..\packages\Acr.UserDialogs.7.1.0.468\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,22 +98,22 @@
|
|||||||
<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.6.1\lib\netstandard2.0\Splat.dll</HintPath>
|
<HintPath>..\packages\Splat.9.7.1\lib\netstandard2.0\Splat.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive">
|
<Reference Include="System.Reactive">
|
||||||
<HintPath>..\packages\System.Reactive.4.4.1\lib\netstandard2.0\System.Reactive.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.5.0.0\lib\netstandard2.0\System.Reactive.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Core">
|
<Reference Include="System.Reactive.Core">
|
||||||
<HintPath>..\packages\System.Reactive.Core.4.4.1\lib\netstandard2.0\System.Reactive.Core.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Core.5.0.0\lib\netstandard2.0\System.Reactive.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Interfaces">
|
<Reference Include="System.Reactive.Interfaces">
|
||||||
<HintPath>..\packages\System.Reactive.Interfaces.4.4.1\lib\netstandard2.0\System.Reactive.Interfaces.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Interfaces.5.0.0\lib\netstandard2.0\System.Reactive.Interfaces.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Linq">
|
<Reference Include="System.Reactive.Linq">
|
||||||
<HintPath>..\packages\System.Reactive.Linq.4.4.1\lib\netstandard2.0\System.Reactive.Linq.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Linq.5.0.0\lib\netstandard2.0\System.Reactive.Linq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.PlatformServices">
|
<Reference Include="System.Reactive.PlatformServices">
|
||||||
<HintPath>..\packages\System.Reactive.PlatformServices.4.4.1\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.Android.Arch.Core.Common">
|
<Reference Include="Xamarin.Android.Arch.Core.Common">
|
||||||
<HintPath>..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.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.5.3.2\lib\monoandroid90\Xamarin.Essentials.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Essentials.1.6.0-pre4\lib\monoandroid90\Xamarin.Essentials.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="FormsViewGroup">
|
<Reference Include="FormsViewGroup">
|
||||||
<HintPath>..\packages\Xamarin.Forms.4.8.0.1560\lib\MonoAndroid90\FormsViewGroup.dll</HintPath>
|
<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.1560\lib\MonoAndroid90\Xamarin.Forms.Core.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform.Android">
|
<Reference Include="Xamarin.Forms.Platform.Android">
|
||||||
<HintPath>..\packages\Xamarin.Forms.4.8.0.1560\lib\MonoAndroid90\Xamarin.Forms.Platform.Android.dll</HintPath>
|
<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.1560\lib\MonoAndroid90\Xamarin.Forms.Platform.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\Xamarin.Forms.Platform.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Xaml">
|
<Reference Include="Xamarin.Forms.Xaml">
|
||||||
<HintPath>..\packages\Xamarin.Forms.4.8.0.1560\lib\MonoAndroid90\Xamarin.Forms.Xaml.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\MonoAndroid90\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.5\lib\netstandard2.0\QControlKit.dll</HintPath>
|
<HintPath>..\packages\QControlKit.0.0.10\lib\netstandard2.0\QControlKit.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.1560\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1560\build\Xamarin.Forms.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')" />
|
||||||
</Project>
|
</Project>
|
||||||
+3
-1
@@ -1,7 +1,6 @@
|
|||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
||||||
namespace qController.iOS
|
namespace qController.iOS
|
||||||
{
|
{
|
||||||
[Register("AppDelegate")]
|
[Register("AppDelegate")]
|
||||||
@@ -16,5 +15,8 @@ namespace qController.iOS
|
|||||||
|
|
||||||
return base.FinishedLaunching(app, options);
|
return base.FinishedLaunching(app, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void PerformActionForShortcutItem(UIApplication application, UIApplicationShortcutItem shortcutItem, UIOperationHandler completionHandler)
|
||||||
|
=> Xamarin.Essentials.Platform.PerformActionForShortcutItem(application, shortcutItem, completionHandler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-10
@@ -1,14 +1,14 @@
|
|||||||
<?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.462" targetFramework="xamarinios10" />
|
<package id="Acr.UserDialogs" version="7.1.0.468" 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="3.1.3" 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.5" targetFramework="xamarinios10" />
|
<package id="QControlKit" version="0.0.10" 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="System.AppContext" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="xamarinios10" />
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.ObjectModel" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reactive" version="4.4.1" targetFramework="xamarinios10" />
|
<package id="System.Reactive" version="5.0.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reactive.Core" version="4.4.1" targetFramework="xamarinios10" />
|
<package id="System.Reactive.Core" version="5.0.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reactive.Interfaces" version="4.4.1" targetFramework="xamarinios10" />
|
<package id="System.Reactive.Interfaces" version="5.0.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reactive.Linq" version="4.4.1" targetFramework="xamarinios10" />
|
<package id="System.Reactive.Linq" version="5.0.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reactive.PlatformServices" version="4.4.1" targetFramework="xamarinios10" />
|
<package id="System.Reactive.PlatformServices" version="5.0.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reflection" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.Reflection" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
@@ -76,8 +76,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.5.3.2" targetFramework="xamarinios10" />
|
<package id="Xamarin.Essentials" version="1.6.0-pre4" targetFramework="xamarinios10" />
|
||||||
<package id="Xamarin.Forms" version="4.8.0.1560" targetFramework="xamarinios10" />
|
<package id="Xamarin.Forms" version="4.8.0.1687" 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>
|
||||||
+13
-13
@@ -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.1560\build\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1560\build\Xamarin.Forms.props')" />
|
<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')" />
|
||||||
<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.462\lib\xamarinios10\Acr.UserDialogs.dll</HintPath>
|
<HintPath>..\packages\Acr.UserDialogs.7.1.0.468\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" />
|
||||||
@@ -109,31 +109,31 @@
|
|||||||
<HintPath>..\packages\Acr.Settings.9.0.1\lib\xamarinios10\Acr.Settings.dll</HintPath>
|
<HintPath>..\packages\Acr.Settings.9.0.1\lib\xamarinios10\Acr.Settings.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive">
|
<Reference Include="System.Reactive">
|
||||||
<HintPath>..\packages\System.Reactive.4.4.1\lib\netstandard2.0\System.Reactive.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.5.0.0\lib\netstandard2.0\System.Reactive.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Core">
|
<Reference Include="System.Reactive.Core">
|
||||||
<HintPath>..\packages\System.Reactive.Core.4.4.1\lib\netstandard2.0\System.Reactive.Core.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Core.5.0.0\lib\netstandard2.0\System.Reactive.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Interfaces">
|
<Reference Include="System.Reactive.Interfaces">
|
||||||
<HintPath>..\packages\System.Reactive.Interfaces.4.4.1\lib\netstandard2.0\System.Reactive.Interfaces.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Interfaces.5.0.0\lib\netstandard2.0\System.Reactive.Interfaces.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.Linq">
|
<Reference Include="System.Reactive.Linq">
|
||||||
<HintPath>..\packages\System.Reactive.Linq.4.4.1\lib\netstandard2.0\System.Reactive.Linq.dll</HintPath>
|
<HintPath>..\packages\System.Reactive.Linq.5.0.0\lib\netstandard2.0\System.Reactive.Linq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reactive.PlatformServices">
|
<Reference Include="System.Reactive.PlatformServices">
|
||||||
<HintPath>..\packages\System.Reactive.PlatformServices.4.4.1\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.1560\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\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.1560\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\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.1560\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Essentials">
|
<Reference Include="Xamarin.Essentials">
|
||||||
<HintPath>..\packages\Xamarin.Essentials.1.5.3.2\lib\xamarinios10\Xamarin.Essentials.dll</HintPath>
|
<HintPath>..\packages\Xamarin.Essentials.1.6.0-pre4\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,7 @@
|
|||||||
<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.5\lib\netstandard2.0\QControlKit.dll</HintPath>
|
<HintPath>..\packages\QControlKit.0.0.10\lib\netstandard2.0\QControlKit.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -230,5 +230,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.1560\build\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.4.8.0.1560\build\Xamarin.Forms.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')" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -4,6 +4,8 @@ using Xamarin.Essentials;
|
|||||||
using qController.Communication;
|
using qController.Communication;
|
||||||
using qController.Pages;
|
using qController.Pages;
|
||||||
using System;
|
using System;
|
||||||
|
using QControlKit;
|
||||||
|
using Serilog;
|
||||||
|
|
||||||
namespace qController
|
namespace qController
|
||||||
{
|
{
|
||||||
@@ -34,6 +36,8 @@ namespace qController
|
|||||||
public App()
|
public App()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
AppActions.OnAppAction += AppActions_OnAppAction;
|
||||||
/*MainPage = new NavigationPage(new QConnectionPage());
|
/*MainPage = new NavigationPage(new QConnectionPage());
|
||||||
iNav = MainPage.Navigation;*/
|
iNav = MainPage.Navigation;*/
|
||||||
|
|
||||||
@@ -65,9 +69,32 @@ namespace qController
|
|||||||
rootPage.Master = menuPage;
|
rootPage.Master = menuPage;
|
||||||
rootPage.Detail = NavigationPage;
|
rootPage.Detail = NavigationPage;
|
||||||
MainPage = rootPage;
|
MainPage = rootPage;
|
||||||
|
Log.Debug("Finished rootPage Setup in App Constructor");
|
||||||
rootPage.Init();
|
rootPage.Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AppActions_OnAppAction(object sender, AppActionEventArgs e)
|
||||||
|
{
|
||||||
|
// Don't handle events fired for old application instances
|
||||||
|
// and cleanup the old instance's event handler
|
||||||
|
if (Current != this && Current is App app)
|
||||||
|
{
|
||||||
|
AppActions.OnAppAction -= app.AppActions_OnAppAction;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Device.BeginInvokeOnMainThread(async () =>
|
||||||
|
{
|
||||||
|
QRecentWorkspaceInfo packagedInfo = QStorage.recentWorkspaceInfo;
|
||||||
|
if (packagedInfo != null && e.AppAction.Id.Equals("recent_workspace"))
|
||||||
|
{
|
||||||
|
await NavigationPage.PopToRootAsync();
|
||||||
|
QWorkspace recentWorkspace = new QWorkspace(packagedInfo.workspaceInfo, new QServer(packagedInfo.serverInfo.host, packagedInfo.serverInfo.port));
|
||||||
|
await NavigationPage.PushAsync(new WorkspacePage(recentWorkspace));
|
||||||
|
Log.Debug("Pushed WorkspacePage from App Action");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void Current_RequestedThemeChanged(object sender, AppThemeChangedEventArgs e)
|
private void Current_RequestedThemeChanged(object sender, AppThemeChangedEventArgs e)
|
||||||
{
|
{
|
||||||
SetAppResources();
|
SetAppResources();
|
||||||
@@ -139,6 +166,28 @@ namespace qController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetRecentWorkspace(QWorkspace workspace)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
QRecentWorkspaceInfo recentWorkspaceInfo = new QRecentWorkspaceInfo {
|
||||||
|
workspaceInfo = workspace.getWorkspaceInfo(),
|
||||||
|
serverInfo = workspace.GetServerInfo()
|
||||||
|
};
|
||||||
|
|
||||||
|
QStorage.UpdateRecentWorkspace(recentWorkspaceInfo);
|
||||||
|
|
||||||
|
Device.BeginInvokeOnMainThread(async () =>
|
||||||
|
{
|
||||||
|
await AppActions.SetAsync(new AppAction("recent_workspace", workspace.name, workspace.version));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.Debug(ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void showToast(string message)
|
public static void showToast(string message)
|
||||||
{
|
{
|
||||||
var toastConfig = new ToastConfig(message);
|
var toastConfig = new ToastConfig(message);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace qController.Communication
|
|||||||
|
|
||||||
public class WorkspaceInfoArgs : EventArgs
|
public class WorkspaceInfoArgs : EventArgs
|
||||||
{
|
{
|
||||||
public List<QWorkspaceInfo> WorkspaceInfo
|
public List<QControlKit.QWorkspaceInfo> WorkspaceInfo
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
|
|||||||
@@ -15,5 +15,21 @@ namespace qController.Communication
|
|||||||
IPAddress address;
|
IPAddress address;
|
||||||
return IPAddress.TryParse(ipString, out address);
|
return IPAddress.TryParse(ipString, out address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsReachable(string ipString)
|
||||||
|
{
|
||||||
|
/*try
|
||||||
|
{
|
||||||
|
IPAddress instanceIP = IPAddress.Parse(address);
|
||||||
|
Ping p = new System.Net.NetworkInformation.Ping();
|
||||||
|
PingReply reply = p.Send(instanceIP);
|
||||||
|
return reply.Status == IPStatus.Success ? true : false;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}*/
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ namespace qController.Communication
|
|||||||
public void ParseQInfo(OscMessage msg)
|
public void ParseQInfo(OscMessage msg)
|
||||||
{
|
{
|
||||||
JToken qInfo = OSC2JSON(msg);
|
JToken qInfo = OSC2JSON(msg);
|
||||||
List<QWorkspaceInfo> qWorkspaceInfo = JsonConvert.DeserializeObject<List<QWorkspaceInfo>>(qInfo.ToString());
|
List<QControlKit.QWorkspaceInfo> qWorkspaceInfo = JsonConvert.DeserializeObject<List<QControlKit.QWorkspaceInfo>>(qInfo.ToString());
|
||||||
OnWorkspaceInfoReceived(qWorkspaceInfo);
|
OnWorkspaceInfoReceived(qWorkspaceInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ namespace qController.Communication
|
|||||||
{
|
{
|
||||||
WorkspaceDisconnect?.Invoke(this, new EventArgs());
|
WorkspaceDisconnect?.Invoke(this, new EventArgs());
|
||||||
}
|
}
|
||||||
protected virtual void OnWorkspaceInfoReceived(List<QWorkspaceInfo> workspaces)
|
protected virtual void OnWorkspaceInfoReceived(List<QControlKit.QWorkspaceInfo> workspaces)
|
||||||
{
|
{
|
||||||
WorkspaceInfoReceived?.Invoke(this, new WorkspaceInfoArgs() { WorkspaceInfo = workspaces });
|
WorkspaceInfoReceived?.Invoke(this, new WorkspaceInfoArgs() { WorkspaceInfo = workspaces });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using Acr.UserDialogs;
|
using Acr.UserDialogs;
|
||||||
using qController.QItems;
|
using qController.QItems;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
using QControlKit;
|
||||||
|
|
||||||
namespace qController.Dialogs
|
namespace qController.Dialogs
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -17,18 +17,7 @@ namespace qController.QItems
|
|||||||
}
|
}
|
||||||
public bool IsReachable()
|
public bool IsReachable()
|
||||||
{
|
{
|
||||||
/*try
|
return qController.Communication.IPHelper.IsReachable(address);
|
||||||
{
|
|
||||||
IPAddress instanceIP = IPAddress.Parse(address);
|
|
||||||
Ping p = new System.Net.NetworkInformation.Ping();
|
|
||||||
PingReply reply = p.Send(instanceIP);
|
|
||||||
return reply.Status == IPStatus.Success ? true : false;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}*/
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
//General information about a QLab Workspace
|
|
||||||
namespace qController.QItems
|
|
||||||
{
|
|
||||||
public class QWorkspaceInfo
|
|
||||||
{
|
|
||||||
public string version { get; set; }
|
|
||||||
public string displayName { get; set; }
|
|
||||||
public string uniqueID { get; set; }
|
|
||||||
public bool hasPasscode { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
using QControlKit;
|
||||||
|
|
||||||
|
namespace qController
|
||||||
|
{
|
||||||
|
public class QRecentWorkspaceInfo
|
||||||
|
{
|
||||||
|
public QWorkspaceInfo workspaceInfo { get; set; }
|
||||||
|
public QServerInfo serverInfo { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,24 +2,33 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using Acr.Settings;
|
using Acr.Settings;
|
||||||
using qController.QItems;
|
using qController.QItems;
|
||||||
|
using QControlKit;
|
||||||
|
|
||||||
namespace qController
|
namespace qController
|
||||||
{
|
{
|
||||||
public class QStorage
|
public class QStorage
|
||||||
{
|
{
|
||||||
public static ObservableCollection<QInstance> qInstances;
|
public static ObservableCollection<QInstance> qInstances;
|
||||||
|
public static QRecentWorkspaceInfo recentWorkspaceInfo;
|
||||||
|
|
||||||
static QStorage(){
|
static QStorage(){
|
||||||
|
|
||||||
qInstances = (ObservableCollection<QInstance>)CrossSettings.Current.GetValue(new ObservableCollection<QInstance>().GetType(), "qInstances", null);
|
qInstances = (ObservableCollection<QInstance>)CrossSettings.Current.GetValue(new ObservableCollection<QInstance>().GetType(), "qInstances", null);
|
||||||
|
recentWorkspaceInfo = (QRecentWorkspaceInfo)CrossSettings.Current.GetValue(typeof (QRecentWorkspaceInfo),"recentWorkspaceInfo",null);
|
||||||
if (qInstances == null)
|
if (qInstances == null)
|
||||||
{
|
{
|
||||||
Log.Debug("QSTORAGE - No qInstance exists creating one");
|
Log.Debug("QSTORAGE - No qInstance exists creating one");
|
||||||
qInstances = new ObservableCollection<QInstance>();
|
qInstances = new ObservableCollection<QInstance>();
|
||||||
updateStorage();
|
UpdateStorage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void UpdateRecentWorkspace(QRecentWorkspaceInfo packagedInfo)
|
||||||
|
{
|
||||||
|
recentWorkspaceInfo = packagedInfo;
|
||||||
|
CrossSettings.Current.SetValue("recentWorkspaceInfo", recentWorkspaceInfo);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool AddInstance(string name, string address){
|
public static bool AddInstance(string name, string address){
|
||||||
return AddInstance(new QInstance(name, address));
|
return AddInstance(new QInstance(name, address));
|
||||||
}
|
}
|
||||||
@@ -27,7 +36,7 @@ namespace qController
|
|||||||
public static bool AddInstance(QInstance q){
|
public static bool AddInstance(QInstance q){
|
||||||
if(!Contains(q.name, q.address)){
|
if(!Contains(q.name, q.address)){
|
||||||
qInstances.Add(q);
|
qInstances.Add(q);
|
||||||
updateStorage();
|
UpdateStorage();
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
return false;
|
return false;
|
||||||
@@ -45,10 +54,10 @@ namespace qController
|
|||||||
}
|
}
|
||||||
public static void RemoveInstance(QInstance q){
|
public static void RemoveInstance(QInstance q){
|
||||||
qInstances.Remove(q);
|
qInstances.Remove(q);
|
||||||
updateStorage();
|
UpdateStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void updateStorage(){
|
private static void UpdateStorage(){
|
||||||
CrossSettings.Current.SetValue("qInstances", qInstances);
|
CrossSettings.Current.SetValue("qInstances", qInstances);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace qController.UI.Buttons
|
||||||
|
{
|
||||||
|
public class QButton : Button
|
||||||
|
{
|
||||||
|
public QCommand qCommand
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QButton(QCommand command)
|
||||||
|
{
|
||||||
|
|
||||||
|
qCommand = command;
|
||||||
|
Text = qCommand.text;
|
||||||
|
TextColor = Color.Black;
|
||||||
|
FontSize = App.HeightUnit * 2.5;
|
||||||
|
if (qCommand.osc.Contains("go"))
|
||||||
|
{
|
||||||
|
BackgroundColor = Color.SeaGreen;
|
||||||
|
switch (Device.RuntimePlatform)
|
||||||
|
{
|
||||||
|
case Device.iOS:
|
||||||
|
FontSize = App.HeightUnit * 4;
|
||||||
|
FontAttributes = FontAttributes.Bold;
|
||||||
|
break;
|
||||||
|
case Device.Android:
|
||||||
|
FontSize = App.HeightUnit * 4;
|
||||||
|
FontAttributes = FontAttributes.Bold;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (qCommand.osc.Contains("panic"))
|
||||||
|
{
|
||||||
|
BackgroundColor = Color.IndianRed;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BackgroundColor = Color.FromHex("D8D8D8");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
using Xamarin.Forms;
|
||||||
|
namespace qController.UI.Buttons
|
||||||
|
{
|
||||||
|
public class QLevelsButton : ShadowButton
|
||||||
|
{
|
||||||
|
public Button button;
|
||||||
|
public QLevelsButton()
|
||||||
|
{
|
||||||
|
button = new Button
|
||||||
|
{
|
||||||
|
Text = QIcon.SLIDERS,
|
||||||
|
TextColor = Color.Black,
|
||||||
|
FontFamily = App.QFont,
|
||||||
|
FontSize = App.HeightUnit * 4,
|
||||||
|
VerticalOptions = LayoutOptions.FillAndExpand,
|
||||||
|
HorizontalOptions = LayoutOptions.FillAndExpand,
|
||||||
|
HeightRequest = App.HeightUnit * 8,
|
||||||
|
WidthRequest = App.HeightUnit * 8,
|
||||||
|
CornerRadius = (int)(App.HeightUnit * 4),
|
||||||
|
BackgroundColor = Color.LightBlue
|
||||||
|
};
|
||||||
|
|
||||||
|
HeightRequest = button.Height;
|
||||||
|
WidthRequest = button.Width;
|
||||||
|
CornerRadius = button.CornerRadius;
|
||||||
|
Content = button;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace qController.UI.Buttons
|
||||||
|
{
|
||||||
|
public class ShadowButton : Frame
|
||||||
|
{
|
||||||
|
public ShadowButton(Button b)
|
||||||
|
{
|
||||||
|
//Content = b;
|
||||||
|
HeightRequest = b.Height;
|
||||||
|
WidthRequest = b.Width;
|
||||||
|
CornerRadius = b.CornerRadius;
|
||||||
|
Padding = new Thickness(0);
|
||||||
|
Content = b;
|
||||||
|
HasShadow = true;
|
||||||
|
BorderColor = Color.Black;
|
||||||
|
IsVisible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ShadowButton()
|
||||||
|
{
|
||||||
|
HasShadow = true;
|
||||||
|
BorderColor = Color.Black;
|
||||||
|
IsVisible = false;
|
||||||
|
Padding = new Thickness(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -42,7 +42,7 @@ namespace qController.UI
|
|||||||
};
|
};
|
||||||
cueLabel.SetBinding(Label.TextProperty, "name", BindingMode.OneWay);
|
cueLabel.SetBinding(Label.TextProperty, "name", BindingMode.OneWay);
|
||||||
cueLabel.SetDynamicResource(Label.TextColorProperty, "PrimaryTextColor");
|
cueLabel.SetDynamicResource(Label.TextColorProperty, "PrimaryTextColor");
|
||||||
cueLabel.SetBinding(Label.PaddingProperty, "nestPadding", BindingMode.OneWay);
|
cueLabel.SetBinding(Label.MarginProperty, "nestPadding", BindingMode.OneWay);
|
||||||
|
|
||||||
var cueTypeLabel = new Label
|
var cueTypeLabel = new Label
|
||||||
{
|
{
|
||||||
@@ -70,13 +70,18 @@ namespace qController.UI
|
|||||||
cueTypeLabel.SetBinding(Label.TextProperty, "type", BindingMode.OneWay);
|
cueTypeLabel.SetBinding(Label.TextProperty, "type", BindingMode.OneWay);
|
||||||
cueTypeLabel.SetDynamicResource(Label.TextColorProperty, "IconTextColor");
|
cueTypeLabel.SetDynamicResource(Label.TextColorProperty, "IconTextColor");
|
||||||
|
|
||||||
//Section for selecting a cue by tapping the name Label
|
|
||||||
var selectCueGesture = new TapGestureRecognizer();
|
if (!cue.IsCueList)
|
||||||
selectCueGesture.Tapped += (sender, e) =>
|
|
||||||
{
|
{
|
||||||
cue.workspace.firstCueList.playbackPositionID = cue.uid;
|
//Section for selecting a cue by tapping the name Label
|
||||||
};
|
var selectCueGesture = new TapGestureRecognizer();
|
||||||
cueLabel.GestureRecognizers.Add(selectCueGesture);
|
selectCueGesture.Tapped += (sender, e) =>
|
||||||
|
{
|
||||||
|
//TODO: need to make this work regardless of the cue list a cue is in
|
||||||
|
cue.workspace.firstCueList.playbackPositionID = cue.uid;
|
||||||
|
};
|
||||||
|
cueLabel.GestureRecognizers.Add(selectCueGesture);
|
||||||
|
}
|
||||||
|
|
||||||
//Add collapse gesture to the cue type icon if it is a group cue
|
//Add collapse gesture to the cue type icon if it is a group cue
|
||||||
if (cue.IsGroup)
|
if (cue.IsGroup)
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ namespace qController.ViewModels
|
|||||||
{
|
{
|
||||||
OnPropertyChanged("color");
|
OnPropertyChanged("color");
|
||||||
}
|
}
|
||||||
|
else if (property.Equals(QOSCKey.Children))
|
||||||
|
{
|
||||||
|
Log.Debug("children property updated");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ using Acr.UserDialogs;
|
|||||||
|
|
||||||
using qController.Dialogs;
|
using qController.Dialogs;
|
||||||
using qController.QItems;
|
using qController.QItems;
|
||||||
using qController.Cell;
|
using qController.UI.Cells;
|
||||||
|
using qController.UI.Buttons;
|
||||||
using qController.Communication;
|
using qController.Communication;
|
||||||
using qController.Events;
|
using qController.Events;
|
||||||
|
|
||||||
@@ -109,7 +110,7 @@ namespace qController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PromptForWorkspace(List<QWorkspaceInfo> workspaces)
|
private void PromptForWorkspace(List<QControlKit.QWorkspaceInfo> workspaces)
|
||||||
{
|
{
|
||||||
|
|
||||||
UserDialogs.Instance.ActionSheet(workspacePrompt.getActionSheetConfigForWorkspaces(workspaces));
|
UserDialogs.Instance.ActionSheet(workspacePrompt.getActionSheetConfigForWorkspaces(workspaces));
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using QControlKit;
|
using QControlKit;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using qController.Cell;
|
using qController.UI.Cells;
|
||||||
using Acr.UserDialogs;
|
using Acr.UserDialogs;
|
||||||
using qController.Dialogs;
|
using qController.Dialogs;
|
||||||
using Xamarin.Essentials;
|
using Xamarin.Essentials;
|
||||||
|
|||||||
@@ -11,12 +11,14 @@ using qController.UI;
|
|||||||
using QControlKit;
|
using QControlKit;
|
||||||
using QControlKit.Events;
|
using QControlKit.Events;
|
||||||
using QControlKit.Constants;
|
using QControlKit.Constants;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace qController
|
namespace qController
|
||||||
{
|
{
|
||||||
public partial class WorkspacePage : ContentPage
|
public partial class WorkspacePage : ContentPage
|
||||||
{
|
{
|
||||||
private QWorkspace connectedWorkspace;
|
private QWorkspace connectedWorkspace;
|
||||||
|
private string passcode;
|
||||||
private Dictionary<string, Grid> cueGridDict = new Dictionary<string, Grid>();
|
private Dictionary<string, Grid> cueGridDict = new Dictionary<string, Grid>();
|
||||||
public WorkspacePage(QWorkspace workspace, string passcode = null)
|
public WorkspacePage(QWorkspace workspace, string passcode = null)
|
||||||
{
|
{
|
||||||
@@ -24,7 +26,7 @@ namespace qController
|
|||||||
|
|
||||||
|
|
||||||
connectedWorkspace = workspace;
|
connectedWorkspace = workspace;
|
||||||
|
this.passcode = passcode;
|
||||||
SetupTopBar();
|
SetupTopBar();
|
||||||
|
|
||||||
connectedWorkspace.WorkspaceUpdated += Workspace_WorkspaceUpdated;
|
connectedWorkspace.WorkspaceUpdated += Workspace_WorkspaceUpdated;
|
||||||
@@ -32,10 +34,17 @@ namespace qController
|
|||||||
connectedWorkspace.defaultSendUpdatesOSC = true;
|
connectedWorkspace.defaultSendUpdatesOSC = true;
|
||||||
connectedWorkspace.CueListChangedPlaybackPosition += ConnectedWorkspace_CueListChangedPlaybackPosition;
|
connectedWorkspace.CueListChangedPlaybackPosition += ConnectedWorkspace_CueListChangedPlaybackPosition;
|
||||||
|
|
||||||
connectedWorkspace.connect(passcode);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnAppearing()
|
||||||
|
{
|
||||||
|
base.OnAppearing();
|
||||||
|
connectedWorkspace.connect(passcode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void SetupTopBar()
|
private void SetupTopBar()
|
||||||
{
|
{
|
||||||
NavigationPage.SetHasNavigationBar(this, false);
|
NavigationPage.SetHasNavigationBar(this, false);
|
||||||
@@ -79,12 +88,15 @@ namespace qController
|
|||||||
Device.BeginInvokeOnMainThread(() =>
|
Device.BeginInvokeOnMainThread(() =>
|
||||||
{
|
{
|
||||||
QCue selectedCue = connectedWorkspace.cueWithID(args.cueID);
|
QCue selectedCue = connectedWorkspace.cueWithID(args.cueID);
|
||||||
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
if(selectedCue != null)
|
||||||
selectedCueFrame.BindingContext = new QCueViewModel(selectedCue, false);
|
|
||||||
if (cueGridDict.ContainsKey(args.cueID))
|
|
||||||
{
|
{
|
||||||
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
connectedWorkspace.fetchDefaultPropertiesForCue(selectedCue);
|
||||||
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
selectedCueFrame.BindingContext = new QCueViewModel(selectedCue, false);
|
||||||
|
if (cueGridDict.ContainsKey(args.cueID))
|
||||||
|
{
|
||||||
|
var cueGrid = cueGridDict[args.cueID]; //element to scroll to
|
||||||
|
cueListScrollView.ScrollToAsync(cueGrid, ScrollToPosition.Center, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -92,31 +104,34 @@ namespace qController
|
|||||||
void Workspace_WorkspaceUpdated(object source, QWorkspaceUpdatedArgs args)
|
void Workspace_WorkspaceUpdated(object source, QWorkspaceUpdatedArgs args)
|
||||||
{
|
{
|
||||||
Log.Debug("[workspacepage] Workspace Updated");
|
Log.Debug("[workspacepage] Workspace Updated");
|
||||||
|
App.SetRecentWorkspace(connectedWorkspace);
|
||||||
foreach (var cue in connectedWorkspace.cueLists)
|
if (connectedWorkspace.cueLists.Count > 0)
|
||||||
{
|
{
|
||||||
if (cue.cues.Count > 0)
|
List<Task> cueAddTasks = new List<Task>();
|
||||||
|
foreach (var aCue in connectedWorkspace.cueLists)
|
||||||
{
|
{
|
||||||
List<Task> cueAddTasks = new List<Task>();
|
if(aCue.cues.Count > 0)
|
||||||
foreach (var aCue in cue.cues)
|
|
||||||
{
|
{
|
||||||
QCueGrid cueGrid = cueToGrid(aCue);
|
QCueGrid cueGrid = cueToGrid(aCue);
|
||||||
|
|
||||||
cueGridDict.Add(aCue.uid, cueGrid);
|
cueGridDict.Add(aCue.uid, cueGrid);
|
||||||
|
|
||||||
MainThread.InvokeOnMainThreadAsync(() =>
|
MainThread.InvokeOnMainThreadAsync(() =>
|
||||||
{
|
{
|
||||||
cueListsGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
|
cueListsGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
|
||||||
cueListsGrid.Children.Add(cueGrid, 0, aCue.sortIndex);
|
cueListsGrid.Children.Add(cueGrid, 0, aCue.sortIndex);
|
||||||
}).Wait();
|
}).Wait();
|
||||||
}
|
}
|
||||||
connectedWorkspace.valueForKey(cue, QOSCKey.PlaybackPositionId); //fetch playback position for cueList once all cue loading is done.
|
|
||||||
|
|
||||||
Device.BeginInvokeOnMainThread(() =>
|
|
||||||
{
|
|
||||||
selectedCueFrame.IsVisible = true;
|
|
||||||
cueListScrollView.IsVisible = true;
|
|
||||||
});
|
|
||||||
break; //only load first cue list with cues.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
connectedWorkspace.valueForKey(connectedWorkspace.firstCueList, QOSCKey.PlaybackPositionId); //fetch playback position for cueList once all cue loading is done.
|
||||||
|
|
||||||
|
Device.BeginInvokeOnMainThread(() =>
|
||||||
|
{
|
||||||
|
selectedCueFrame.IsVisible = true;
|
||||||
|
cueListScrollView.IsVisible = true;
|
||||||
|
});
|
||||||
|
//break; //only load first cue list with cues.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,5 +187,12 @@ namespace qController
|
|||||||
Back();
|
Back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected async Task WaitAndExecute(int milisec, Action actionToExecute)
|
||||||
|
{
|
||||||
|
await Task.Delay(milisec);
|
||||||
|
actionToExecute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
|||||||
using Serilog;
|
using Serilog;
|
||||||
using qController.QItems;
|
using qController.QItems;
|
||||||
using qController.Dialogs;
|
using qController.Dialogs;
|
||||||
using qController.Cell;
|
using qController.UI.Cells;
|
||||||
using Xamarin.Essentials;
|
using Xamarin.Essentials;
|
||||||
|
|
||||||
namespace qController
|
namespace qController
|
||||||
|
|||||||
@@ -57,14 +57,14 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Acr.UserDialogs" Version="7.1.0.462" />
|
<PackageReference Include="Acr.UserDialogs" Version="7.1.0.468" />
|
||||||
<PackageReference Include="Zeroconf" Version="3.4.2" />
|
<PackageReference Include="Zeroconf" Version="3.4.2" />
|
||||||
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1560" />
|
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1687" />
|
||||||
<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.5.3.2" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.6.0-pre4" />
|
||||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||||
<PackageReference Include="QControlKit" Version="0.0.5" />
|
<PackageReference Include="QControlKit" Version="0.0.10" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="App.xaml" />
|
<None Remove="App.xaml" />
|
||||||
@@ -87,12 +87,13 @@
|
|||||||
</ItemGroup>-->
|
</ItemGroup>-->
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Classes\QItems\" />
|
<Folder Include="Classes\QItems\" />
|
||||||
<Folder Include="Classes\Cell\" />
|
|
||||||
<Folder Include="Classes\Settings\" />
|
<Folder Include="Classes\Settings\" />
|
||||||
<Folder Include="Classes\Dialogs\" />
|
<Folder Include="Classes\Dialogs\" />
|
||||||
<Folder Include="Classes\Buttons\" />
|
|
||||||
<Folder Include="Classes\UI\" />
|
<Folder Include="Classes\UI\" />
|
||||||
<Folder Include="Classes\Events\" />
|
<Folder Include="Classes\Events\" />
|
||||||
|
<Folder Include="Classes\UI\Buttons\" />
|
||||||
|
<Folder Include="Classes\UI\Cells\" />
|
||||||
|
<Folder Include="Classes\Helpers\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Remove="Pages\RootPageMaster.xaml" />
|
<EmbeddedResource Remove="Pages\RootPageMaster.xaml" />
|
||||||
|
|||||||
Reference in New Issue
Block a user