import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../app/app.dart'; import '../../../backend/backend.dart'; import '../../../core/utils/result.dart'; final settingsControllerProvider = AsyncNotifierProvider( SettingsController.new); class SettingsController extends AsyncNotifier { @override Future build() async { final result = await ref.read(settingsServiceProvider).getSettings(); return result is Success ? result.data : AppSettings.defaults; } Future saveSettings(AppSettings settings) async { await ref.read(settingsServiceProvider).updateSettings(settings); state = AsyncData(settings); ref.invalidate(appSettingsProvider); } Future clearCache() async { await ref.read(cacheServiceProvider).clear(); } Future exportJson() async { final result = await ref.read(settingsServiceProvider).exportSettingsToJson(); return result is Success ? result.data : '{}'; } Future importJson(String json) async { await ref.read(settingsServiceProvider).importSettingsFromJson(json); ref.invalidate(appSettingsProvider); ref.invalidateSelf(); } }