Implement chat cache on GXS delegate view

This commit is contained in:
Angela Mazzurco 2017-06-05 16:06:59 +02:00
parent 549b76141a
commit d3e3f14afd
2 changed files with 94 additions and 9 deletions

View file

@ -11,8 +11,12 @@ QtObject {
property QtObject lastMessageCache: QtObject
{
id: lastMessageCache
property var lastMessageList: ({})
signal lastMessageChanged()
function updateLastMessageCache (chatId, chatModel){
console.log("updateLastMessageCache (chatId, chatModel)", chatId)
@ -27,14 +31,34 @@ QtObject {
function updateLastMessage (chatId, chatModel){
console.log("updateLastMessage (chatId, chatModel)")
var lastMessage = getLastMessageFromChat (chatModel)
var lastMessage = findChatLastMessage (chatModel)
lastMessageList[chatId] = lastMessage
}
function getLastMessageFromChat (chatModel){
function findChatLastMessage (chatModel){
var messagesData = JSON.parse(chatModel).data
return messagesData.slice(-1)[0]
}
function getChatIdFromGxs (gxs){
for (var key in lastMessageList) {
if ( lastMessageList[key].author_id === gxs ) {
return key
}
}
return undefined
}
function getChatLastMessage (chatId){
if (lastMessageList[chatId]) {
return lastMessageList[chatId]
}
return undefined
}
}
}