feat: persistentes Auth-Log für Logout-Diagnose (M1)
Neuer AuthLog schreibt Login-Status-Wechsel und SDK-Warnungen/-Fehler
in eine Datei im App-Support-Verzeichnis, die einen Neustart übersteht.
Zusätzlich werden alle drei bewusst ausgelösten Logout-Buttons geloggt,
damit sich künftig unterscheiden lässt: Nutzer-Logout vs. vom SDK
automatisch ausgelöster Logout (Soft-Logout/M_UNKNOWN_TOKEN).
Reiner Logging-Zusatz, keine Verhaltensänderung – erster Schritt laut
ROADMAP M1 ("Erst Logging an allen Logout-Pfaden einbauen").
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
@@ -10,6 +11,7 @@ import 'package:path/path.dart' as p;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:sqflite/sqflite.dart' as sqflite_native;
|
||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
||||
import 'package:pyramid/core/auth_log.dart';
|
||||
import 'package:pyramid/core/voip_manager.dart';
|
||||
|
||||
final matrixClientProvider = FutureProvider<Client>((ref) async {
|
||||
@@ -63,11 +65,23 @@ final matrixClientProvider = FutureProvider<Client>((ref) async {
|
||||
),
|
||||
);
|
||||
|
||||
// Persistiert Warnungen/Fehler des SDK sowie jeden Login-Status-Wechsel,
|
||||
// damit ein unerwarteter Logout (z. B. Soft-Logout vom Server) auch nach
|
||||
// einem App-Neustart noch nachvollziehbar ist (ROADMAP M1, Uta-Logout-Bug).
|
||||
Logs().onLog = (event) {
|
||||
if (event.level.index <= Level.warning.index) {
|
||||
unawaited(AuthLog.write('[SDK ${event.level.name}] ${event.toFormattedString()}'));
|
||||
}
|
||||
};
|
||||
client.onLoginStateChanged.stream.listen((state) {
|
||||
unawaited(AuthLog.write('LoginState -> ${state.name}'));
|
||||
});
|
||||
|
||||
await client.init(
|
||||
waitForFirstSync: false,
|
||||
waitUntilLoadCompletedLoaded: false,
|
||||
);
|
||||
|
||||
|
||||
// Re-use or create singleton instance
|
||||
try {
|
||||
PyramidVoipManager.instance.client;
|
||||
|
||||
Reference in New Issue
Block a user