From f6c6898fb6f89f912ef57e6515c348a6c012c1c8 Mon Sep 17 00:00:00 2001 From: krille-chan Date: Sun, 7 Apr 2024 10:34:37 +0200 Subject: [PATCH] fix: Make chat permission settings null and type safe --- .../chat_permissions_settings_view.dart | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart index e8c34e260..b88095b20 100644 --- a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart @@ -31,14 +31,14 @@ class ChatPermissionsSettingsView extends StatelessWidget { if (room == null) { return Center(child: Text(L10n.of(context)!.noRoomsFound)); } - final powerLevelsContent = Map.from( - room.getState(EventTypes.RoomPowerLevels)!.content, + final powerLevelsContent = Map.from( + room.getState(EventTypes.RoomPowerLevels)?.content ?? {}, ); final powerLevels = Map.from(powerLevelsContent) ..removeWhere((k, v) => v is! int); - final eventsPowerLevels = - Map.from(powerLevelsContent['events'] ?? {}) - ..removeWhere((k, v) => v is! int); + final eventsPowerLevels = Map.from( + powerLevelsContent.tryGetMap('events') ?? {}, + )..removeWhere((k, v) => v is! int); return Column( children: [ Column( @@ -67,9 +67,12 @@ class ChatPermissionsSettingsView extends StatelessWidget { Builder( builder: (context) { const key = 'rooms'; - final int value = powerLevelsContent + final value = powerLevelsContent .containsKey('notifications') - ? powerLevelsContent['notifications']['rooms'] ?? 0 + ? powerLevelsContent + .tryGetMap('notifications') + ?.tryGet('rooms') ?? + 0 : 0; return PermissionsListTile( permissionKey: key, @@ -98,11 +101,11 @@ class ChatPermissionsSettingsView extends StatelessWidget { PermissionsListTile( permissionKey: entry.key, category: 'events', - permission: entry.value, + permission: entry.value ?? 0, onTap: () => controller.editPowerLevel( context, entry.key, - entry.value, + entry.value ?? 0, category: 'events', ), ),