v2.36 — Sprint 1: Behebe Issues #1 (Zurück-Button), #5 (Ausgeloggt), #4 (Berechtigungen)

Issue #1: CloudScreen Zurück-Button — onZurueck Callback statt Navigator.pop()
- CloudScreen erhält VoidCallback? onZurueck Parameter
- Bei onZurueck != null → Callback (Tab-Wechsel in home_screen)
- Fallback: Navigator.pop(context) für Standalone-Nutzung

Issue #5: Token wird nur bei HTTP 401 gelöscht
- _tokenOnlinePruefen(): nur statusCode == 401 → false
- 5xx, andere Fehler, Netzwerkfehler → true (Token behalten)
- Verhindert Ausloggen bei temporären Server-Problemen

Issue #4: Android 13+ Berechtigungen beim App-Start
- main.dart: frageSpeicherZugriff() + POST_NOTIFICATIONS nach Auth-Init
- musik_scanner.dart: Permission-Check vor externen Ordnern in _sammleMusikPfade()

Build: ⏭️ (no APK)
This commit is contained in:
Dustin
2026-08-02 15:48:08 +02:00
parent 15993b1d0a
commit d555a7f146
5 changed files with 34 additions and 5 deletions
+5 -1
View File
@@ -69,7 +69,11 @@ class AuthService {
headers: authHeader,
)
.timeout(const Duration(seconds: 5));
return response.statusCode == 200;
if (response.statusCode == 200) return true;
// Nur bei explizitem 401 (abgelaufen/ungültig) den Token löschen.
// Bei 5xx, anderen Fehlern oder temporären Server-Problemen Token behalten.
if (response.statusCode == 401) return false;
return true;
} catch (_) {
// Bei Netzwerkfehler: Token lokal akzeptieren (Offline-Modus)
return true;
+4 -1
View File
@@ -135,8 +135,11 @@ class MusikScanner {
MeloLogger().fehler('scanner_intern_pfad', e);
}
// 2. Externe System-Ordner (nur Android)
// 2. Externe System-Ordner (nur Android, nur wenn Berechtigung vorhanden)
if (Platform.isAndroid) {
final hatZugriff = await frageSpeicherZugriff();
if (!hatZugriff) return pfade.toList();
final ordner = <String>[
'/storage/emulated/0/Music',
'/storage/emulated/0/Download',