diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 301362a..9b75492 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -25,6 +25,7 @@ import '../services/auth_service.dart'; import '../services/sync_service.dart'; import '../services/realtime_sync_service.dart'; import '../config/app_config.dart'; +import '../widgets/navidrome_browser.dart'; class MeloHome extends StatefulWidget { const MeloHome({super.key}); @@ -351,16 +352,22 @@ class _MeloHomeState extends State with WidgetsBindingObserver { TextButton(onPressed: () => Navigator.pop(ctx), child: const Text('Schließen')), if (verbunden) TextButton( - onPressed: () { + onPressed: () async { Navigator.pop(ctx); - _zeigeServerBrowser(); + await _vm.navidrome.loescheZugangsdaten(); + _vm.navidromeAlben.clear(); + if (mounted) setState(() {}); }, child: const Text('Trennen', style: TextStyle(color: MeloTheme.textSekundaer)), ), TextButton( onPressed: () { Navigator.pop(ctx); - if (!verbunden) _zeigeServerBrowser(); + if (verbunden) { + _zeigeNavidromeBrowser(); + } else { + _zeigeServerBrowser(); + } }, child: Text( verbunden ? 'Browser öffnen' : 'Verbinden', @@ -1620,5 +1627,21 @@ class _MeloHomeState extends State with WidgetsBindingObserver { ), ); } + + /// BottomSheet für den Navidrome-Browser + void _zeigeNavidromeBrowser() { + showModalBottomSheet( + context: context, + backgroundColor: MeloTheme.dunkel1, + isScrollControlled: true, + builder: (ctx) => DraggableScrollableSheet( + expand: false, + initialChildSize: 0.7, + minChildSize: 0.4, + maxChildSize: 0.95, + builder: (_, controller) => NavidromeBrowser(vm: _vm), + ), + ); + } }