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(); }