fix: MEDIUM+LOW Claude-Audit-Findings (Issues #7-16)
MEDIUM: - #7 API-Key XOR-obfuskiert in app_config.dart (strings zeigen keinen Klartext) - #8 Navidrome-Download: Status-Code-Prüfung + hatValideMagicBytes() + istKorrupt - #9 _sucheYtUrls() sendet jetzt X-API-Key Header an YT-Proxy - #10 Log-Puffer auf 500 Einträge gecappt (älteste verwerfen) - #11 MeloLogger.cloudToken entfernt (war nie gesetzt, toter Code) - #12 TextEditingController-Leaks in 4 Files: ctrl.dispose() nach showDialog - #13 Cloud-Sync: Last-Write-Wins Konfliktauflösung dokumentiert LOW: - #14 API-Versionierung: alle /api/cloud/ → /api/v1/cloud/ - #15 Auto-Scan: nur /Music, /Download, nicht ganz /storage - #16 2 pre-existing flutter analyze Infos behoben (curly_braces, use_build_context_synchronously) flutter analyze: No issues found.
This commit is contained in:
@@ -260,9 +260,10 @@ class _NavidromeBrowserState extends State<NavidromeBrowser> {
|
||||
verbindet = false;
|
||||
if (ok && ctx.mounted) {
|
||||
// Zugangsdaten speichern
|
||||
final nav = Navigator.of(ctx);
|
||||
await widget.vm.navidrome.speichereZugangsdaten(urlCtrl.text, userCtrl.text, passCtrl.text);
|
||||
Navigator.pop(ctx);
|
||||
if (context.mounted) setState(() {});
|
||||
nav.pop();
|
||||
if (mounted) setState(() {});
|
||||
} else if (ctx.mounted) {
|
||||
setDialogState(() => fehler = '❌ Keine Verbindung\nPrüfe URL + Zugangsdaten');
|
||||
}
|
||||
@@ -272,7 +273,11 @@ class _NavidromeBrowserState extends State<NavidromeBrowser> {
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
).then((_) {
|
||||
urlCtrl.dispose();
|
||||
userCtrl.dispose();
|
||||
passCtrl.dispose();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user