feat: specify history_visibility when creating group chat

This commit is contained in:
Karthikeyan S 2024-02-22 15:22:10 +05:30
parent 41e8997117
commit b82d8bff0b
No known key found for this signature in database
GPG Key ID: 4F1848CCEEF73BCD
2 changed files with 22 additions and 2 deletions

View File

@ -705,6 +705,7 @@ class Client extends MatrixApi {
CreateRoomPreset preset = CreateRoomPreset.privateChat, CreateRoomPreset preset = CreateRoomPreset.privateChat,
List<StateEvent>? initialState, List<StateEvent>? initialState,
Visibility? visibility, Visibility? visibility,
HistoryVisibility? historyVisibility,
bool waitForSync = true, bool waitForSync = true,
bool groupCall = false, bool groupCall = false,
Map<String, dynamic>? powerLevelContentOverride, Map<String, dynamic>? powerLevelContentOverride,
@ -722,6 +723,17 @@ class Client extends MatrixApi {
)); ));
} }
} }
if (historyVisibility != null) {
initialState ??= [];
if (!initialState.any((s) => s.type == EventTypes.HistoryVisibility)) {
initialState.add(StateEvent(
content: {
'history_visibility': historyVisibility.text,
},
type: EventTypes.HistoryVisibility,
));
}
}
if (groupCall) { if (groupCall) {
powerLevelContentOverride ??= {}; powerLevelContentOverride ??= {};
powerLevelContentOverride['events'] = <String, dynamic>{ powerLevelContentOverride['events'] = <String, dynamic>{

View File

@ -45,6 +45,10 @@ const Map<GuestAccess, String> _guestAccessMap = {
GuestAccess.forbidden: 'forbidden', GuestAccess.forbidden: 'forbidden',
}; };
extension GuestAccessExtension on GuestAccess {
String get text => _guestAccessMap[this]!;
}
const Map<HistoryVisibility, String> _historyVisibilityMap = { const Map<HistoryVisibility, String> _historyVisibilityMap = {
HistoryVisibility.invited: 'invited', HistoryVisibility.invited: 'invited',
HistoryVisibility.joined: 'joined', HistoryVisibility.joined: 'joined',
@ -52,6 +56,10 @@ const Map<HistoryVisibility, String> _historyVisibilityMap = {
HistoryVisibility.worldReadable: 'world_readable', HistoryVisibility.worldReadable: 'world_readable',
}; };
extension HistoryVisibilityExtension on HistoryVisibility {
String get text => _historyVisibilityMap[this]!;
}
const String messageSendingStatusKey = const String messageSendingStatusKey =
'com.famedly.famedlysdk.message_sending_status'; 'com.famedly.famedlysdk.message_sending_status';
@ -2138,7 +2146,7 @@ class Room {
EventTypes.GuestAccess, EventTypes.GuestAccess,
'', '',
{ {
'guest_access': _guestAccessMap[guestAccess], 'guest_access': guestAccess.text,
}, },
); );
return; return;
@ -2163,7 +2171,7 @@ class Room {
EventTypes.HistoryVisibility, EventTypes.HistoryVisibility,
'', '',
{ {
'history_visibility': _historyVisibilityMap[historyVisibility], 'history_visibility': historyVisibility.text,
}, },
); );
return; return;