From 3ab2489fbda3c801da682c4b39be53e2dfed9bf9 Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Mon, 19 Dec 2022 12:40:55 -0500 Subject: [PATCH] Added logic to rotate photos according to exif data --- .../xxlabs/messenger/media/MediaProviderActivity.kt | 3 ++- .../messenger/ui/main/chat/ChatMessagesViewModel.kt | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xxlabs/messenger/media/MediaProviderActivity.kt b/app/src/main/java/io/xxlabs/messenger/media/MediaProviderActivity.kt index ee6f5af5..989288f5 100644 --- a/app/src/main/java/io/xxlabs/messenger/media/MediaProviderActivity.kt +++ b/app/src/main/java/io/xxlabs/messenger/media/MediaProviderActivity.kt @@ -121,7 +121,8 @@ abstract class MediaProviderActivity : } private fun correctPhotoOrientation(image: Bitmap, uri: Uri) { - val ei = ExifInterface(uri.path!!) + val inputStream = contentResolver.openInputStream(uri) ?: return + val ei = ExifInterface(inputStream) val orientation = ei.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chat/ChatMessagesViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chat/ChatMessagesViewModel.kt index b689e8de..1e63825b 100644 --- a/app/src/main/java/io/xxlabs/messenger/ui/main/chat/ChatMessagesViewModel.kt +++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chat/ChatMessagesViewModel.kt @@ -25,7 +25,9 @@ import io.xxlabs.messenger.support.util.Utils import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI import io.xxlabs.messenger.ui.main.chat.ChatMessagesUIController.Companion.ALL_MESSAGES import io.xxlabs.messenger.ui.main.chat.ChatMessagesUIController.Companion.MAX_REPLY_PREVIEW_LENGTH +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import timber.log.Timber import java.util.* @@ -514,9 +516,13 @@ abstract class ChatMessagesViewModel<T: ChatMessage> ( override fun getUserId() = preferences.getUserId() protected fun onMessageSent(resetMessageInput: Boolean = true) { - _beepEvent.value = true - _vibrateEvent.value = HapticFeedbackConstants.LONG_PRESS - if (resetMessageInput) resetMessageInput() + viewModelScope.launch { + withContext(Dispatchers.Main) { + _beepEvent.value = true + _vibrateEvent.value = HapticFeedbackConstants.LONG_PRESS + if (resetMessageInput) resetMessageInput() + } + } } protected open fun resetMessageInput() { -- GitLab