revokeMessageWithMessage method

Future<V2TimCallback> revokeMessageWithMessage(
  1. {required V2TimMessage v2TIMMessage}
)

统一调用最新的获取历史消息接口

Implementation

// Future<V2TimValueCallback<List<V2TimMessage>>> getHistoryMessageListWithOption({
//   required V2TIMMessageListGetOption option
// }) async {
//   if (option.userID == null && option.groupID == null) {
//     print('userID and groupID cannot be null at the same time');
//     return V2TimValueCallback<List<V2TimMessage>>.fromBool(false, 'userID and groupID cannot be null at the same time');
//   }

//   if (option.userID != null && option.userID!.isNotEmpty && option.groupID != null && option.groupID!.isNotEmpty) {
//     print('userID and groupID cannot set at the same time');
//     return V2TimValueCallback<List<V2TimMessage>>.fromBool(false, 'userID and groupID cannot set at the same time');
//   }

//   String convID = '';
//   TIMConvType convType = TIMConvType.kTIMConv_Invalid;
//   if (option.userID != null && option.userID!.isNotEmpty)  {
//     convID = option.userID!;
//     convType = TIMConvType.kTIMConv_C2C;
//   } else {
//     convID = option.groupID!;
//     convType = TIMConvType.kTIMConv_Group;
//   }

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

//   Pointer<Char> pConvID = Tools.string2PointerChar(convID);
//   Pointer<Char> pOption = Tools.string2PointerChar(json.encode(option.toJson()));
//   Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
//   NativeLibraryManager.bindings.DartGetMessageList(pConvID, convType, pOption, pUserData);

//   return completer.future;
// }

Future<V2TimCallback> revokeMessageWithMessage({required V2TimMessage v2TIMMessage}) async {
  if (v2TIMMessage.status != MessageStatus.V2TIM_MSG_STATUS_SEND_SUCC) {
    print('revokeMessageWithMessage, message status must be V2TIM_MSG_STATUS_SEND_SUCC');
    return V2TimCallback.fromBool(false, 'message status must be V2TIM_MSG_STATUS_SEND_SUCC');
  }

  String convID = v2TIMMessage.messageConvID;
  TIMConvType convType = v2TIMMessage.messageConvType;

  String userData = Tools.generateUserData('revokeMessageWithMessage');
  Completer<V2TimCallback> completer = Completer();
  NativeLibraryManager.timCallback2Future(userData, completer);

  Pointer<Char> pConvID = Tools.string2PointerChar(convID);
  Pointer<Char> pMessage = Tools.string2PointerChar(json.encode(v2TIMMessage.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartRevokeMessage(pConvID, convType, pMessage, pUserData);

  return completer.future;
}