feat: Backup session and restore on database error

This commit is contained in:
krille-chan 2023-12-31 10:03:07 +01:00
commit 2a5c9d0a62
No known key found for this signature in database
5 changed files with 178 additions and 18 deletions

View file

@ -19,6 +19,7 @@ import 'package:universal_html/html.dart' as html;
import 'package:url_launcher/url_launcher_string.dart';
import 'package:fluffychat/utils/client_manager.dart';
import 'package:fluffychat/utils/init_with_restore.dart';
import 'package:fluffychat/utils/localized_exception_extension.dart';
import 'package:fluffychat/utils/platform_infos.dart';
import 'package:fluffychat/utils/uia_request_manager.dart';
@ -314,6 +315,9 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
});
onLoginStateChanged[name] ??= c.onLoginStateChanged.stream.listen((state) {
final loggedInWithMultipleClients = widget.clients.length > 1;
if (state == LoginState.loggedOut) {
InitWithRestoreExtension.deleteSessionBackup(name);
}
if (loggedInWithMultipleClients && state != LoginState.loggedIn) {
_cancelSubs(c.clientName);
widget.clients.remove(c);