Optimize loading chats on startup

This commit is contained in:
Julien Wadel 2021-10-20 10:34:20 +02:00
parent b1249ae517
commit 7048d1eeef

View file

@ -578,12 +578,10 @@ void SipAddressesModel::initSipAddresses () {
} }
void SipAddressesModel::initSipAddressesFromChat () { void SipAddressesModel::initSipAddressesFromChat () {
for (const auto &chatRoom : CoreManager::getInstance()->getCore()->getChatRooms()) { for (const auto &chatRoom : CoreManager::getInstance()->getCore()->getChatRooms()) {
list<shared_ptr<linphone::ChatMessage>> history(chatRoom->getHistory(1)); auto lastMessage = chatRoom->getLastMessageInHistory();
if (history.empty()) if( !lastMessage)
continue; continue;
QString peerAddress(Utils::cleanSipAddress(Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly()))); QString peerAddress(Utils::cleanSipAddress(Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly())));
QString localAddress(Utils::cleanSipAddress(Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly()))); QString localAddress(Utils::cleanSipAddress(Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly())));
@ -591,7 +589,7 @@ void SipAddressesModel::initSipAddressesFromChat () {
chatRoom->getUnreadMessagesCount(), chatRoom->getUnreadMessagesCount(),
CoreManager::getInstance()->getMissedCallCount(peerAddress, localAddress), CoreManager::getInstance()->getMissedCallCount(peerAddress, localAddress),
false, false,
QDateTime::fromMSecsSinceEpoch(history.back()->getTime() * 1000) QDateTime::fromMSecsSinceEpoch(lastMessage->getTime() * 1000)
}; };
} }
} }