sharePost method
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);
}
}