resendFileMessage method
FileMessage
resendFileMessage(
- FileMessage message, {
- File? file,
- FileMessageHandler? handler,
- ProgressHandler? progressHandler,
Resends a file with given file information.
fileMessage
Failed fileMessage.
file
File to resend. If there is a fileUrl or a fileBytes in fileMessage, this will be ignored.
Implementation
FileMessage resendFileMessage(
FileMessage message, {
File? file,
FileMessageHandler? handler,
ProgressHandler? progressHandler,
}) {
sbLog.i(StackTrace.current, 'message.requestId: ${message.requestId}');
checkUnsupportedAction();
if (message.sendingStatus != SendingStatus.failed) {
throw InvalidParameterException();
}
if (message.channelUrl != channelUrl) {
throw InvalidParameterException();
}
if (!message.isResendable()) {
if (message.errorCode == SendbirdError.fileSizeLimitExceeded) {
throw FileSizeLimitExceededException();
} else {
throw InvalidParameterException();
}
}
if (message.messageCreateParams != null) {
if (message.messageCreateParams?.fileInfo.fileUrl == null &&
message.messageCreateParams?.fileInfo.fileBytes == null &&
file != null) {
message.messageCreateParams?.fileInfo.file = file;
}
}
final params = message.messageCreateParams ??
FileMessageCreateParams.withMessage(message);
return sendFileMessage(
params,
progressHandler: progressHandler,
handler: handler,
resendMessageId: message.messageId,
);
}