Clean up platform checks in update service

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

@ -26,7 +26,7 @@
<PackageReference Include="Material.Avalonia" Version="3.6.0" /> <PackageReference Include="Material.Avalonia" Version="3.6.0" />
<PackageReference Include="Material.Icons.Avalonia" Version="2.1.9" /> <PackageReference Include="Material.Icons.Avalonia" Version="2.1.9" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" /> <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>
<ItemGroup> <ItemGroup>

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