mirror of
https://github.com/nextcloud/talk-android
synced 2025-02-07 15:13:01 +00:00
fix crash for unreadMarker
When messages were sorted out in handleSystemMessages it can happen that the chatMessageList is empty. Because setUnreadMessageMarker accessed chatMessageList[0] this crashed. This can happen e.g. when only a reaction to a chat message was made before opening the chat. Exception java.lang.IndexOutOfBoundsException: Empty list doesn't contain element at index 0. at kotlin.collections.EmptyList.get (Collections.kt:37) at kotlin.collections.EmptyList.get (Collections.kt:25) at com.nextcloud.talk.chat.ChatActivity.setUnreadMessageMarker (ChatActivity.kt:2691) at com.nextcloud.talk.chat.ChatActivity.processMessagesFromTheFuture (ChatActivity.kt:2651) at com.nextcloud.talk.chat.ChatActivity.access$processMessagesFromTheFuture (ChatActivity.kt:209) at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invokeSuspend (ChatActivity.kt:875) at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invoke (Unknown Source:8) at com.nextcloud.talk.chat.ChatActivity$initObservers$12$1.invoke (Unknown Source:4) at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit (Emitters.kt:219) at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$2.emit (Errors.kt:154) at kotlinx.coroutines.flow.FlowKt__TransformKt$onEach$$inlined$unsafeTransform$1$2.emit (Emitters.kt:220) at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl (SharedFlow.kt:392) at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend (Unknown Source:15) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:104) at android.os.Handler.handleCallback (Handler.java:942) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8762) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067) Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
e268b7798e
commit
b766abea5e
@ -2685,12 +2685,14 @@ class ChatActivity :
|
||||
private fun isScrolledToBottom() = layoutManager?.findFirstVisibleItemPosition() == 0
|
||||
|
||||
private fun setUnreadMessageMarker(chatMessageList: List<ChatMessage>) {
|
||||
val unreadChatMessage = ChatMessage()
|
||||
unreadChatMessage.jsonMessageId = UNREAD_MESSAGES_MARKER_ID
|
||||
unreadChatMessage.actorId = "-1"
|
||||
unreadChatMessage.timestamp = chatMessageList[0].timestamp
|
||||
unreadChatMessage.message = context.getString(R.string.nc_new_messages)
|
||||
adapter?.addToStart(unreadChatMessage, false)
|
||||
if (chatMessageList.isNotEmpty()) {
|
||||
val unreadChatMessage = ChatMessage()
|
||||
unreadChatMessage.jsonMessageId = UNREAD_MESSAGES_MARKER_ID
|
||||
unreadChatMessage.actorId = "-1"
|
||||
unreadChatMessage.timestamp = chatMessageList[0].timestamp
|
||||
unreadChatMessage.message = context.getString(R.string.nc_new_messages)
|
||||
adapter?.addToStart(unreadChatMessage, false)
|
||||
}
|
||||
}
|
||||
|
||||
private fun processMessagesNotFromTheFuture(chatMessageList: List<ChatMessage>) {
|
||||
|
Loading…
Reference in New Issue
Block a user