UI - Avalonia Part 3 (#3441)

* Add all other windows

* addreesed review

* Prevent "No Update" option from being deleted

* Select no update is the current update is removed from the title update window

* fix amiibo crash
This commit is contained in:
Emmanuel Hansen 2022-07-08 18:47:11 +00:00 committed by GitHub
parent bccf5e8b5a
commit 3af42d6c7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 2901 additions and 23 deletions

View file

@ -67,6 +67,8 @@ namespace Ryujinx.Ava.Ui.ViewModels
private bool _isPaused;
private bool _showContent = true;
private bool _isLoadingIndeterminate = true;
private bool _showAll;
private string _lastScannedAmiiboId;
private ReadOnlyObservableCollection<ApplicationData> _appsObservableList;
public string TitleName { get; internal set; }
@ -695,15 +697,28 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
}
public void OpenAmiiboWindow()
public async void OpenAmiiboWindow()
{
if (!_isAmiiboRequested)
{
return;
}
if (_owner.AppHost.Device.System.SearchingForAmiibo(out int deviceId))
{
string titleId = _owner.AppHost.Device.Application.TitleIdText.ToUpper();
AmiiboWindow window = new(_showAll, _lastScannedAmiiboId, titleId);
// TODO : Implement Amiibo window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
await window.ShowDialog(_owner);
if (window.IsScanned)
{
_showAll = window.ViewModel.ShowAllAmiibo;
_lastScannedAmiiboId = window.ScannedAmiibo.GetId();
_owner.AppHost.Device.System.ScanAmiibo(deviceId, _lastScannedAmiiboId, window.ViewModel.UseRandomUuid);
}
}
}
public void HandleShaderProgress(Switch emulationContext)
@ -953,10 +968,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
LoadConfigurableHotKeys();
}
public void ManageProfiles()
public async void ManageProfiles()
{
// TODO : Implement Profiles window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
UserProfileWindow window = new(_owner.AccountManager, _owner.ContentManager, _owner.VirtualFileSystem);
await window.ShowDialog(_owner);
}
public async void OpenAboutWindow()
@ -1227,33 +1243,60 @@ namespace Ryujinx.Ava.Ui.ViewModels
}
}
public void OpenTitleUpdateManager()
public async void OpenTitleUpdateManager()
{
// TODO : Implement Update window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
var selection = SelectedApplication;
if (selection != null)
{
TitleUpdateWindow titleUpdateManager =
new(_owner.VirtualFileSystem, selection.TitleId, selection.TitleName);
await titleUpdateManager.ShowDialog(_owner);
}
}
public void OpenDlcManager()
public async void OpenDlcManager()
{
// TODO : Implement Dlc window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
var selection = SelectedApplication;
if (selection != null)
{
DlcManagerWindow dlcManager = new(_owner.VirtualFileSystem, ulong.Parse(selection.TitleId, NumberStyles.HexNumber), selection.TitleName);
await dlcManager.ShowDialog(_owner);
}
}
public void OpenCheatManager()
public async void OpenCheatManager()
{
// TODO : Implement cheat window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
var selection = SelectedApplication;
if (selection != null)
{
CheatWindow cheatManager = new(_owner.VirtualFileSystem, selection.TitleId, selection.TitleName);
await cheatManager.ShowDialog(_owner);
}
}
public void OpenCheatManagerForCurrentApp()
public async void OpenCheatManagerForCurrentApp()
{
if (!IsGameRunning)
{
return;
}
// TODO : Implement cheat window
ContentDialogHelper.ShowNotAvailableMessage(_owner);
var application = _owner.AppHost.Device.Application;
if (application != null)
{
CheatWindow cheatManager = new(_owner.VirtualFileSystem, application.TitleIdText, application.TitleName);
await cheatManager.ShowDialog(_owner);
_owner.AppHost.Device.EnableCheats();
}
}
public void OpenDeviceSaveDirectory()