|
@@ -34,7 +34,8 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
private bool _installOptifineVisible = false;
|
|
private bool _installOptifineVisible = false;
|
|
private bool _installForgeOptifineVisible = false;
|
|
private bool _installForgeOptifineVisible = false;
|
|
private bool _downloadJava = false;
|
|
private bool _downloadJava = false;
|
|
- private bool _isControlsEnabled = true;
|
|
|
|
|
|
+ private bool _isDownloaderTabControlsEnabled = true;
|
|
|
|
+ private bool _isManagerTabControlsEnabled = true;
|
|
private long _progress = 0;
|
|
private long _progress = 0;
|
|
private long _maxprogressvalue = 100;
|
|
private long _maxprogressvalue = 100;
|
|
private string _downloadingFileName = "No active downloads";
|
|
private string _downloadingFileName = "No active downloads";
|
|
@@ -67,7 +68,8 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
|
|
|
|
public VersionsDownloaderViewModel()
|
|
public VersionsDownloaderViewModel()
|
|
{
|
|
{
|
|
- IsControlsEnabled = false;
|
|
|
|
|
|
+ IsDownloaderTabControlsEnabled = false;
|
|
|
|
+ IsManagerTabControlsEnabled = false;
|
|
|
|
|
|
this.PropertyChanged += OnFilteredVersionPropertyChanged;
|
|
this.PropertyChanged += OnFilteredVersionPropertyChanged;
|
|
this.PropertyChanged += OnDownloadedVersionPropertyChanged;
|
|
this.PropertyChanged += OnDownloadedVersionPropertyChanged;
|
|
@@ -93,25 +95,36 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
_downloadedVersionTree ??= new();
|
|
_downloadedVersionTree ??= new();
|
|
DownloadedVersionsDictionary ??= new();
|
|
DownloadedVersionsDictionary ??= new();
|
|
|
|
|
|
- try
|
|
|
|
|
|
+ Task.Run(async () =>
|
|
{
|
|
{
|
|
- Task.Run(async () =>
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- _logger.Debug("Getting versionManifest.json");
|
|
|
|
- _versionManifest = await Downloader.DownloadAndDeserializeJsonData<VersionManifest>("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json") ?? new();
|
|
|
|
- _modpackVersions.AddRange(await Downloader.DownloadAndDeserializeJsonData<List<Modpack>>("https://files.veloe.link/launcher/modpacks.json") ?? new());
|
|
|
|
- _modpackVersionsAsVersion = _modpackVersions.Select(v=> new Entity.VersionManifest.Version() { Id = v.Name, Type = "modpack", ComplianceLevel = v.Revision}).ToList();
|
|
|
|
- _logger.Debug("Updating available versions to download.");
|
|
|
|
- UpdateList();
|
|
|
|
- SearchGameFolderForVersions();
|
|
|
|
- IsControlsEnabled = true;
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- catch (Exception ex)
|
|
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ _logger.Debug("Getting versionManifest.json");
|
|
|
|
+ _versionManifest = await Downloader.DownloadAndDeserializeJsonData<VersionManifest>("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json") ?? new();
|
|
|
|
+ _modpackVersions.AddRange(await Downloader.DownloadAndDeserializeJsonData<List<Modpack>>("https://files.veloe.link/launcher/modpacks.json") ?? new());
|
|
|
|
+ _modpackVersionsAsVersion = _modpackVersions.Select(v=> new Entity.VersionManifest.Version() { Id = v.Name, Type = "modpack", ComplianceLevel = v.Revision}).ToList();
|
|
|
|
+ _logger.Debug("Updating available versions to download.");
|
|
|
|
+ UpdateList();
|
|
|
|
+ IsDownloaderTabControlsEnabled = true;
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ OpenErrorWindow(ex);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Task.Run(() =>
|
|
{
|
|
{
|
|
- OpenErrorWindow(ex);
|
|
|
|
- }
|
|
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ SearchGameFolderForVersions();
|
|
|
|
+ IsManagerTabControlsEnabled = true;
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ OpenErrorWindow(ex);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
public Entity.VersionManifest.Version? FilteredVersion
|
|
public Entity.VersionManifest.Version? FilteredVersion
|
|
@@ -273,10 +286,16 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
set => this.RaiseAndSetIfChanged(ref _downloadJava, value);
|
|
set => this.RaiseAndSetIfChanged(ref _downloadJava, value);
|
|
}
|
|
}
|
|
|
|
|
|
- public bool IsControlsEnabled
|
|
|
|
|
|
+ public bool IsDownloaderTabControlsEnabled
|
|
|
|
+ {
|
|
|
|
+ get => _isDownloaderTabControlsEnabled;
|
|
|
|
+ set => this.RaiseAndSetIfChanged(ref _isDownloaderTabControlsEnabled, value);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public bool IsManagerTabControlsEnabled
|
|
{
|
|
{
|
|
- get => _isControlsEnabled;
|
|
|
|
- set => this.RaiseAndSetIfChanged(ref _isControlsEnabled, value);
|
|
|
|
|
|
+ get => _isManagerTabControlsEnabled;
|
|
|
|
+ set => this.RaiseAndSetIfChanged(ref _isManagerTabControlsEnabled, value);
|
|
}
|
|
}
|
|
|
|
|
|
private async void OnFilteredVersionPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
|
private async void OnFilteredVersionPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
|
@@ -394,7 +413,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
await Task.Run(async () => await Downloader.StartDownloadModpack(
|
|
await Task.Run(async () => await Downloader.StartDownloadModpack(
|
|
value => DownloadingFileName = value,
|
|
value => DownloadingFileName = value,
|
|
value => TasksStatusLine = value,
|
|
value => TasksStatusLine = value,
|
|
- value => IsControlsEnabled = value,
|
|
|
|
|
|
+ value => IsDownloaderTabControlsEnabled = value,
|
|
value => Progress = value,
|
|
value => Progress = value,
|
|
FilteredVersions,
|
|
FilteredVersions,
|
|
_selectedModpack,
|
|
_selectedModpack,
|
|
@@ -415,7 +434,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
await Downloader.StartDownload(
|
|
await Downloader.StartDownload(
|
|
value => DownloadingFileName = value,
|
|
value => DownloadingFileName = value,
|
|
value => TasksStatusLine = value,
|
|
value => TasksStatusLine = value,
|
|
- value => IsControlsEnabled = value,
|
|
|
|
|
|
+ value => IsDownloaderTabControlsEnabled = value,
|
|
value => Progress = value,
|
|
value => Progress = value,
|
|
versionJson,
|
|
versionJson,
|
|
_tokenSource.Token,
|
|
_tokenSource.Token,
|
|
@@ -438,7 +457,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
|
|
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- IsControlsEnabled = false;
|
|
|
|
|
|
+ IsManagerTabControlsEnabled = false;
|
|
DownloadedVersionTree.Clear();
|
|
DownloadedVersionTree.Clear();
|
|
DownloadedVersionTree = new();
|
|
DownloadedVersionTree = new();
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
@@ -446,7 +465,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
|
|
|
|
if (value is null)
|
|
if (value is null)
|
|
{
|
|
{
|
|
- IsControlsEnabled = true;
|
|
|
|
|
|
+ IsManagerTabControlsEnabled = true;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -754,7 +773,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
finally
|
|
finally
|
|
{
|
|
{
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
- IsControlsEnabled = true;
|
|
|
|
|
|
+ IsManagerTabControlsEnabled = true;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -764,7 +783,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
await Task.Run(() => {
|
|
await Task.Run(() => {
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- IsControlsEnabled = false;
|
|
|
|
|
|
+ IsManagerTabControlsEnabled = false;
|
|
DownloadedVersionTree.Clear();
|
|
DownloadedVersionTree.Clear();
|
|
DownloadedVersionTree = new();
|
|
DownloadedVersionTree = new();
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
this.RaisePropertyChanged(nameof(DownloadedVersionTree));
|
|
@@ -873,7 +892,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
finally
|
|
finally
|
|
{
|
|
{
|
|
SearchGameFolderForVersions();
|
|
SearchGameFolderForVersions();
|
|
- IsControlsEnabled = true;
|
|
|
|
|
|
+ IsManagerTabControlsEnabled = true;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|