Merge pull request #1844 from famedly/td/groupCallOverridePLFix

fix: dont override passed powerlevels with groupcall powerlevels
This commit is contained in:
td 2024-06-11 19:32:11 +05:30 committed by GitHub
commit 041f9fc4a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 105 additions and 10 deletions

View File

@ -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) {

View File

@ -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}');
}

View File

@ -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);