Songtext aus Datei-Tags, Warteschlangen-Aktionen, Kategorie-Cover im
Sperrbildschirm und ReplayGain - DB-Schema 6: lyrics + gain_db - Songtext bevorzugt lokalen Tag, Server nur als Rueckfall; Song-ID-Bug beim Lyrics-Aufruf behoben - "Als Naechstes spielen" / "Zur Warteschlange hinzufuegen" ohne Eingriff in Favoriten oder Wiedergabelisten - songToMediaItem nimmt eine Cover-Vorgabe: Sperrbildschirm zeigt das Kategorie-Cover - ReplayGain: Tags werden gelesen, laute Titel abgesenkt, abschaltbar Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011snPXPafPC5i87o68H14W7
This commit is contained in:
@@ -6,9 +6,11 @@ import 'package:shared_preferences/shared_preferences.dart';
|
||||
class AppSettings extends ChangeNotifier {
|
||||
static const _keyGroupCovers = 'gleiche_kategorie_gleiches_cover';
|
||||
static const _keyAutoPlayHeadphones = 'autoplay_kopfhoerer';
|
||||
static const _keyNormalizeVolume = 'gleiche_lautstaerke';
|
||||
|
||||
bool _groupCoversByCategory = true;
|
||||
bool _autoPlayOnHeadphones = false;
|
||||
bool _normalizeVolume = true;
|
||||
|
||||
/// "Gleiche Kategorie = gleiches Coverbild" — an: das Cover kommt von der
|
||||
/// ersten Kategorie des Songs, aus: jeder Song zeigt sein eigenes Bild.
|
||||
@@ -17,10 +19,15 @@ class AppSettings extends ChangeNotifier {
|
||||
/// Wiedergabe automatisch starten, sobald Kopfhörer verbunden werden.
|
||||
bool get autoPlayOnHeadphones => _autoPlayOnHeadphones;
|
||||
|
||||
/// "Gleiche Lautstärke": laute Titel werden anhand ihres ReplayGain-Tags
|
||||
/// auf das Niveau der leiseren abgesenkt.
|
||||
bool get normalizeVolume => _normalizeVolume;
|
||||
|
||||
Future<void> init() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
_groupCoversByCategory = prefs.getBool(_keyGroupCovers) ?? true;
|
||||
_autoPlayOnHeadphones = prefs.getBool(_keyAutoPlayHeadphones) ?? false;
|
||||
_normalizeVolume = prefs.getBool(_keyNormalizeVolume) ?? true;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -32,6 +39,14 @@ class AppSettings extends ChangeNotifier {
|
||||
await prefs.setBool(_keyGroupCovers, value);
|
||||
}
|
||||
|
||||
Future<void> setNormalizeVolume(bool value) async {
|
||||
if (_normalizeVolume == value) return;
|
||||
_normalizeVolume = value;
|
||||
notifyListeners();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setBool(_keyNormalizeVolume, value);
|
||||
}
|
||||
|
||||
Future<void> setAutoPlayOnHeadphones(bool value) async {
|
||||
if (_autoPlayOnHeadphones == value) return;
|
||||
_autoPlayOnHeadphones = value;
|
||||
|
||||
Reference in New Issue
Block a user