Skip to content

Commit dfe4463

Browse files
authored
Merge pull request #6592 from nextcloud/bugfix/noid/fixNpeForGetMessage
Bugfix/noid/fix npe for get message
2 parents 5466698 + ff4f72a commit dfe4463

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

app/src/main/java/com/nextcloud/talk/chat/data/network/OfflineFirstChatRepository.kt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ class OfflineFirstChatRepository @Inject constructor(
448448
return@flow
449449
}
450450

451-
getAndPersistMessages(bundle)
451+
fetchAndPersistSingleMessage(messageId)
452452

453453
emitAll(
454454
observeMessageNonNull(internalConversationId, messageId)
@@ -457,6 +457,18 @@ class OfflineFirstChatRepository @Inject constructor(
457457
)
458458
}
459459

460+
private suspend fun fetchAndPersistSingleMessage(messageId: Long) {
461+
val messages = network.getContextForChatMessage(
462+
credentials = credentials,
463+
baseUrl = currentUser.baseUrl!!,
464+
token = roomToken,
465+
messageId = messageId.toString(),
466+
limit = 1,
467+
threadId = threadId?.toInt()
468+
)
469+
persistChatMessagesAndHandleSystemMessages(messages)
470+
}
471+
460472
@Suppress("Detekt.TooGenericExceptionCaught")
461473
override suspend fun loadMessageContext(
462474
messageId: Long,
@@ -542,8 +554,12 @@ class OfflineFirstChatRepository @Inject constructor(
542554
}
543555
}
544556

557+
// Callers must put a KEY_FIELD_MAP (see getFieldMap/syncer.buildFieldMap) into bundle before
558+
// calling this.
545559
private suspend fun getAndPersistMessages(bundle: Bundle): Boolean {
546-
val fieldMap = bundle.getSerializable(BundleKeys.KEY_FIELD_MAP) as HashMap<String, Int>
560+
val fieldMap = requireNotNull(bundle.getSerializable(BundleKeys.KEY_FIELD_MAP) as? HashMap<String, Int>) {
561+
"getAndPersistMessages requires bundle to carry KEY_FIELD_MAP"
562+
}
547563
val outcome = syncer.pullAndPersistMessages(syncTarget, fieldMap, syncEvents)
548564
return outcome.persistedNewMessages
549565
}

0 commit comments

Comments
 (0)