From 42406dd36007012f7d5a7aa3e8fd84a650132466 Mon Sep 17 00:00:00 2001 From: Kelrap Date: Mon, 3 Jun 2024 14:21:18 -0400 Subject: [PATCH] Minor fixes --- .../extensions/pangea_room_extension.dart | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/lib/pangea/extensions/pangea_room_extension.dart b/lib/pangea/extensions/pangea_room_extension.dart index dd5635fbe..bd996bc5e 100644 --- a/lib/pangea/extensions/pangea_room_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension.dart @@ -813,21 +813,26 @@ extension PangeaRoom on Room { } Future archive() async { - final participants = await requestParticipants(); - final students = participants + final students = (await requestParticipants()) .where( (e) => + e.id != client.userID && e.powerLevel < ClassDefaultValues.powerLevelOfAdmin && e.id != BotName.byEnvironment, ) .toList(); - for (final student in students) { - await kick(student.id); - } - if (!isSpace && membership == Membership.join && isUnread) { - await markUnread(false); + try { + for (final student in students) { + await kick(student.id); + } + if (!isSpace && membership == Membership.join && isUnread) { + await markUnread(false); + } + await leave(); + } catch (err, s) { + debugger(when: kDebugMode); + ErrorHandler.logError(e: err, s: s, data: toJson()); } - await leave(); } Future archiveSpace(BuildContext context, Client client) async { @@ -872,16 +877,22 @@ extension PangeaRoom on Room { final success = await showFutureLoadingDialog( context: context, future: () async { - final List children = await getChildRooms(); - for (final Room child in children) { - if (!child.isSpace && - child.membership == Membership.join && - child.isUnread) { - await child.markUnread(false); + try { + final List children = await getChildRooms(); + for (final Room child in children) { + if (!child.isSpace && + child.membership == Membership.join && + child.isUnread) { + await child.markUnread(false); + } + await child.leave(); } - await child.leave(); + await leave(); + } catch (err, stack) { + debugger(when: kDebugMode); + ErrorHandler.logError(e: err, s: stack, data: powerLevels); + rethrow; } - await leave(); }, ); MatrixState.pangeaController.classController @@ -1091,7 +1102,7 @@ extension PangeaRoom on Room { for (final child in spaceChildren) { if (child.roomId == null) continue; final Room? room = client.getRoomById(child.roomId!); - if (room != null) { + if (room != null && !room.isAnalyticsRoom) { children.add(room); } }