diff --git a/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart b/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart index e204e3f83..a6c5af180 100644 --- a/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart @@ -71,18 +71,16 @@ extension RoomInformationRoomExtension on Room { return (eventsDefaultPowerLevel ?? 0) >= ClassDefaultValues.powerLevelOfAdmin; } - int joinedRooms = 0; for (final child in spaceChildren) { if (child.roomId == null) continue; final Room? room = client.getRoomById(child.roomId!); - if (room?.isLocked == false) { + if (room == null || room.isAnalyticsRoom || room.isArchived) continue; + if (!room._isLocked) { return false; } - if (room != null) { - joinedRooms += 1; - } } - return joinedRooms > 0 ? true : false; + return (eventsDefaultPowerLevel ?? 0) >= + ClassDefaultValues.powerLevelOfAdmin; } bool get _isPangeaClass => isSpace && languageSettingsStateEvent != null; diff --git a/lib/pangea/utils/lock_room.dart b/lib/pangea/utils/lock_room.dart index 420cc07ff..2bd803093 100644 --- a/lib/pangea/utils/lock_room.dart +++ b/lib/pangea/utils/lock_room.dart @@ -1,3 +1,4 @@ +import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:matrix/matrix.dart'; Future lockRoom(Room room, Client client) async { @@ -65,7 +66,7 @@ Future lockSpace(Room space, Client client) async { continue; } } - if (child == null) continue; + if (child == null || child.isArchived || child.isAnalyticsRoom) continue; child.isSpace ? await lockSpace(child, client) : await lockChat(child, client);