diff --git a/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt b/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt index 0750bcf1ef6..d4b04a0020b 100644 --- a/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt @@ -7,6 +7,7 @@ package com.nextcloud.talk.contextchat +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import autodagger.AutoInjector @@ -50,32 +51,37 @@ class ContextChatViewModel @Inject constructor(private val chatNetworkDataSource _getContextChatMessagesState.value = ContextChatRetrieveUiState.Error } - var messages = chatNetworkDataSource.getContextForChatMessage( - credentials = credentials, - baseUrl = baseUrl, - token = token, - messageId = messageId, - limit = LIMIT, - threadId = threadId?.toIntOrNull() - ) + try { + var messages = chatNetworkDataSource.getContextForChatMessage( + credentials = credentials, + baseUrl = baseUrl, + token = token, + messageId = messageId, + limit = LIMIT, + threadId = threadId?.toIntOrNull() + ) - if (threadId.isNullOrEmpty()) { - messages = messages.filter { !isThreadChildMessage(it) } - } + if (threadId.isNullOrEmpty()) { + messages = messages.filter { !isThreadChildMessage(it) } + } - val subTitle = if (threadId?.isNotEmpty() == true) { - messages.firstOrNull()?.threadTitle - } else { - "" - } + val subTitle = if (threadId?.isNotEmpty() == true) { + messages.firstOrNull()?.threadTitle + } else { + "" + } - _getContextChatMessagesState.value = ContextChatRetrieveUiState.Success( - messageId = messageId, - threadId = threadId, - messages = messages, - title = title, - subTitle = subTitle - ) + _getContextChatMessagesState.value = ContextChatRetrieveUiState.Success( + messageId = messageId, + threadId = threadId, + messages = messages, + title = title, + subTitle = subTitle + ) + } catch (e: Exception) { + Log.e(TAG, "Failed to load chat message context", e) + _getContextChatMessagesState.value = ContextChatRetrieveUiState.Error + } } } @@ -96,6 +102,7 @@ class ContextChatViewModel @Inject constructor(private val chatNetworkDataSource } companion object { + private val TAG = ContextChatViewModel::class.java.simpleName private const val LIMIT = 50 } }