YouTube-Tab: Server-User brauchen keine eigene Baka-Anmeldung mehr
Server-User (Dustin, Baka, Tinker) melden sich beim Öffnen des YouTube-Bereichs automatisch im Hintergrund mit ihren Navidrome- Zugangsdaten beim Baka-Konto an (BakaAuth.autoAnmelden) — die manuelle Anmeldung bleibt nur für Gäste sichtbar. Schlägt die Auto-Anmeldung fehl, gibt es einen Rückfallweg zur manuellen Anmeldung, statt den User auszusperren. Login-Buttons vergrößert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcDiyJdVRqh1TtJk5JiabX
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f0313724d4
commit
f604dc7635
@@ -6,6 +6,7 @@ import 'package:provider/provider.dart';
|
||||
import '../library/database.dart';
|
||||
import '../library/library_service.dart';
|
||||
import '../services/baka_auth.dart';
|
||||
import '../services/download_service.dart';
|
||||
import '../services/media_store.dart';
|
||||
import '../services/yt_download_service.dart';
|
||||
import '../services/yt_search_service.dart';
|
||||
@@ -25,6 +26,31 @@ class YoutubeSearchScreen extends StatefulWidget {
|
||||
class _YoutubeSearchScreenState extends State<YoutubeSearchScreen> {
|
||||
final _query = TextEditingController();
|
||||
|
||||
/// Server-User (siehe _YouTubeBereich in downloads_screen.dart) brauchen
|
||||
/// hier keinen Anmelde-Hinweis — die Anmeldung passiert im Hintergrund.
|
||||
bool _serverUser = false;
|
||||
|
||||
/// Die automatische Anmeldung ist fehlgeschlagen — dann bleibt der
|
||||
/// Hinweis auf die manuelle Anmeldung (siehe Download-Tab) sichtbar.
|
||||
bool _autoLoginFehlgeschlagen = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_pruefeServerUser();
|
||||
}
|
||||
|
||||
Future<void> _pruefeServerUser() async {
|
||||
final nav = context.read<DownloadService>().navidrome;
|
||||
final auth = context.read<BakaAuth>();
|
||||
final ergebnis = await pruefeServerUser(nav, auth);
|
||||
if (!mounted) return;
|
||||
setState(() {
|
||||
_serverUser = ergebnis.serverUser;
|
||||
_autoLoginFehlgeschlagen = ergebnis.autoLoginFehlgeschlagen;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_query.dispose();
|
||||
@@ -42,6 +68,8 @@ class _YoutubeSearchScreenState extends State<YoutubeSearchScreen> {
|
||||
Widget build(BuildContext context) {
|
||||
final auth = context.watch<BakaAuth>();
|
||||
final suche = context.watch<YtSearchService>();
|
||||
final zugriffOk =
|
||||
auth.istAngemeldet || (_serverUser && !_autoLoginFehlgeschlagen);
|
||||
|
||||
return SafeArea(
|
||||
child: Column(
|
||||
@@ -69,7 +97,7 @@ class _YoutubeSearchScreenState extends State<YoutubeSearchScreen> {
|
||||
],
|
||||
),
|
||||
),
|
||||
if (!auth.istAngemeldet)
|
||||
if (!zugriffOk)
|
||||
const Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 4),
|
||||
child: Text(
|
||||
|
||||
Reference in New Issue
Block a user