fix: Better handling leave broken room on join

This commit is contained in:
Christian Pauly 2020-11-05 14:00:06 +01:00
parent 388598ef67
commit cbae6b9c84
2 changed files with 8 additions and 8 deletions

View File

@ -227,6 +227,8 @@ class LeftRoomUpdate extends SyncRoomUpdate {
TimelineUpdate timeline; TimelineUpdate timeline;
List<BasicRoomEvent> accountData; List<BasicRoomEvent> accountData;
LeftRoomUpdate();
LeftRoomUpdate.fromJson(Map<String, dynamic> json) { LeftRoomUpdate.fromJson(Map<String, dynamic> json) {
state = (json['state'] != null && json['state']['events'] != null) state = (json['state'] != null && json['state']['events'] != null)
? (json['state']['events'] as List) ? (json['state']['events'] as List)

View File

@ -33,7 +33,6 @@ import 'utils/logs.dart';
import 'utils/markdown.dart'; import 'utils/markdown.dart';
import 'utils/matrix_file.dart'; import 'utils/matrix_file.dart';
import 'utils/matrix_localizations.dart'; import 'utils/matrix_localizations.dart';
import 'utils/room_update.dart';
import 'utils/states_map.dart'; import 'utils/states_map.dart';
enum PushRuleState { notify, mentions_only, dont_notify } enum PushRuleState { notify, mentions_only, dont_notify }
@ -812,13 +811,12 @@ class Room {
if (removeIfNotFound && if (removeIfNotFound &&
[MatrixError.M_NOT_FOUND, MatrixError.M_UNKNOWN] [MatrixError.M_NOT_FOUND, MatrixError.M_UNKNOWN]
.contains(exception.error)) { .contains(exception.error)) {
await client.database?.forgetRoom(client.id, id); await _handleFakeSync(
client.onRoomUpdate.add( SyncUpdate()
RoomUpdate( ..rooms = (RoomsUpdate()
id: id, ..leave = {
membership: Membership.leave, '$id': (LeftRoomUpdate()),
notification_count: 0, }),
highlight_count: 0),
); );
} }
rethrow; rethrow;