Skip to content

Commit 3711242

Browse files
committed
fix(fc/conversation): handle potential null pointer in sequenced map
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent ba5c199 commit 3711242

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

flipchatApp/src/main/kotlin/xyz/flipchat/app/features/chat/conversation/ConversationViewModel.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class ConversationViewModel @Inject constructor(
113113
val imageUri: String?,
114114
val lastSeen: Instant?,
115115
val members: Int?,
116-
val pointers: Map<UUID, MessageStatus>,
116+
val pointers: Map<UUID, MessageStatus?>,
117117
val pointerRefs: Map<Long, MessageStatus>,
118118
val showTypingIndicator: Boolean,
119119
val isSelfTyping: Boolean,
@@ -963,7 +963,9 @@ class ConversationViewModel @Inject constructor(
963963
?: findLastReadMessage(event.conversationWithPointers.pointers),
964964
pointerRefs = event.conversationWithPointers.pointers
965965
.asSequence()
966-
.mapNotNull { (key, value) -> key.timestamp?.let { it to value } }
966+
.mapNotNull { (key, value) ->
967+
key.timestamp?.let { it to (value ?: MessageStatus.Unknown) }
968+
}
967969
.toMap(),
968970
members = members.count(),
969971
hostId = host?.id,
@@ -1045,7 +1047,7 @@ class ConversationViewModel @Inject constructor(
10451047
}
10461048

10471049
private fun findLastReadMessage(
1048-
statusMap: Map<UUID, MessageStatus>,
1050+
statusMap: Map<UUID, MessageStatus?>,
10491051
): UUID? {
10501052
return statusMap
10511053
.filter { it.value == MessageStatus.Read }

services/flipchat/chat/src/main/kotlin/xyz/flipchat/services/domain/model/chat/Conversation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ data class ConversationWithMembersAndLastPointers(
6060
)
6161
val pointersCrossRef: List<ConversationPointerCrossRef>,
6262
) {
63-
val pointers: Map<UUID, MessageStatus>
63+
val pointers: Map<UUID, MessageStatus?>
6464
get() {
6565
return pointersCrossRef
6666
.associateBy { it.status }

0 commit comments

Comments
 (0)