diff --git a/commet/lib/client/matrix/matrix_client.dart b/commet/lib/client/matrix/matrix_client.dart index 64c06e94b..45a9f81e2 100644 --- a/commet/lib/client/matrix/matrix_client.dart +++ b/commet/lib/client/matrix/matrix_client.dart @@ -422,6 +422,7 @@ class MatrixClient extends Client { @override Future createRoom(CreateRoomArgs args) async { var creationContent = null; + Map? powerLevelContentOverride = {}; List? initialState; if (args.roomType == RoomType.photoAlbum) { @@ -430,6 +431,12 @@ class MatrixClient extends Client { if (args.roomType == RoomType.voipRoom) { creationContent = {"type": "org.matrix.msc3417.call"}; + powerLevelContentOverride = { + "events": { + "org.matrix.msc3401.call": 0, + "org.matrix.msc3401.call.member": 0 + } + }; } if (args.roomType == RoomType.calendar) { @@ -465,14 +472,14 @@ class MatrixClient extends Client { } var id = await _matrixClient.createRoom( - creationContent: creationContent, - name: args.name, - initialState: initialState, - topic: args.topic, - visibility: args.visibility == RoomVisibility.private - ? matrix.Visibility.private - : matrix.Visibility.public, - ); + creationContent: creationContent, + name: args.name, + initialState: initialState, + topic: args.topic, + visibility: args.visibility == RoomVisibility.private + ? matrix.Visibility.private + : matrix.Visibility.public, + powerLevelContentOverride: powerLevelContentOverride); await _matrixClient.waitForRoomInSync(id); diff --git a/commet/lib/ui/organisms/voip_room_view/voip_room_view.dart b/commet/lib/ui/organisms/voip_room_view/voip_room_view.dart index d1d381976..663e32f16 100644 --- a/commet/lib/ui/organisms/voip_room_view/voip_room_view.dart +++ b/commet/lib/ui/organisms/voip_room_view/voip_room_view.dart @@ -65,6 +65,12 @@ class _VoipRoomViewState extends State { var color = Theme.of(context).colorScheme.surfaceContainer; if (currentSession == null) return unjoinedView(color); + if (currentSession?.state == VoipState.ended) { + setState(() { + joining = false; + }); + return unjoinedView(color); + } return CallWidget(currentSession!); }