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
+9 -2
View File
@@ -13,7 +13,8 @@ import '../services/melo_logger.dart';
/// Playlisten, Favoriten, Auto-Sync, Persistent Login, Benutzerdefinierte Namen
class CloudScreen extends StatefulWidget {
final CloudService cloud;
const CloudScreen({super.key, required this.cloud});
final VoidCallback? onZurueck;
const CloudScreen({super.key, required this.cloud, this.onZurueck});
@override
State<CloudScreen> createState() => _CloudScreenState();
@@ -590,7 +591,13 @@ class _CloudScreenState extends State<CloudScreen> {
backgroundColor: MeloTheme.dunkel1,
leading: IconButton(
icon: const Icon(Icons.arrow_back, color: Colors.white, size: 22),
onPressed: () => Navigator.pop(context),
onPressed: () {
if (widget.onZurueck != null) {
widget.onZurueck!();
} else {
Navigator.pop(context);
}
},
),
title: const Row(
children: [