v2.52.4 — Einstellungen (F4): Auto-Sync-Intervall, Sleep-Timer-Default, Wiedergabegeschwindigkeit, Akzentfarbe, Storage-Info
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:just_audio/just_audio.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'farb_theme.dart';
|
||||
|
||||
/// Login-Effekte: Pro Person eigener Akzent, Willkommens-Sound und Begrüßung.
|
||||
@@ -39,13 +40,35 @@ class UserEffekt {
|
||||
return standard;
|
||||
}
|
||||
|
||||
/// Key der per-User-Akzentfarbe in den SharedPreferences.
|
||||
static String akzentKey(String? user) =>
|
||||
'akzent_farbe_${(user ?? '').toLowerCase().trim()}';
|
||||
|
||||
/// '#RRGGBB' (oder 'RRGGBB') → Color; null bei ungültigem Format.
|
||||
static Color? farbeAusHex(String? hex) {
|
||||
if (hex == null) return null;
|
||||
final h = hex.replaceFirst('#', '').trim();
|
||||
if (h.length != 6) return null;
|
||||
final v = int.tryParse(h, radix: 16);
|
||||
if (v == null) return null;
|
||||
return Color(0xFF000000 | v);
|
||||
}
|
||||
|
||||
/// Setzt die Akzentfarbe (Thema wechselt live) und spielt den Sound ab.
|
||||
/// Die in den Einstellungen gespeicherte Akzentfarbe
|
||||
/// (`akzent_farbe_<user>`, F4) hat Vorrang vor der Standard-Farbe des Users.
|
||||
static Future<void> anwenden(String? user) async {
|
||||
final e = fuer(user);
|
||||
MeloTheme.akzent = e.akzent;
|
||||
var farbe = fuer(user).akzent;
|
||||
try {
|
||||
final p = await SharedPreferences.getInstance();
|
||||
farbe = farbeAusHex(p.getString(akzentKey(user))) ?? farbe;
|
||||
} catch (_) {
|
||||
// Prefs-Fehler ignorieren — Standard-Akzent bleibt
|
||||
}
|
||||
MeloTheme.akzent = farbe;
|
||||
try {
|
||||
final p = AudioPlayer();
|
||||
await p.setAsset(e.soundAsset);
|
||||
await p.setAsset(fuer(user).soundAsset);
|
||||
unawaited(p.play());
|
||||
// Player nach dem Abspielen sauber freigeben (kein Memory-Leak)
|
||||
Future.delayed(const Duration(seconds: 4), () {
|
||||
|
||||
Reference in New Issue
Block a user