using Windows.UI.ViewManagement; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Interfaces; namespace Wino.Core.UWP.Services { public class UnderlyingThemeService : IUnderlyingThemeService { public const string SelectedAppThemeKey = nameof(SelectedAppThemeKey); private readonly UISettings uiSettings = new UISettings(); private readonly IConfigurationService _configurationService; public UnderlyingThemeService(IConfigurationService configurationService) { _configurationService = configurationService; } // This should not rely on application window to be present. // Check theme from the settings, rely on UISettings background color if Default. public bool IsUnderlyingThemeDark() { var currentTheme = _configurationService.Get(SelectedAppThemeKey, ApplicationElementTheme.Default); if (currentTheme == ApplicationElementTheme.Default) return uiSettings.GetColorValue(UIColorType.Background).ToString() == "#FF000000"; else return currentTheme == ApplicationElementTheme.Dark; } } }