From 21560d098edd05249c6d4a90a4ba039a854f42af Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Wed, 13 Sep 2023 19:15:00 -0300 Subject: [PATCH] fix upload image --- .../amethyst/ui/actions/NewMediaModel.kt | 42 ++++++++++------- .../amethyst/ui/actions/NewPostViewModel.kt | 47 +++++++++++-------- .../ui/actions/NewUserMetadataViewModel.kt | 34 +++++++------- 3 files changed, 70 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt index 610d77ced..151e2e3fc 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt @@ -92,24 +92,32 @@ open class NewMediaModel : ViewModel() { } else { uploadingPercentage.value = 0.2f uploadingDescription.value = "Uploading" - ImageUploader.uploadImage( - uri = fileUri, - contentType = contentType, - size = size, - server = serverToUse, - contentResolver = contentResolver, - onSuccess = { imageUrl, mimeType -> - createNIP94Record(imageUrl, mimeType, description, sensitiveContent, relayList = relayList) - }, - onError = { - isUploadingImage = false - uploadingPercentage.value = 0.00f - uploadingDescription.value = null - viewModelScope.launch { - imageUploadingError.emit("Failed to upload the image / video") + viewModelScope.launch(Dispatchers.IO) { + ImageUploader.uploadImage( + uri = fileUri, + contentType = contentType, + size = size, + server = serverToUse, + contentResolver = contentResolver, + onSuccess = { imageUrl, mimeType -> + createNIP94Record( + imageUrl, + mimeType, + description, + sensitiveContent, + relayList = relayList + ) + }, + onError = { + isUploadingImage = false + uploadingPercentage.value = 0.00f + uploadingDescription.value = null + viewModelScope.launch { + imageUploadingError.emit("Failed to upload the image / video") + } } - } - ) + ) + } } }, onError = { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt index e1b291223..87a642a9f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt @@ -307,28 +307,35 @@ open class NewPostViewModel() : ViewModel() { createNIP95Record(it.readBytes(), contentType, description, sensitiveContent, relayList = relayList) } } else { - ImageUploader.uploadImage( - uri = fileUri, - contentType = contentType, - size = size, - server = server, - contentResolver = contentResolver, - onSuccess = { imageUrl, mimeType -> - if (isNIP94Server(server)) { - createNIP94Record(imageUrl, mimeType, description, sensitiveContent) - } else { + viewModelScope.launch(Dispatchers.IO) { + ImageUploader.uploadImage( + uri = fileUri, + contentType = contentType, + size = size, + server = server, + contentResolver = contentResolver, + onSuccess = { imageUrl, mimeType -> + if (isNIP94Server(server)) { + createNIP94Record( + imageUrl, + mimeType, + description, + sensitiveContent + ) + } else { + isUploadingImage = false + message = TextFieldValue(message.text + "\n\n" + imageUrl) + urlPreview = findUrlInMessage() + } + }, + onError = { isUploadingImage = false - message = TextFieldValue(message.text + "\n\n" + imageUrl) - urlPreview = findUrlInMessage() + viewModelScope.launch { + imageUploadingError.emit("Failed to upload the image / video") + } } - }, - onError = { - isUploadingImage = false - viewModelScope.launch { - imageUploadingError.emit("Failed to upload the image / video") - } - } - ) + ) + } } }, onError = { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt index f46482178..a40543d4c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt @@ -182,23 +182,25 @@ class NewUserMetadataViewModel : ViewModel() { contentResolver.getType(galleryUri), context.applicationContext, onReady = { fileUri, contentType, size -> - ImageUploader.uploadImage( - uri = fileUri, - contentType = contentType, - size = size, - server = account.defaultFileServer, - contentResolver = contentResolver, - onSuccess = { imageUrl, mimeType -> - onUploading(false) - onUploaded(imageUrl) - }, - onError = { - onUploading(false) - viewModelScope.launch { - imageUploadingError.emit("Failed to upload the image / video") + viewModelScope.launch(Dispatchers.IO) { + ImageUploader.uploadImage( + uri = fileUri, + contentType = contentType, + size = size, + server = account.defaultFileServer, + contentResolver = contentResolver, + onSuccess = { imageUrl, mimeType -> + onUploading(false) + onUploaded(imageUrl) + }, + onError = { + onUploading(false) + viewModelScope.launch { + imageUploadingError.emit("Failed to upload the image / video") + } } - } - ) + ) + } }, onError = { onUploading(false)