sharePost method

Future<void> sharePost()

Implementation

Future<void> sharePost() async {
  if (postshareProccess.value) {
    return;
  }

  postshareProccess.value = true;
  log("Post Share Proccess Started");

  log("Windows için sıkıştırma desteklenmiyor ve bu nedenle sıkıştırma atlanıyor.");
  if (!Platform.isWindows) {
    log("Sıkıştırma işlemi başlatılıyor...");
    await Future.wait(
      media.map((media) async {
        if (media.mediaType == MediaType.image) {
          if (media.mediaXFile != null) {
            final compressedFile = await compressAndGetFile(
              File(media.mediaXFile!.path),
              media.mediaXFile!.path.replaceAll('.jpg', '_compressed.jpg'),
            );
            log("Sıkıştırma işlemi tamamlandı: ${compressedFile?.path}");
            // Eğer sıkıştırma başarılı olduysa, mediaXFile'ı güncelle
            if (compressedFile != null) {
              media.mediaXFile = compressedFile;
            }
          }
        }

        if (media.mediaType == MediaType.video) {
          if (media.mediaXFile != null) {
            final compressedFile = await compressAndGetVideo(
              File(media.mediaXFile!.path),
            );
            log("Sıkıştırma işlemi tamamlandı: ${compressedFile?.path}");
            // Eğer sıkıştırma başarılı olduysa, mediaXFile'ı güncelle
            if (compressedFile != null) {
              media.mediaXFile = XFile(compressedFile.path);
            }
          }
        }
      }),
    );
  }

  PostShareResponse response = await service.postsServices.share(
    text: key.value.currentState!.controller!.text,
    files: media.map((media) => media.mediaXFile!).toList(),
    location: userLocation.value,
  );
  if (!response.result.status) {
    postsharetext.value.text = response.result.description.toString();
    postshareProccess.value = false;
    log("Post Share Proccess Failed: ${response.result.description}");
    return;
  }

  if (response.result.status) {
    postsharetext.value.text = response.result.description.toString();
    postshareProccess.value = false;
    log("Post Share Proccess Success: ${response.result.description}");
    Get.back(result: true);
  }
}