modifyMessage method

Future<V2TimValueCallback<V2TimMessageChangeInfo>> modifyMessage({
  1. required V2TimMessage message,
})

Implementation

Future<V2TimValueCallback<V2TimMessageChangeInfo>> modifyMessage({
  required V2TimMessage message,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimMessageChangeInfo>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('modifyMessage');
  Completer<V2TimValueCallback<V2TimMessageChangeInfo>> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<V2TimMessage> result = V2TimValueCallback<V2TimMessage>.fromJson(jsonResult);
    V2TimMessageChangeInfo changeInfo = V2TimMessageChangeInfo(code: result.code, desc: result.desc, message: result.data);

    completer.complete(V2TimValueCallback<V2TimMessageChangeInfo>.fromObject(changeInfo));
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  Pointer<Char> pMessage = Tools.string2PointerChar(json.encode(message.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartModifyMessage(pMessage, pUserData);

  return completer.future;
}