v2.51.1 — Technik ausgelagert: Erweitert-Sektion (Logs, Diagnose, Entwickler, Scanner)

## Erweitert
- Neuer ErweitertScreen (lib/screens/erweitert_screen.dart): Logs, Diagnosedaten-Toggle, Entwickler, Musik scannen
- Neuer LogViewerScreen: In-Memory-Logbuch mit Kategorie-Filter (MeloLogger bekommt Anzeige-Puffer, der beim Senden nicht geleert wird)
- Neuer EntwicklerScreen: Version, Session-ID, DB-Songzahl, Server-URLs, Test-Log senden
- Einstellungen-Screen: 'Erweitert'-Sektion eingebaut, Diagnose-Toggle dorthin verschoben, Version auf 2.51

## Einstellungen
- 'Server verbinden' → 'Musikserver' umbenannt
- Abmelden/Info/Cloud Sync unverändert
This commit is contained in:
Dustin
2026-08-05 07:54:22 +02:00
parent 0439ce3ed2
commit f886b0a42e
3 changed files with 609 additions and 42 deletions
+15
View File
@@ -18,11 +18,21 @@ class MeloLogger {
String _sessionId = '';
String _version = '2.7';
final List<Map<String, dynamic>> _eintraege = [];
// Anzeige-Puffer: bleibt erhalten, auch wenn Einträge gesendet wurden
// (für den Log-Viewer unter „Mehr → Erweitert → Logs“).
final List<Map<String, dynamic>> _anzeigeEintraege = [];
int _logId = 0;
Timer? _flushTimer;
String get _serverUrl => '${AppConfig.logUrl}/api/log';
/// Alle bisher aufgezeichneten Log-Einträge (nur Anzeige, nie geleert).
List<Map<String, dynamic>> get anzeigeEintraege =>
List.unmodifiable(_anzeigeEintraege);
/// Aktuelle Session-ID (für den Entwickler-Screen).
String get sessionId => _sessionId;
void init(String version) {
if (_initialisiert) return;
_initialisiert = true;
@@ -63,6 +73,11 @@ class MeloLogger {
'aktion': aktion,
'details': details ?? {},
});
// Anzeige-Puffer (nie leeren — nur älteste verwerfen)
if (_anzeigeEintraege.length >= _maxEintraege) {
_anzeigeEintraege.removeAt(0);
}
_anzeigeEintraege.add(_eintraege.last);
}
void aktion(String name, [Map<String, dynamic>? details]) {