Feature: Login-Effekte pro Person (Akzentfarbe + Sound + Begruessung)
- UserEffekt: Baka = rot + Fanfare, Tinker = tuerkis + Chime, Standard-Ping - MeloTheme: dynamische Akzentfarbe via ValueNotifier (Theme wechselt live) - Ausloeser: App-Start (wenn Token vorhanden) + nach erfolgreichem Login - Assets: 3 kurze WAV-Sounds (assets/sounds/) - Web: /whoami-Endpoint (Caddy) + Willkommens-Banner auf baka-net.de
This commit is contained in:
@@ -6,6 +6,8 @@ import '../viewmodels/melo_home_viewmodel.dart';
|
||||
import '../models/song.dart';
|
||||
import '../models/playlist.dart';
|
||||
import '../utils/farb_theme.dart';
|
||||
import '../utils/user_effekte.dart';
|
||||
import '../services/cloud_service.dart';
|
||||
import '../widgets/mini_player.dart';
|
||||
import '../widgets/melo_header.dart';
|
||||
import '../widgets/statistik_card.dart';
|
||||
@@ -18,7 +20,6 @@ import 'cloud_screen.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import '../widgets/cloud_einstellungen.dart';
|
||||
import '../services/cloud_service.dart';
|
||||
import '../config/app_config.dart';
|
||||
|
||||
class MeloHome extends StatefulWidget {
|
||||
@@ -50,6 +51,15 @@ class _MeloHomeState extends State<MeloHome> {
|
||||
setState(() => _nutzer = n);
|
||||
_vm.setzeNutzer(n);
|
||||
}
|
||||
// Login-Effekt beim App-Start: nur wenn ein Token vorhanden ist (eingeloggt)
|
||||
final ok = await CloudService().restoreLogin();
|
||||
if (ok && mounted) {
|
||||
UserEffekt.anwenden(_nutzer);
|
||||
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
|
||||
content: Text(UserEffekt.fuer(_nutzer).begruessung),
|
||||
duration: const Duration(seconds: 3),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
void _zeigeProfil() {
|
||||
@@ -153,6 +163,13 @@ class _MeloHomeState extends State<MeloHome> {
|
||||
await p.setString('melo_nutzer', name);
|
||||
if (mounted) setState(() => _nutzer = name);
|
||||
_vm.setzeNutzer(name);
|
||||
// Login-Effekt: Akzentfarbe + Sound + Begrüßung pro Person
|
||||
UserEffekt.anwenden(name);
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
|
||||
content: Text(UserEffekt.fuer(name).begruessung),
|
||||
duration: const Duration(seconds: 3)));
|
||||
}
|
||||
} else {
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
|
||||
|
||||
Reference in New Issue
Block a user