Add WorkspaceConnectionError Event

This commit is contained in:
2020-09-07 13:14:03 -05:00
parent 1e788bd292
commit 2cfa495a24
6 changed files with 80 additions and 28 deletions
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
using QControlKit;
using QControlKitXamDemo.ViewModels;
@@ -12,17 +11,39 @@ namespace QControlKitXamDemo
{
private QWorkspace connectedWorkspace;
private Dictionary<string, Grid> cueGridDict = new Dictionary<string, Grid>();
public CueListPage(QWorkspace workspace)
public CueListPage(QWorkspace workspace, string passcode = null)
{
InitializeComponent();
connectedWorkspace = workspace;
connectedWorkspace.WorkspaceUpdated += Workspace_WorkspaceUpdated;
connectedWorkspace.connectWithPasscode("1234");
connectedWorkspace.WorkspaceConnectionError += ConnectedWorkspace_WorkspaceConnectionError;
connectedWorkspace.connect(passcode);
connectedWorkspace.defaultSendUpdatesOSC = true;
connectedWorkspace.CueListChangedPlaybackPosition += ConnectedWorkspace_CueListChangedPlaybackPosition;
}
protected override void OnDisappearing()
{
base.OnDisappearing();
connectedWorkspace.disconnect();
connectedWorkspace.WorkspaceUpdated -= Workspace_WorkspaceUpdated;
connectedWorkspace.WorkspaceConnectionError -= ConnectedWorkspace_WorkspaceConnectionError;
connectedWorkspace.CueListChangedPlaybackPosition -= ConnectedWorkspace_CueListChangedPlaybackPosition;
}
private async void ConnectedWorkspace_WorkspaceConnectionError(object source, QWorkspaceConnectionErrorArgs args)
{
System.Console.WriteLine("WorkspaceConnectionError Called");
if (args.status.Equals("badpass"))
{
string passcode = await DisplayPromptAsync("Passcode was incorrect.", "Try Again", maxLength: 4, keyboard: Keyboard.Numeric);
if (passcode != null)
{
connectedWorkspace.connect(passcode);
}
}
}
void ConnectedWorkspace_CueListChangedPlaybackPosition(object source, QCueListChangedPlaybackPositionArgs args)
{
Device.BeginInvokeOnMainThread(() =>
@@ -25,9 +25,26 @@ namespace QControlKitXamDemo
async void ServerListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
QWorkspace selectedWorkspace = e.SelectedItem as QWorkspace;
Console.WriteLine($"[demo] workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
await Navigation.PushAsync(new CueListPage(selectedWorkspace));
if(e.SelectedItem != null)
{
QWorkspace selectedWorkspace = e.SelectedItem as QWorkspace;
Console.WriteLine($"[demo] workspace: {selectedWorkspace.nameWithoutPathExtension} has been selected");
if (selectedWorkspace.hasPasscode)
{
string passcode = await DisplayPromptAsync("Workspace has passcode", "Enter Passcode", maxLength: 4, keyboard: Keyboard.Numeric);
if (passcode != null)
{
await Navigation.PushAsync(new CueListPage(selectedWorkspace, passcode));
}
}
else
{
await Navigation.PushAsync(new CueListPage(selectedWorkspace));
}
serverListView.SelectedItem = null;
}
}
private void Browser_ServerUpdatedWorkspaces(object source, QServerUpdatedArgs args)