mirror of
https://github.com/savoirfairelinux/jami-client-qt.git
synced 2025-12-19 10:20:17 +08: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:
committed by
Sébastien Blin
parent
06ebd40b2d
commit
519ced58f7
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user