Merge branch 'isabella/create-chat-with-powerlevel' into 'main'
Isabella/create chat with powerlevel See merge request famedly/company/frontend/famedlysdk!1078
This commit is contained in:
commit
50ef19b8a8
|
|
@ -21,19 +21,19 @@ import 'dart:convert';
|
||||||
import 'dart:core';
|
import 'dart:core';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
|
import 'package:collection/collection.dart' show IterableExtension;
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'package:matrix/src/utils/cached_stream_controller.dart';
|
import 'package:matrix/src/utils/cached_stream_controller.dart';
|
||||||
import 'package:matrix/src/utils/run_in_root.dart';
|
import 'package:matrix/src/utils/run_in_root.dart';
|
||||||
import 'package:matrix/src/utils/sync_update_item_count.dart';
|
import 'package:matrix/src/utils/sync_update_item_count.dart';
|
||||||
import 'package:mime/mime.dart';
|
import 'package:mime/mime.dart';
|
||||||
import 'package:olm/olm.dart' as olm;
|
import 'package:olm/olm.dart' as olm;
|
||||||
import 'package:collection/collection.dart' show IterableExtension;
|
|
||||||
import 'package:random_string/random_string.dart';
|
import 'package:random_string/random_string.dart';
|
||||||
|
|
||||||
import '../encryption.dart';
|
import '../encryption.dart';
|
||||||
import '../matrix.dart';
|
import '../matrix.dart';
|
||||||
import 'utils/run_benchmarked.dart';
|
|
||||||
import 'utils/multilock.dart';
|
import 'utils/multilock.dart';
|
||||||
|
import 'utils/run_benchmarked.dart';
|
||||||
|
|
||||||
typedef RoomSorter = int Function(Room a, Room b);
|
typedef RoomSorter = int Function(Room a, Room b);
|
||||||
|
|
||||||
|
|
@ -570,6 +570,7 @@ class Client extends MatrixApi {
|
||||||
bool? enableEncryption,
|
bool? enableEncryption,
|
||||||
List<StateEvent>? initialState,
|
List<StateEvent>? initialState,
|
||||||
bool waitForSync = true,
|
bool waitForSync = true,
|
||||||
|
Map<String, dynamic>? powerLevelContentOverride,
|
||||||
}) async {
|
}) async {
|
||||||
// Try to find an existing direct chat
|
// Try to find an existing direct chat
|
||||||
final directChatRoomId = getDirectChatFromUserId(mxid);
|
final directChatRoomId = getDirectChatFromUserId(mxid);
|
||||||
|
|
@ -595,6 +596,7 @@ class Client extends MatrixApi {
|
||||||
isDirect: true,
|
isDirect: true,
|
||||||
preset: CreateRoomPreset.trustedPrivateChat,
|
preset: CreateRoomPreset.trustedPrivateChat,
|
||||||
initialState: initialState,
|
initialState: initialState,
|
||||||
|
powerLevelContentOverride: powerLevelContentOverride,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (waitForSync && getRoomById(roomId) == null) {
|
if (waitForSync && getRoomById(roomId) == null) {
|
||||||
|
|
@ -619,6 +621,7 @@ class Client extends MatrixApi {
|
||||||
Visibility? visibility,
|
Visibility? visibility,
|
||||||
bool waitForSync = true,
|
bool waitForSync = true,
|
||||||
bool groupCall = false,
|
bool groupCall = false,
|
||||||
|
Map<String, dynamic>? powerLevelContentOverride,
|
||||||
}) async {
|
}) async {
|
||||||
enableEncryption ??=
|
enableEncryption ??=
|
||||||
encryptionEnabled && preset != CreateRoomPreset.publicChat;
|
encryptionEnabled && preset != CreateRoomPreset.publicChat;
|
||||||
|
|
@ -633,19 +636,19 @@ class Client extends MatrixApi {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (groupCall) {
|
||||||
|
powerLevelContentOverride ??= {};
|
||||||
|
powerLevelContentOverride['events'] = <String, dynamic>{
|
||||||
|
'org.matrix.msc3401.call.member': 0,
|
||||||
|
};
|
||||||
|
}
|
||||||
final roomId = await createRoom(
|
final roomId = await createRoom(
|
||||||
invite: invite,
|
invite: invite,
|
||||||
preset: preset,
|
preset: preset,
|
||||||
name: groupName,
|
name: groupName,
|
||||||
initialState: initialState,
|
initialState: initialState,
|
||||||
visibility: visibility,
|
visibility: visibility,
|
||||||
powerLevelContentOverride: groupCall
|
powerLevelContentOverride: powerLevelContentOverride);
|
||||||
? <String, dynamic>{
|
|
||||||
'events': <String, dynamic>{
|
|
||||||
'org.matrix.msc3401.call.member': 0,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
: null);
|
|
||||||
|
|
||||||
if (waitForSync) {
|
if (waitForSync) {
|
||||||
if (getRoomById(roomId) == null) {
|
if (getRoomById(roomId) == null) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue