insertGroupMessageToLocalStorageV2 method

Future<V2TimValueCallback<V2TimMessage>> insertGroupMessageToLocalStorageV2(
  1. {required String groupID,
  2. required String senderID,
  3. required String createdMsgID}
)

Implementation

Future<V2TimValueCallback<V2TimMessage>> insertGroupMessageToLocalStorageV2({
  required String groupID,
  required String senderID,
  required String createdMsgID,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimMessage>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  V2TimMessage? v2timMessage = messageIDMap[createdMsgID];
  if (v2timMessage == null) {
    print("insertGroupMessageToLocalStorageV2, message not found");
    return V2TimValueCallback<V2TimMessage>.fromBool(false, 'message not found');
  }

  v2timMessage.groupID = groupID;
  v2timMessage.sender = senderID;

  String userData = Tools.generateUserData('insertGroupMessageToLocalStorageV2');
  Completer<V2TimValueCallback<V2TimMessage>> completer = Completer();
  NativeLibraryManager.timValueCallback2Future<V2TimMessage>(userData, completer);

  Pointer<Char> pGroupID = Tools.string2PointerChar(groupID);
  Pointer<Char> pMessage = Tools.string2PointerChar(json.encode(v2timMessage.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartSaveMessage(pGroupID, TIMConvType.kTIMConv_Group, pMessage, pUserData);

  return completer.future;
}