createGroup method

Future<V2TimValueCallback<String>> createGroup(
  1. String groupType,
  2. String groupID,
  3. String groupName,
  4. String faceUrl,
  5. List<V2TimGroupMember>? memberList,
)

Implementation

Future<V2TimValueCallback<String>> createGroup(
    String groupType, String groupID, String groupName, String faceUrl, List<V2TimGroupMember>? memberList) async {
  final result = await TencentImSDKPlugin.v2TIMManager.getGroupManager().createGroup(
      groupType: groupType, groupID: groupID, groupName: groupName, faceUrl: faceUrl, memberList: memberList);
  if (result.code != 0) {
    TencentCloudChat.instance.logInstance.console(
      componentName: _tag,
      logs: "createGroup - code:${result.code}, desc:${result.desc}",
      logLevel: TencentCloudChatLogLevel.error,
    );
  } else {
    var loginUserResult = await TencentImSDKPlugin.v2TIMManager.getLoginUser();
    final messageCustom = MessageCustom(
      version: MessageCustom.groupCreateVersion,
      businessID: MessageCustom.businessIDGroupCreate,
      opUser: loginUserResult.data!,
      content: tL10n.createGroupTips,
      cmd: groupType == GroupType.Community ? 1 : 0,
    );

    // 转换为 JSON 字符串
    final jsonData = jsonEncode(messageCustom.toJson());
    final createResult =
        await TencentImSDKPlugin.v2TIMManager.getMessageManager().createCustomMessage(data: jsonData);
    if (createResult.code == 0) {
      await Future.delayed(const Duration(milliseconds: 200));

      final sendMessageResult = await TencentImSDKPlugin.v2TIMManager.getMessageManager().sendMessage(
            id: createResult.data?.id ?? '',
            groupID: result.data as String,
            receiver: "",
          );
      if (sendMessageResult.code != 0) {
        TencentCloudChat.instance.logInstance.console(
          componentName: _tag,
          logs: "sendCreateGroupCustomMessage code:${result.code}, desc:${result.desc}",
          logLevel: TencentCloudChatLogLevel.error,
        );
      }
    }
  }

  return result;
}