Remove dead code; bind to AppLibrary apps directly in mainwindow
This commit is contained in:
parent
bc60126a24
commit
20e0dbe97f
6 changed files with 17 additions and 61 deletions
|
@ -1,5 +1,4 @@
|
|||
using DynamicData;
|
||||
using DynamicData.Kernel;
|
||||
using LibHac;
|
||||
using LibHac.Common;
|
||||
using LibHac.Fs;
|
||||
|
@ -24,7 +23,6 @@ using Ryujinx.UI.Common.Helper;
|
|||
using Ryujinx.UI.Common.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
@ -44,8 +42,6 @@ namespace Ryujinx.UI.App.Common
|
|||
public Language DesiredLanguage { get; set; }
|
||||
public event EventHandler<ApplicationAddedEventArgs> ApplicationAdded;
|
||||
public event EventHandler<ApplicationCountUpdatedEventArgs> ApplicationCountUpdated;
|
||||
public event EventHandler<TitleUpdateAddedEventArgs> TitleUpdateAdded;
|
||||
public event EventHandler<DownloadableContentAddedEventArgs> DownloadableContentAdded;
|
||||
|
||||
public IObservableCache<ApplicationData, string> Applications;
|
||||
public IObservableCache<(TitleUpdateModel TitleUpdate, bool IsSelected), TitleUpdateModel> TitleUpdates;
|
||||
|
@ -553,6 +549,7 @@ namespace Ryujinx.UI.App.Common
|
|||
{
|
||||
Logger.Warning?.Print(LogClass.Application, $"The file encountered was not of a valid type. File: '{filePath}' Error: {exception}");
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1056,16 +1053,6 @@ namespace Ryujinx.UI.App.Common
|
|||
ApplicationCountUpdated?.Invoke(null, e);
|
||||
}
|
||||
|
||||
protected void OnTitleUpdateAdded(TitleUpdateAddedEventArgs e)
|
||||
{
|
||||
TitleUpdateAdded?.Invoke(null, e);
|
||||
}
|
||||
|
||||
protected void OnDownloadableContentAdded(DownloadableContentAddedEventArgs e)
|
||||
{
|
||||
DownloadableContentAdded?.Invoke(null, e);
|
||||
}
|
||||
|
||||
public static ApplicationMetadata LoadAndSaveMetaData(string titleId, Action<ApplicationMetadata> modifyFunction = null)
|
||||
{
|
||||
string metadataFolder = Path.Combine(AppDataManager.GamesDirPath, titleId, "gui");
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
using Ryujinx.UI.Common.Models;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.UI.App.Common
|
||||
{
|
||||
public class DownloadableContentAddedEventArgs : EventArgs
|
||||
{
|
||||
public DownloadableContentModel DownloadableContent { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
using Ryujinx.UI.Common.Models;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.UI.App.Common
|
||||
{
|
||||
public class TitleUpdateAddedEventArgs : EventArgs
|
||||
{
|
||||
public TitleUpdateModel TitleUpdate { get; set; }
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ using Avalonia.Media;
|
|||
using Avalonia.Platform.Storage;
|
||||
using Avalonia.Threading;
|
||||
using DynamicData;
|
||||
using DynamicData.Alias;
|
||||
using DynamicData.Binding;
|
||||
using LibHac.Common;
|
||||
using Ryujinx.Ava.Common;
|
||||
|
@ -50,7 +51,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||
{
|
||||
private const int HotKeyPressDelayMs = 500;
|
||||
|
||||
private ObservableCollection<ApplicationData> _applications;
|
||||
private ObservableCollectionExtended<ApplicationData> _applications;
|
||||
private string _aspectStatusText;
|
||||
|
||||
private string _loadHeading;
|
||||
|
@ -112,7 +113,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
Applications = new ObservableCollection<ApplicationData>();
|
||||
Applications = new ObservableCollectionExtended<ApplicationData>();
|
||||
|
||||
Applications.ToObservableChangeSet()
|
||||
.Filter(Filter)
|
||||
|
@ -741,7 +742,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||
get => FileAssociationHelper.IsTypeAssociationSupported;
|
||||
}
|
||||
|
||||
public ObservableCollection<ApplicationData> Applications
|
||||
public ObservableCollectionExtended<ApplicationData> Applications
|
||||
{
|
||||
get => _applications;
|
||||
set
|
||||
|
|
|
@ -4,6 +4,7 @@ using Avalonia.Controls.Primitives;
|
|||
using Avalonia.Interactivity;
|
||||
using Avalonia.Platform;
|
||||
using Avalonia.Threading;
|
||||
using DynamicData;
|
||||
using FluentAvalonia.UI.Controls;
|
||||
using LibHac.Tools.FsSystem;
|
||||
using Ryujinx.Ava.Common;
|
||||
|
@ -26,6 +27,7 @@ using Ryujinx.UI.Common.Configuration;
|
|||
using Ryujinx.UI.Common.Helper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reactive.Linq;
|
||||
using System.Runtime.Versioning;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -45,6 +47,7 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
private static string _launchApplicationId;
|
||||
private static bool _startFullscreen;
|
||||
internal readonly AvaHostUIHandler UiHandler;
|
||||
private IDisposable _appLibraryAppsSubscription;
|
||||
|
||||
public VirtualFileSystem VirtualFileSystem { get; private set; }
|
||||
public ContentManager ContentManager { get; private set; }
|
||||
|
@ -136,26 +139,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
Program.DesktopScaleFactor = this.RenderScaling;
|
||||
}
|
||||
|
||||
private void ApplicationLibrary_ApplicationAdded(object sender, ApplicationAddedEventArgs e)
|
||||
{
|
||||
Dispatcher.UIThread.Post(() =>
|
||||
{
|
||||
ViewModel.Applications.Add(e.AppData);
|
||||
});
|
||||
}
|
||||
|
||||
private void ApplicationLibrary_DownloadableContentAdded(object sender, DownloadableContentAddedEventArgs e)
|
||||
{
|
||||
var it = e.DownloadableContent;
|
||||
Console.WriteLine("[{0}]: {1} ({2})", it.TitleIdBase, it.ContainerPath, it.FullPath);
|
||||
}
|
||||
|
||||
private void ApplicationLibrary_TitleUpdateAdded(object sender, TitleUpdateAddedEventArgs e)
|
||||
{
|
||||
var it = e.TitleUpdate;
|
||||
Console.WriteLine("[{0}]: {1}", it.TitleIdBase, it.Path);
|
||||
}
|
||||
|
||||
private void ApplicationLibrary_ApplicationCountUpdated(object sender, ApplicationCountUpdatedEventArgs e)
|
||||
{
|
||||
LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.StatusBarGamesLoaded, e.NumAppsLoaded, e.NumAppsFound);
|
||||
|
@ -484,7 +467,12 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
this);
|
||||
|
||||
ApplicationLibrary.ApplicationCountUpdated += ApplicationLibrary_ApplicationCountUpdated;
|
||||
ApplicationLibrary.ApplicationAdded += ApplicationLibrary_ApplicationAdded;
|
||||
_appLibraryAppsSubscription?.Dispose();
|
||||
_appLibraryAppsSubscription = ApplicationLibrary.Applications
|
||||
.Connect()
|
||||
.ObserveOn(SynchronizationContext.Current)
|
||||
.Bind(ViewModel.Applications)
|
||||
.Subscribe();
|
||||
|
||||
ViewModel.RefreshFirmwareStatus();
|
||||
|
||||
|
@ -587,6 +575,7 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
|
||||
ApplicationLibrary.CancelLoading();
|
||||
InputManager.Dispose();
|
||||
_appLibraryAppsSubscription?.Dispose();
|
||||
Program.Exit();
|
||||
|
||||
base.OnClosing(e);
|
||||
|
@ -608,7 +597,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
public void LoadApplications()
|
||||
{
|
||||
_applicationsLoadedOnce = true;
|
||||
ViewModel.Applications.Clear();
|
||||
|
||||
StatusBarView.LoadProgressBar.IsVisible = true;
|
||||
ViewModel.StatusBarProgressMaximum = 0;
|
||||
|
|
Loading…
Reference in a new issue