From 98ab4f35b4d7adf9735ec5aac174ee18f2848dc9 Mon Sep 17 00:00:00 2001 From: Isanz Date: Mon, 6 May 2024 16:04:29 +0200 Subject: [PATCH] [] -- Messages Async --- .../com/isanz/inmomarket/ui/chat/ChatFragment.kt | 6 ++++-- .../com/isanz/inmomarket/ui/chat/ChatViewModel.kt | 15 +++++++-------- app/src/main/res/values-it/strings.xml | 4 +--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatFragment.kt b/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatFragment.kt index 85ad5a9..5f6205d 100644 --- a/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatFragment.kt +++ b/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatFragment.kt @@ -84,7 +84,9 @@ class ChatFragment : Fragment() { @RequiresApi(Build.VERSION_CODES.O) private fun setUpButtons() { mBinding.fabSendMessage.setOnClickListener { - sendMessage() + lifecycleScope.launch { + sendMessage() + } } mBinding.ibBack.setOnClickListener { navigateBack() @@ -92,7 +94,7 @@ class ChatFragment : Fragment() { } @RequiresApi(Build.VERSION_CODES.O) - private fun sendMessage() { + private suspend fun sendMessage() { val text = mBinding.tieMessage.text.toString() chatViewModel.sendMessage(text, idChat, recipientId) mBinding.tieMessage.text?.clear() diff --git a/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatViewModel.kt b/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatViewModel.kt index e810db1..a7aefd5 100644 --- a/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatViewModel.kt +++ b/app/src/main/java/com/isanz/inmomarket/ui/chat/ChatViewModel.kt @@ -22,6 +22,7 @@ import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.withContext import java.time.LocalDateTime import java.time.format.DateTimeFormatter import kotlin.coroutines.resume @@ -35,17 +36,15 @@ class ChatViewModel : ViewModel() { val messageList: LiveData> get() = _messageList @RequiresApi(Build.VERSION_CODES.O) - fun sendMessage(text: String, chatId: String, senderId: String) { + suspend fun sendMessage(text: String, chatId: String, senderId: String) { val message = createMessage(text, senderId) try { - database.getReference("chatMessages").child(chatId).push().setValue(message) - } catch (e: Exception) { - Log.e(TAG, "saveMessageToChatMessage:failure", e) - } - try { - database.getReference("chats").child(chatId).child("lastMessage").setValue(message) + withContext(Dispatchers.IO) { + database.getReference("chatMessages").child(chatId).push().setValue(message).await() + database.getReference("chats").child(chatId).child("lastMessage").setValue(message).await() + } } catch (e: Exception) { - Log.e(TAG, "saveMessageToChats:failure", e) + Log.e(TAG, "sendMessage:failure", e) } } diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1a43be9..515cc53 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -88,10 +88,8 @@ A Accedi con Github Cancella filtri - Al momento non c\'è nessun utente connesso. Effettua prima l'accesso. + Al momento non c\'è nessun utente connesso. Effettua prima l\'accesso. Accedi utilizzando le tue credenziali biometriche Accesso biometrico Utilizza la password dell\'account - -