38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using Windows.UI.ViewManagement;
|
|
using Wino.Core.Domain.Interfaces;
|
|
|
|
#if NET8_0
|
|
using Microsoft.UI.Xaml;
|
|
#else
|
|
using Windows.UI.Xaml;
|
|
#endif
|
|
|
|
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, ElementTheme.Default);
|
|
|
|
if (currentTheme == ElementTheme.Default)
|
|
return uiSettings.GetColorValue(UIColorType.Background).ToString() == "#FF000000";
|
|
else
|
|
return currentTheme == ElementTheme.Dark;
|
|
}
|
|
}
|
|
}
|