diff --git a/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs b/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs index bf17b5522e..f6d620a534 100644 --- a/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs +++ b/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs @@ -30,11 +30,14 @@ namespace Avalonia.FreeDesktop private async Task TryGetInitialValuesAsync() { - _themeVariant = await TryGetThemeVariantAsync(); - _accentColor = await TryGetAccentColorAsync(); - _lastColorValues = BuildPlatformColorValues(); - if (_lastColorValues is not null) - Dispatcher.UIThread.Post(() => OnColorValuesChanged(_lastColorValues)); + if (_settings is { } settings) + { + _themeVariant = await TryGetThemeVariantAsync(settings); + _accentColor = await TryGetAccentColorAsync(settings); + _lastColorValues = BuildPlatformColorValues(); + if (_lastColorValues is not null) + Dispatcher.UIThread.Post(() => OnColorValuesChanged(_lastColorValues)); + } } internal void OnRequestDefaultThemeVariant() @@ -42,17 +45,17 @@ namespace Avalonia.FreeDesktop _ = TryGetInitialValuesAsync(); } - private async Task TryGetThemeVariantAsync() + private static async Task TryGetThemeVariantAsync(Settings settings) { try { - var version = await _settings!.GetVersionAsync(); + var version = await settings.GetVersionAsync(); VariantValue value; if (version >= 2) - value = await _settings!.ReadOneAsync("org.freedesktop.appearance", "color-scheme"); + value = await settings.ReadOneAsync("org.freedesktop.appearance", "color-scheme"); else // Unpack nested Variant - value = (await _settings!.ReadAsync("org.freedesktop.appearance", "color-scheme")).GetVariantValue(); + value = (await settings.ReadAsync("org.freedesktop.appearance", "color-scheme")).GetVariantValue(); return ToColorScheme(value.GetUInt32()); } catch (DBusExceptionBase) @@ -61,16 +64,16 @@ namespace Avalonia.FreeDesktop } } - private async Task TryGetAccentColorAsync() + private static async Task TryGetAccentColorAsync(Settings settings) { try { - var version = await _settings!.GetVersionAsync(); + var version = await settings.GetVersionAsync(); VariantValue value; if (version >= 2) - value = await _settings!.ReadOneAsync("org.freedesktop.appearance", "accent-color"); + value = await settings.ReadOneAsync("org.freedesktop.appearance", "accent-color"); else - value = await _settings!.ReadAsync("org.freedesktop.appearance", "accent-color"); + value = await settings.ReadAsync("org.freedesktop.appearance", "accent-color"); return ToAccentColor(value); } catch (DBusExceptionBase)