import "package:flutter/foundation.dart"; import "settings_provider.dart"; class ThemeProvider extends ChangeNotifier { ThemeProvider(this._settingsProvider) : _currentTheme = _settingsProvider.settings.theme { _settingsProvider.addListener(_onSettingsChanged); } final SettingsProvider _settingsProvider; late String _currentTheme; String get currentTheme => _currentTheme; bool get isDark => _currentTheme == "dark" || _currentTheme == "dark-ansi"; void _onSettingsChanged() { if (_currentTheme != _settingsProvider.settings.theme) { _currentTheme = _settingsProvider.settings.theme; notifyListeners(); } } Future setTheme(String themeName) async { await _settingsProvider.updateTheme(themeName); _currentTheme = themeName; notifyListeners(); } @override void dispose() { _settingsProvider.removeListener(_onSettingsChanged); super.dispose(); } }