Fix showing comments from the beginning.

This commit is contained in:
John Preston 2021-03-29 19:53:55 +04:00
parent 1050447eed
commit 320adcd389
2 changed files with 20 additions and 14 deletions
Telegram/SourceFiles

View file

@ -857,7 +857,12 @@ MsgId HistoryMessage::computeRepliesInboxReadTillFull() const {
? history()->owner().historyLoaded(
peerFromChannel(views->commentsMegagroupId))
: history().get();
return group ? std::max(local, group->inboxReadTillId()) : local;
if (const auto megagroup = group->peer->asChannel()) {
if (megagroup->amIn()) {
return std::max(local, group->inboxReadTillId());
}
}
return local;
}
MsgId HistoryMessage::repliesOutboxReadTill() const {
@ -891,7 +896,12 @@ MsgId HistoryMessage::computeRepliesOutboxReadTillFull() const {
? history()->owner().historyLoaded(
peerFromChannel(views->commentsMegagroupId))
: history().get();
return group ? std::max(local, group->outboxReadTillId()) : local;
if (const auto megagroup = group->peer->asChannel()) {
if (megagroup->amIn()) {
return std::max(local, group->outboxReadTillId());
}
}
return local;
}
void HistoryMessage::setRepliesMaxId(MsgId maxId) {

View file

@ -354,24 +354,20 @@ void SessionNavigation::showRepliesForMessage(
if (const auto maxId = data.vmax_id()) {
item->setRepliesMaxId(maxId->v);
}
if (const auto readTill = data.vread_inbox_max_id()) {
item->setRepliesInboxReadTill(readTill->v);
}
if (const auto readTill = data.vread_outbox_max_id()) {
item->setRepliesOutboxReadTill(readTill->v);
}
item->setRepliesInboxReadTill(
data.vread_inbox_max_id().value_or_empty());
item->setRepliesOutboxReadTill(
data.vread_outbox_max_id().value_or_empty());
const auto post = _session->data().message(channelId, rootId);
if (post && item->history()->channelId() != channelId) {
post->setCommentsItemId(item->fullId());
if (const auto maxId = data.vmax_id()) {
post->setRepliesMaxId(maxId->v);
}
if (const auto readTill = data.vread_inbox_max_id()) {
post->setRepliesInboxReadTill(readTill->v);
}
if (const auto readTill = data.vread_outbox_max_id()) {
post->setRepliesOutboxReadTill(readTill->v);
}
post->setRepliesInboxReadTill(
data.vread_inbox_max_id().value_or_empty());
post->setRepliesOutboxReadTill(
data.vread_outbox_max_id().value_or_empty());
}
showSection(std::make_shared<HistoryView::RepliesMemento>(
item,