mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-07-13 20:15:23 +02:00
chatview: don't call printHistory
Use updateHistory instead. This prevents "Contact added" message duplication. We also clear the unread messages at this point which will prevent an uncleared unread first message when adding a new conversation. Gitlab: #482 Change-Id: I927e15dfe945aa3f2f33db3fb91739522db5ea9b
This commit is contained in:
parent
06ebd40b2d
commit
519ced58f7
2 changed files with 10 additions and 21 deletions
|
@ -102,7 +102,6 @@ MessagesAdapter::onInteractionStatusUpdated(const QString& convUid,
|
|||
const lrc::api::interaction::Info& interaction)
|
||||
{
|
||||
auto currentConversationModel = lrcInstance_->getCurrentConversationModel();
|
||||
currentConversationModel->clearUnreadInteractions(convUid);
|
||||
updateInteraction(*currentConversationModel, interactionId, interaction);
|
||||
}
|
||||
|
||||
|
@ -206,16 +205,16 @@ MessagesAdapter::slotMessagesCleared()
|
|||
{
|
||||
auto* convModel = lrcInstance_->getCurrentConversationModel();
|
||||
|
||||
auto convOpt = convModel->getConversationForUid(lrcInstance_->get_selectedConvUid());
|
||||
if (!convOpt)
|
||||
auto optConv = convModel->getConversationForUid(lrcInstance_->get_selectedConvUid());
|
||||
if (!optConv)
|
||||
return;
|
||||
if (convOpt->get().isSwarm() && !convOpt->get().allMessagesLoaded) {
|
||||
convModel->loadConversationMessages(convOpt->get().uid, 20);
|
||||
if (optConv->get().isSwarm() && !optConv->get().allMessagesLoaded) {
|
||||
convModel->loadConversationMessages(optConv->get().uid, 20);
|
||||
} else {
|
||||
printHistory(*convModel, convOpt->get().interactions);
|
||||
updateHistory(*convModel, optConv->get().interactions, optConv->get().allMessagesLoaded);
|
||||
Utils::oneShotConnect(qmlObj_, SIGNAL(messagesLoaded()), this, SLOT(slotMessagesLoaded()));
|
||||
}
|
||||
setConversationProfileData(convOpt->get());
|
||||
setConversationProfileData(optConv->get());
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -457,31 +456,22 @@ MessagesAdapter::setDisplayLinks()
|
|||
QMetaObject::invokeMethod(qmlObj_, "webViewRunJavaScript", Q_ARG(QVariant, s));
|
||||
}
|
||||
|
||||
void
|
||||
MessagesAdapter::printHistory(lrc::api::ConversationModel& conversationModel,
|
||||
MessagesList interactions)
|
||||
{
|
||||
auto interactionsStr = interactionsToJsonArrayObject(conversationModel,
|
||||
lrcInstance_->get_selectedConvUid(),
|
||||
interactions)
|
||||
.toUtf8();
|
||||
QString s = QString::fromLatin1("printHistory(%1);").arg(interactionsStr.constData());
|
||||
QMetaObject::invokeMethod(qmlObj_, "webViewRunJavaScript", Q_ARG(QVariant, s));
|
||||
}
|
||||
|
||||
void
|
||||
MessagesAdapter::updateHistory(lrc::api::ConversationModel& conversationModel,
|
||||
MessagesList interactions,
|
||||
bool allLoaded)
|
||||
{
|
||||
auto conversationId = lrcInstance_->get_selectedConvUid();
|
||||
auto interactionsStr = interactionsToJsonArrayObject(conversationModel,
|
||||
lrcInstance_->get_selectedConvUid(),
|
||||
conversationId,
|
||||
interactions)
|
||||
.toUtf8();
|
||||
QString s = QString::fromLatin1("updateHistory(%1, %2);")
|
||||
.arg(interactionsStr.constData())
|
||||
.arg(allLoaded);
|
||||
QMetaObject::invokeMethod(qmlObj_, "webViewRunJavaScript", Q_ARG(QVariant, s));
|
||||
auto* convModel = lrcInstance_->getCurrentConversationModel();
|
||||
conversationModel.clearUnreadInteractions(conversationId);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -71,7 +71,6 @@ protected:
|
|||
void setMessagesVisibility(bool visible);
|
||||
void setIsSwarm(bool isSwarm);
|
||||
void clearChatView();
|
||||
void printHistory(ConversationModel& conversationModel, MessagesList interactions);
|
||||
void updateHistory(ConversationModel& conversationModel,
|
||||
MessagesList interactions,
|
||||
bool allLoaded);
|
||||
|
|
Loading…
Add table
Reference in a new issue