File tree Expand file tree Collapse file tree 4 files changed +24
-1
lines changed
app/src/main/java/com/nextcloud/talk Expand file tree Collapse file tree 4 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -4306,7 +4306,7 @@ class ChatActivity :
43064306 messageTemp.message = newString
43074307
43084308 val index = adapter?.getMessagePositionById(messageTemp.id)!!
4309- if (index > 0 ) {
4309+ if (index >= 0 ) {
43104310 val adapterMsg = adapter?.items?.get(index)?.item as ChatMessage
43114311 messageTemp.parentMessageId = adapterMsg.parentMessageId
43124312 }
Original file line number Diff line number Diff line change @@ -696,6 +696,14 @@ class OfflineFirstChatRepository @Inject constructor(
696696 messageJson.parentMessage?.let { parentMessageJson ->
697697 parentMessageJson.message?.let {
698698 val parentMessageEntity = parentMessageJson.asEntity(currentUser.id!! )
699+
700+ // Preserve parentMessageId if missing in server response but present in local DB
701+ val existingEntity =
702+ chatDao.getChatMessageEntity(internalConversationId, parentMessageJson.id)
703+ if (existingEntity != null && parentMessageEntity.parentMessageId == null ) {
704+ parentMessageEntity.parentMessageId = existingEntity.parentMessageId
705+ }
706+
699707 chatDao.upsertChatMessage(parentMessageEntity)
700708 _updateMessageFlow .emit(parentMessageEntity.asModel())
701709 }
Original file line number Diff line number Diff line change @@ -89,6 +89,16 @@ interface ChatMessagesDao {
8989 )
9090 fun getChatMessageForConversation (internalConversationId : String , messageId : Long ): Flow <ChatMessageEntity >
9191
92+ @Query(
93+ """
94+ SELECT *
95+ FROM ChatMessages
96+ WHERE internalConversationId = :internalConversationId
97+ AND id = :messageId
98+ """
99+ )
100+ suspend fun getChatMessageEntity (internalConversationId : String , messageId : Long ): ChatMessageEntity ?
101+
92102 @Query(
93103 value = """
94104 DELETE FROM ChatMessages
Original file line number Diff line number Diff line change @@ -51,6 +51,11 @@ class DummyChatMessagesDaoImpl : ChatMessagesDao {
5151 messageId : Long
5252 ): Flow <ChatMessageEntity > = flowOf()
5353
54+ override suspend fun getChatMessageEntity (
55+ internalConversationId : String ,
56+ messageId : Long
57+ ): ChatMessageEntity ? = null
58+
5459 override fun deleteChatMessages (internalIds : List <String >) { /* */ }
5560
5661 override fun deleteTempChatMessages (internalConversationId : String , referenceIds : List <String >) { /* */ }
You can’t perform that action at this time.
0 commit comments