import 'package:flutter/foundation.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// Nutzer-Einstellungen, die die ganze App betreffen. Werden beim Start /// einmal geladen und bei jeder Änderung sofort gespeichert. class AppSettings extends ChangeNotifier { static const _keyGroupCovers = 'gleiche_kategorie_gleiches_cover'; static const _keyAutoPlayHeadphones = 'autoplay_kopfhoerer'; bool _groupCoversByCategory = true; bool _autoPlayOnHeadphones = false; /// "Gleiche Kategorie = gleiches Coverbild" — an: das Cover kommt von der /// ersten Kategorie des Songs, aus: jeder Song zeigt sein eigenes Bild. bool get groupCoversByCategory => _groupCoversByCategory; /// Wiedergabe automatisch starten, sobald Kopfhörer verbunden werden. bool get autoPlayOnHeadphones => _autoPlayOnHeadphones; Future init() async { final prefs = await SharedPreferences.getInstance(); _groupCoversByCategory = prefs.getBool(_keyGroupCovers) ?? true; _autoPlayOnHeadphones = prefs.getBool(_keyAutoPlayHeadphones) ?? false; notifyListeners(); } Future setGroupCoversByCategory(bool value) async { if (_groupCoversByCategory == value) return; _groupCoversByCategory = value; notifyListeners(); final prefs = await SharedPreferences.getInstance(); await prefs.setBool(_keyGroupCovers, value); } Future setAutoPlayOnHeadphones(bool value) async { if (_autoPlayOnHeadphones == value) return; _autoPlayOnHeadphones = value; notifyListeners(); final prefs = await SharedPreferences.getInstance(); await prefs.setBool(_keyAutoPlayHeadphones, value); } }