using AvParser.Core.Settings;
using AvParser.UI.Services;
using ReactiveUI.Primitives.Signals;
namespace AvParser.UI.Tests.Fakes;
/// Theme service with no Avalonia Application behind it.
internal sealed class FakeThemeService(AppTheme initial = AppTheme.System) : IThemeService, IDisposable
{
private readonly BehaviorSignal _current = new(initial);
public AppTheme Current => _current.Value;
public IObservable Changes => _current;
public void Apply(AppTheme theme)
{
if (theme == _current.Value)
{
return;
}
_current.OnNext(theme);
}
public void Dispose() => _current.Dispose();
}