createGroup method
Future<V2TimValueCallback<String> >
createGroup({
- String? groupID,
- required String groupType,
- required String groupName,
- String? notification,
- String? introduction,
- String? faceUrl,
- bool? isAllMuted,
- bool? isSupportTopic = false,
- GroupAddOptTypeEnum? addOpt,
- List<
V2TimGroupMember> ? memberList, - GroupAddOptTypeEnum? approveOpt,
- bool? isEnablePermissionGroup,
- int? defaultPermissions,
Implementation
Future<V2TimValueCallback<String>> createGroup({
String? groupID,
required String groupType,
required String groupName,
String? notification,
String? introduction,
String? faceUrl,
bool? isAllMuted,
bool? isSupportTopic = false,
GroupAddOptTypeEnum? addOpt,
List<V2TimGroupMember>? memberList,
GroupAddOptTypeEnum? approveOpt,
bool? isEnablePermissionGroup,
int? defaultPermissions,
}) async {
if (!TIMManager.instance.isInitSDK()) {
return V2TimValueCallback<String>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
}
String userData = Tools.generateUserData('createGroup');
Completer<V2TimValueCallback<String>> completer = Completer();
void handleApiCallback(Map jsonResult) {
V2TimValueCallback<Map<String, String>> v2timValueCallback = V2TimValueCallback<Map<String, String>>.fromJson(jsonResult);
String groupID = v2timValueCallback.data?['create_group_result_groupid'] ?? '';
completer.complete(V2TimValueCallback<String>(code: v2timValueCallback.code, desc: v2timValueCallback.desc, data: groupID));
}
NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);
V2TimGroupCreateParam createParams = V2TimGroupCreateParam(
groupID: groupID,
groupType: groupType,
groupName: groupName,
notification: notification,
introduction: introduction,
faceUrl: faceUrl,
isAllMuted: isAllMuted,
isSupportTopic: isSupportTopic,
addOpt: addOpt,
memberList: memberList,
approveOpt: approveOpt,
isEnablePermissionGroup: isEnablePermissionGroup,
defaultPermissions: defaultPermissions
);
var temp = json.encode(createParams.toJson());
// Pointer<Char> pCreateParams = Tools.string2PointerChar(json.encode(createParams.toJson()));
Pointer<Char> pCreateParams = Tools.string2PointerChar(temp);
Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
NativeLibraryManager.bindings.DartCreateGroup(pCreateParams, pUserData);
return completer.future;
}