forwardMessages method
Implementation
Future<void> forwardMessages(
RCIMIWConversation forwardConversation, BuildContext context) async {
String targetId = forwardConversation.targetId ?? '';
String? channelId = forwardConversation.channelId;
RCIMIWConversationType conversationType =
forwardConversation.conversationType ?? RCIMIWConversationType.invalid;
if (_chatProvider == null) return;
RCKChatProvider chatProvider = _chatProvider!;
for (var message in messagesToForward) {
switch (message.messageType) {
case RCIMIWMessageType.text:
{
RCIMIWTextMessage? forwardMsg = RCIMIWTextMessage.fromJson(
(message as RCIMIWTextMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.voice:
{
RCIMIWVoiceMessage? forwardMsg = RCIMIWVoiceMessage.fromJson(
(message as RCIMIWVoiceMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.image:
{
RCIMIWImageMessage? forwardMsg = RCIMIWImageMessage.fromJson(
(message as RCIMIWImageMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.gif:
{
RCIMIWGIFMessage? forwardMsg = RCIMIWGIFMessage.fromJson(
(message as RCIMIWGIFMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.file:
{
RCIMIWFileMessage? forwardMsg = RCIMIWFileMessage.fromJson(
(message as RCIMIWFileMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.reference:
{
RCIMIWReferenceMessage? forwardMsg = RCIMIWReferenceMessage
.fromJson((message as RCIMIWReferenceMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.sight:
{
RCIMIWSightMessage? forwardMsg = RCIMIWSightMessage.fromJson(
(message as RCIMIWSightMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.nativeCustom:
{
RCIMIWNativeCustomMessage? forwardMsg = RCIMIWNativeCustomMessage
.fromJson((message as RCIMIWNativeCustomMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
case RCIMIWMessageType.nativeCustomMedia:
{
RCIMIWNativeCustomMediaMessage? forwardMsg =
RCIMIWNativeCustomMediaMessage.fromJson(
(message as RCIMIWNativeCustomMediaMessage).toJson())
..messageId = null
..targetId = targetId
..channelId = channelId
..conversationType = conversationType;
chatProvider.sendMessage(forwardMsg, isForward: true);
break;
}
// 根据需要增加其他消息类型的转发逻辑
default:
{
// 不支持的消息类型,可跳过或显示提示
break;
}
}
}
}