Fix message pagination getting stuck

This commit is contained in:
Nicolas Werner 2025-06-06 00:08:35 +02:00
parent 978174af77
commit b8107d4a01
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
2 changed files with 6 additions and 3 deletions

View file

@ -4292,7 +4292,7 @@ Cache::saveOldMessages(const std::string &room_id, const mtx::responses::Message
orderDb.put(txn, lmdb::to_sv(index), orderEntry.dump());
txn.commit();
}
return index;
return msgIndex;
}
std::string event_id_val;

View file

@ -69,9 +69,9 @@ EventStore::EventStore(std::string room_id, QObject *)
}
uint64_t newFirst = cache::client()->saveOldMessages(room_id_, res);
if (newFirst == first)
if (newFirst == first) {
fetchMore();
else {
} else {
if (this->last != std::numeric_limits<uint64_t>::max()) {
auto oldFirst = this->first;
emit beginInsertRows(toExternalIdx(newFirst), toExternalIdx(this->first - 1));
@ -323,6 +323,7 @@ EventStore::clearTimeline()
decryptedEvents_.clear();
events_.clear();
noMoreMessages = false;
emit endResetModel();
}
@ -428,6 +429,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events)
decryptedEvents_.clear();
events_.clear();
noMoreMessages = false;
emit endResetModel();
return;
}
@ -439,6 +441,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events)
decryptedEvents_.clear();
events_.clear();
noMoreMessages = false;
emit endResetModel();
} else if (range->last > this->last) {
emit beginInsertRows(toExternalIdx(this->last + 1), toExternalIdx(range->last));