mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-07 08:23:49 +00:00
31a10d9b16
* 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
80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
using Serilog;
|
|
using System.Collections.ObjectModel;
|
|
using Acr.Settings;
|
|
using qController.QItems;
|
|
using QControlKit;
|
|
|
|
namespace qController
|
|
{
|
|
public class QStorage
|
|
{
|
|
public static ObservableCollection<QInstance> qInstances;
|
|
public static QRecentWorkspaceInfo recentWorkspaceInfo;
|
|
|
|
static QStorage(){
|
|
|
|
qInstances = (ObservableCollection<QInstance>)CrossSettings.Current.GetValue(new ObservableCollection<QInstance>().GetType(), "qInstances", null);
|
|
recentWorkspaceInfo = (QRecentWorkspaceInfo)CrossSettings.Current.GetValue(typeof (QRecentWorkspaceInfo),"recentWorkspaceInfo",null);
|
|
if (qInstances == null)
|
|
{
|
|
Log.Debug("QSTORAGE - No qInstance exists creating one");
|
|
qInstances = new ObservableCollection<QInstance>();
|
|
UpdateStorage();
|
|
}
|
|
}
|
|
|
|
public static void UpdateRecentWorkspace(QRecentWorkspaceInfo packagedInfo)
|
|
{
|
|
recentWorkspaceInfo = packagedInfo;
|
|
CrossSettings.Current.SetValue("recentWorkspaceInfo", recentWorkspaceInfo);
|
|
}
|
|
|
|
public static bool AddInstance(string name, string address){
|
|
return AddInstance(new QInstance(name, address));
|
|
}
|
|
|
|
public static bool AddInstance(QInstance q){
|
|
if(!Contains(q.name, q.address)){
|
|
qInstances.Add(q);
|
|
UpdateStorage();
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static void RemoveInstance(string name, string address){
|
|
foreach (var item in qInstances)
|
|
{
|
|
if(item.address == address && item.name == name){
|
|
RemoveInstance(item);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
public static void RemoveInstance(QInstance q){
|
|
qInstances.Remove(q);
|
|
UpdateStorage();
|
|
}
|
|
|
|
private static void UpdateStorage(){
|
|
CrossSettings.Current.SetValue("qInstances", qInstances);
|
|
}
|
|
|
|
public static bool Contains(string name, string address){
|
|
foreach (var item in qInstances)
|
|
{
|
|
//Log.Debug("Item name: " + item.name + " Found Name: " + name);
|
|
if (item.address == address)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
public bool IsEmpty(){
|
|
return qInstances.Count == 0;
|
|
}
|
|
}
|
|
}
|