uploadAttachmentFromImage method

Future<void> uploadAttachmentFromImage(
  1. List<Uint8ListWithName> images
)

Implementation

Future<void> uploadAttachmentFromImage(List<Uint8ListWithName> images) async {
  sendingAttachments.value = sendingAttachments.value + images.length;
  update();
  try {
    bool conversationExists = await checkConversationExists(images.length);
    if (!conversationExists) return;
    Directory tempDir = await getTemporaryDirectory();
    for (Uint8ListWithName image in images) {
      ByteBuffer buffer = image.image.buffer;
      ByteData byteData = ByteData.view(buffer);
      File file = await File('${tempDir.path}/${image.name}').writeAsBytes(
        buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes),
      );
      Attachment? newAttachment = await AttachmentService.postAttachment(
        file,
      );
      if (newAttachment != null) attachments.add(newAttachment);
      sendingAttachments.value--;
      update();
    }
    if (images.length > 1) {
      showFeedbackSnackbar(
        Strings.attachmentUploadSuccessMultiple.tr,
        Symbols.attachment,
      );
    } else {
      showFeedbackSnackbar(
        Strings.attachmentUploadSuccess.tr,
        Symbols.attachment,
      );
    }
  } catch (e) {
    sendingAttachments.value = sendingAttachments.value - images.length;
    update();
  }
}