Clean up platform checks in update service

pull/1240/head
Tyrrrz 4 weeks ago
parent 8380e88744
commit 3b3423dd9b

@ -26,7 +26,7 @@
<PackageReference Include="Material.Avalonia" Version="3.6.0" />
<PackageReference Include="Material.Icons.Avalonia" Version="2.1.9" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Onova" Version="2.6.11" />
<PackageReference Include="Onova" Version="2.6.12" />
</ItemGroup>
<ItemGroup>

@ -9,18 +9,20 @@ namespace DiscordChatExporter.Gui.Services;
public class UpdateService(SettingsService settingsService) : IDisposable
{
private readonly IUpdateManager _updateManager = new UpdateManager(
new GithubPackageResolver(
"Tyrrrz",
"DiscordChatExporter",
// Examples:
// DiscordChatExporter.win-arm64.zip
// DiscordChatExporter.win-x64.zip
// DiscordChatExporter.linux-x64.zip
$"DiscordChatExporter.{RuntimeInformation.RuntimeIdentifier}.zip"
),
new ZipPackageExtractor()
);
private readonly IUpdateManager? _updateManager = OperatingSystem.IsWindows()
? new UpdateManager(
new GithubPackageResolver(
"Tyrrrz",
"DiscordChatExporter",
// Examples:
// DiscordChatExporter.win-arm64.zip
// DiscordChatExporter.win-x64.zip
// DiscordChatExporter.linux-x64.zip
$"DiscordChatExporter.{RuntimeInformation.RuntimeIdentifier}.zip"
),
new ZipPackageExtractor()
)
: null;
private Version? _updateVersion;
private bool _updatePrepared;
@ -28,6 +30,9 @@ public class UpdateService(SettingsService settingsService) : IDisposable
public async ValueTask<Version?> CheckForUpdatesAsync()
{
if (_updateManager is null)
return null;
if (!settingsService.IsAutoUpdateEnabled)
return null;
@ -37,6 +42,9 @@ public class UpdateService(SettingsService settingsService) : IDisposable
public async ValueTask PrepareUpdateAsync(Version version)
{
if (_updateManager is null)
return;
if (!settingsService.IsAutoUpdateEnabled)
return;
@ -57,11 +65,10 @@ public class UpdateService(SettingsService settingsService) : IDisposable
public void FinalizeUpdate(bool needRestart)
{
if (!settingsService.IsAutoUpdateEnabled)
if (_updateManager is null)
return;
// Onova only works on Windows currently
if (!OperatingSystem.IsWindows())
if (!settingsService.IsAutoUpdateEnabled)
return;
if (_updateVersion is null || !_updatePrepared || _updaterLaunched)
@ -82,5 +89,5 @@ public class UpdateService(SettingsService settingsService) : IDisposable
}
}
public void Dispose() => _updateManager.Dispose();
public void Dispose() => _updateManager?.Dispose();
}

Loading…
Cancel
Save