Skip to content

Commit

Permalink
Merge pull request #1844 from famedly/td/groupCallOverridePLFix
Browse files Browse the repository at this point in the history
fix: dont override passed powerlevels with groupcall powerlevels
  • Loading branch information
td-famedly authored Jun 11, 2024
2 parents 42ea917 + 3735185 commit 041f9fc
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 10 deletions.
20 changes: 11 additions & 9 deletions lib/src/client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -814,17 +814,19 @@ class Client extends MatrixApi {
}
if (groupCall) {
powerLevelContentOverride ??= {};
powerLevelContentOverride['events'] = <String, dynamic>{
EventTypes.GroupCallMember: 0,
};
powerLevelContentOverride['events'] ??= {};
powerLevelContentOverride['events'][EventTypes.GroupCallMember] ??=
powerLevelContentOverride['events_default'] ?? 0;
}

final roomId = await createRoom(
invite: invite,
preset: preset,
name: groupName,
initialState: initialState,
visibility: visibility,
powerLevelContentOverride: powerLevelContentOverride);
invite: invite,
preset: preset,
name: groupName,
initialState: initialState,
visibility: visibility,
powerLevelContentOverride: powerLevelContentOverride,
);

if (waitForSync) {
if (getRoomById(roomId) == null) {
Expand Down
2 changes: 1 addition & 1 deletion lib/src/voip/group_call_session.dart
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ class GroupCallSession {
mems.where((element) => !memsForCurrentGroupCall.contains(element));

for (final mem in ignoredMems) {
Logs().w(
Logs().v(
'[VOIP] Ignored ${mem.userId}\'s mem event ${mem.toJson()} while updating _participants list for callId: $groupCallId, expiry status: ${mem.isExpired}');
}

Expand Down
93 changes: 93 additions & 0 deletions test/client_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -887,8 +887,101 @@ void main() {
test('startDirectChat', () async {
await matrix.startDirectChat('@alice:example.com', waitForSync: false);
});

test('createGroupChat', () async {
await matrix.createGroupChat(groupName: 'Testgroup', waitForSync: false);

expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'preset': 'private_chat'
},
);

await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
powerLevelContentOverride: {'events_default': 12});

expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events_default': 12,
'events': {'com.famedly.call.member': 12}
},
'preset': 'private_chat'
},
);

await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
powerLevelContentOverride: {
'events_default': 12,
'events': {'com.famedly.call.member': 14}
});

expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events_default': 12,
'events': {'com.famedly.call.member': 14}
},
'preset': 'private_chat'
},
);

await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
);

expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events': {'com.famedly.call.member': 0}
},
'preset': 'private_chat'
},
);
});
test('Test the fake store api', () async {
final database = await getDatabase(null);
Expand Down

0 comments on commit 041f9fc

Please sign in to comment.