From b0ad6c484ee01b0f4a827b3c84783b48ce16b51c Mon Sep 17 00:00:00 2001 From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> Date: Thu, 29 Dec 2022 10:53:13 -0300 Subject: [PATCH] fix: get last selfmessage Id Change-Id: Ibd901be120c061d7b726f657a5d51636716acdcc --- src/libclient/conversationmodel.cpp | 8 +++++--- src/libclient/messagelistmodel.cpp | 4 ++-- src/libclient/messagelistmodel.h | 2 +- src/libclient/qtwrapper/videomanager_wrap.h | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/libclient/conversationmodel.cpp b/src/libclient/conversationmodel.cpp index bdb79cced..7dac144b0 100644 --- a/src/libclient/conversationmodel.cpp +++ b/src/libclient/conversationmodel.cpp @@ -1507,7 +1507,7 @@ ConversationModel::clearInteractionFromConversation(const QString& convId, lastInteractionUpdated = true; } if (conversation.lastSelfMessageId == interactionId) { - conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId(); + conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId(owner.profileInfo.uri); } } catch (const std::out_of_range& e) { @@ -2488,7 +2488,8 @@ ConversationModelPimpl::slotConversationLoaded(uint32_t requestId, } conversation.lastMessageUid = conversation.interactions->lastMessageUid(); - conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId(); + conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId( + linked.owner.profileInfo.uri); if (conversation.lastMessageUid.isEmpty() && !conversation.allMessagesLoaded && messages.size() != 0) { if (conversation.interactions->size() > 0) { @@ -2657,7 +2658,8 @@ ConversationModelPimpl::slotMessageReceived(const QString& accountId, return; } conversation.lastMessageUid = conversation.interactions->lastMessageUid(); - conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId(); + conversation.lastSelfMessageId = conversation.interactions->lastSelfMessageId( + linked.owner.profileInfo.uri); invalidateModel(); if (!interaction::isOutgoing(msg)) { Q_EMIT behaviorController.newUnreadInteraction(linked.owner.id, diff --git a/src/libclient/messagelistmodel.cpp b/src/libclient/messagelistmodel.cpp index b657ceaa4..614153bcb 100644 --- a/src/libclient/messagelistmodel.cpp +++ b/src/libclient/messagelistmodel.cpp @@ -722,12 +722,12 @@ MessageListModel::lastMessageUid() const } QString -MessageListModel::lastSelfMessageId() const +MessageListModel::lastSelfMessageId(const QString& id) const { for (auto it = interactions_.rbegin(); it != interactions_.rend(); ++it) { auto lastType = it->second.type; if (lastType == interaction::Type::TEXT and !it->second.body.isEmpty() - and it->second.authorUri.isEmpty()) { + and (it->second.authorUri.isEmpty() || it->second.authorUri == id)) { return it->first; } } diff --git a/src/libclient/messagelistmodel.h b/src/libclient/messagelistmodel.h index 2a86affde..a32a756cb 100644 --- a/src/libclient/messagelistmodel.h +++ b/src/libclient/messagelistmodel.h @@ -142,7 +142,7 @@ public: void reactToMessage(const QString& msgId, interaction::Info& info); QVariantMap convertReactMessagetoQVariant(const QSet<QString>&); QString lastMessageUid() const; - QString lastSelfMessageId() const; + QString lastSelfMessageId(const QString& id) const; QString findEmojiReaction(const QString& emoji, const QString& authorURI, diff --git a/src/libclient/qtwrapper/videomanager_wrap.h b/src/libclient/qtwrapper/videomanager_wrap.h index 1c94126ad..24402596e 100644 --- a/src/libclient/qtwrapper/videomanager_wrap.h +++ b/src/libclient/qtwrapper/videomanager_wrap.h @@ -126,14 +126,14 @@ public Q_SLOTS: // METHODS QString openVideoInput(const QString& resource) { #ifdef ENABLE_VIDEO - return libjami::openVideoInput(resource.toStdString()).c_str(); + return libjami::openVideoInput(resource.toLatin1().toStdString()).c_str(); #endif } void closeVideoInput(const QString& resource) { #ifdef ENABLE_VIDEO - libjami::closeVideoInput(resource.toStdString()); + libjami::closeVideoInput(resource.toLatin1().toStdString()); #endif } -- GitLab