setConversationCustomData method

Future<V2TimValueCallback<List<V2TimConversationOperationResult>>> setConversationCustomData({
  1. required String customData,
  2. required List<String> conversationIDList,
})

Implementation

Future<V2TimValueCallback<List<V2TimConversationOperationResult>>>
    setConversationCustomData({
  required String customData,
  required List<String> conversationIDList,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<List<V2TimConversationOperationResult>>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('setConversationCustomData');
  Completer<V2TimValueCallback<List<V2TimConversationOperationResult>>> completer = Completer();
  NativeLibraryManager.timValueCallback2Future<List<V2TimConversationOperationResult>>(userData, completer);

  Pointer<Char> pConversationIDList = Tools.string2PointerChar(json.encode(conversationIDList));
  Pointer<Char> pCustomData = Tools.string2PointerChar(customData);
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  int result = NativeLibraryManager.bindings.DartSetConversationCustomData(pConversationIDList, pCustomData, pUserData);
  if (result != TIMResult.TIM_SUCC.value) {
    return V2TimValueCallback<List<V2TimConversationOperationResult>>(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: "invalid parameter");
  }

  return completer.future;
}