misc: chore: Use explicit types & fix object creation

This commit is contained in:
KeatonTheBot
2026-05-30 16:26:50 -05:00
parent 9d3fecf334
commit 76a123b81d
454 changed files with 3042 additions and 2961 deletions
@@ -14,6 +14,8 @@ using Ryujinx.Common.Utilities;
using Ryujinx.HLE.HOS;
using Ryujinx.UI.App.Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
@@ -90,44 +92,44 @@ namespace Ryujinx.Ava.UI.ViewModels
string[] modsBasePaths = [ModLoader.GetSdModsBasePath(), ModLoader.GetModsBasePath()];
foreach (var path in modsBasePaths)
foreach (string path in modsBasePaths)
{
var inSd = path == ModLoader.GetSdModsBasePath();
var modCache = new ModLoader.ModCache();
bool inSd = path == ModLoader.GetSdModsBasePath();
ModLoader.ModCache modCache = new();
ModLoader.QueryContentsDir(modCache, new DirectoryInfo(Path.Combine(path, "contents")), applicationId, installedDlcIds);
foreach (var mod in modCache.RomfsDirs)
foreach (ModLoader.Mod<DirectoryInfo> mod in modCache.RomfsDirs)
{
var modModel = new ModModel(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
ModModel modModel = new(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
if (Mods.All(x => x.Path != mod.Path.Parent?.FullName))
{
Mods.Add(modModel);
}
}
foreach (var mod in modCache.RomfsContainers)
foreach (ModLoader.Mod<FileInfo> mod in modCache.RomfsContainers)
{
Mods.Add(new ModModel(mod.Path.FullName, mod.Name, mod.Enabled, inSd));
}
foreach (var mod in modCache.ExefsDirs)
foreach (ModLoader.Mod<DirectoryInfo> mod in modCache.ExefsDirs)
{
var modModel = new ModModel(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
ModModel modModel = new(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
if (Mods.All(x => x.Path != mod.Path.Parent?.FullName))
{
Mods.Add(modModel);
}
}
foreach (var mod in modCache.ExefsContainers)
foreach (ModLoader.Mod<FileInfo> mod in modCache.ExefsContainers)
{
Mods.Add(new ModModel(mod.Path.FullName, mod.Name, mod.Enabled, inSd));
}
foreach (var mod in modCache.TextureDirs)
foreach (ModLoader.Mod<DirectoryInfo> mod in modCache.TextureDirs)
{
var modModel = new ModModel(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
ModModel modModel = new(mod.Path.Parent?.FullName, mod.Name, mod.Enabled, inSd);
if (Mods.All(x => x.Path != mod.Path.Parent?.FullName))
{
Mods.Add(modModel);
@@ -142,7 +144,7 @@ namespace Ryujinx.Ava.UI.ViewModels
{
Mods.AsObservableChangeSet()
.Filter(Filter)
.Bind(out var view).AsObservableList();
.Bind(out ReadOnlyObservableCollection<ModModel> view).AsObservableList();
Views.Clear();
Views.AddRange(view);
@@ -183,10 +185,10 @@ namespace Ryujinx.Ava.UI.ViewModels
public void Delete(ModModel model, bool removeFromList = true)
{
var isSubdir = true;
var pathToDelete = model.Path;
var basePath = model.InSd ? ModLoader.GetSdModsBasePath() : ModLoader.GetModsBasePath();
var modsDir = ModLoader.GetApplicationDir(basePath, _applicationId.ToString("x16"));
bool isSubdir = true;
string pathToDelete = model.Path;
string basePath = model.InSd ? ModLoader.GetSdModsBasePath() : ModLoader.GetModsBasePath();
string modsDir = ModLoader.GetApplicationDir(basePath, _applicationId.ToString("x16"));
if (new DirectoryInfo(model.Path).Parent?.FullName == modsDir)
{
@@ -195,9 +197,9 @@ namespace Ryujinx.Ava.UI.ViewModels
if (isSubdir)
{
var parentDir = String.Empty;
string parentDir = String.Empty;
foreach (var dir in Directory.GetDirectories(modsDir, "*", SearchOption.TopDirectoryOnly))
foreach (string dir in Directory.GetDirectories(modsDir, "*", SearchOption.TopDirectoryOnly))
{
if (Directory.GetDirectories(dir, "*", SearchOption.AllDirectories).Contains(model.Path))
{
@@ -249,10 +251,10 @@ namespace Ryujinx.Ava.UI.ViewModels
return;
}
var destinationDir = ModLoader.GetApplicationDir(ModLoader.GetSdModsBasePath(), _applicationId.ToString("x16"));
string destinationDir = ModLoader.GetApplicationDir(ModLoader.GetSdModsBasePath(), _applicationId.ToString("x16"));
// TODO: More robust checking for valid mod folders
var isDirectoryValid = directories.Length != 0;
bool isDirectoryValid = directories.Length != 0;
if (!isDirectoryValid)
{
@@ -263,7 +265,7 @@ namespace Ryujinx.Ava.UI.ViewModels
return;
}
foreach (var dir in directories)
foreach (string dir in directories)
{
string dirToCreate = dir.Replace(directory.Parent?.ToString() ?? string.Empty, destinationDir);
@@ -284,9 +286,9 @@ namespace Ryujinx.Ava.UI.ViewModels
Directory.CreateDirectory(dirToCreate);
}
var files = Directory.GetFiles(directory.ToString(), "*", SearchOption.AllDirectories);
string[] files = Directory.GetFiles(directory.ToString(), "*", SearchOption.AllDirectories);
foreach (var file in files)
foreach (string file in files)
{
File.Copy(file, file.Replace(directory.Parent?.ToString() ?? string.Empty, destinationDir), true);
}
@@ -298,13 +300,13 @@ namespace Ryujinx.Ava.UI.ViewModels
{
OsUtils.SetCoreDumpable(true);
var result = await _storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
IReadOnlyList<IStorageFolder> result = await _storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
{
Title = LocaleManager.Instance[LocaleKeys.SelectModDialogTitle],
AllowMultiple = true,
});
foreach (var folder in result)
foreach (IStorageFolder folder in result)
{
AddMod(new DirectoryInfo(folder.Path.LocalPath));
}
@@ -317,7 +319,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public void DeleteAll()
{
foreach (var it in Mods) Delete(it, false);
foreach (ModModel it in Mods) Delete(it, false);
Mods.Clear();
OnPropertyChanged(nameof(ModCount));
Sort();