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:
@@ -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]) {
|
||||
|
||||
Reference in New Issue
Block a user