mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-19 07:37:11 +02:00
Inject discussed message when no comments.
This commit is contained in:
parent
883c3ecf65
commit
cf48152853
2 changed files with 18 additions and 6 deletions
|
@ -156,6 +156,18 @@ rpl::producer<int> RepliesList::fullCount() const {
|
|||
return _fullCount.value() | rpl::filter_optional();
|
||||
}
|
||||
|
||||
void RepliesList::injectRootMessage(not_null<MessagesSlice*> slice) {
|
||||
if (slice->skippedBefore != 0) {
|
||||
return;
|
||||
}
|
||||
if (const auto root = lookupRoot()) {
|
||||
slice->ids.push_back(root->fullId());
|
||||
if (slice->fullCount) {
|
||||
++*slice->fullCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool RepliesList::buildFromData(not_null<Viewer*> viewer) {
|
||||
if (_list.empty() && _skippedBefore == 0 && _skippedAfter == 0) {
|
||||
viewer->slice.ids.clear();
|
||||
|
@ -163,6 +175,7 @@ bool RepliesList::buildFromData(not_null<Viewer*> viewer) {
|
|||
= viewer->slice.skippedBefore
|
||||
= viewer->slice.skippedAfter
|
||||
= 0;
|
||||
injectRootMessage(&viewer->slice);
|
||||
return true;
|
||||
}
|
||||
const auto around = [&] {
|
||||
|
@ -205,14 +218,12 @@ bool RepliesList::buildFromData(not_null<Viewer*> viewer) {
|
|||
for (auto j = i - useAfter, e = i + useBefore; j != e; ++j) {
|
||||
slice->ids.emplace_back(channelId, *j);
|
||||
}
|
||||
if (slice->skippedBefore == 0) {
|
||||
if (const auto root = lookupRoot()) {
|
||||
slice->ids.push_back(root->fullId());
|
||||
}
|
||||
}
|
||||
slice->fullCount = _fullCount.current();
|
||||
|
||||
injectRootMessage(slice);
|
||||
|
||||
ranges::reverse(slice->ids);
|
||||
|
||||
slice->fullCount = _fullCount.current();
|
||||
if (_skippedBefore != 0 && useBefore < viewer->limitBefore + 1) {
|
||||
loadBefore();
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ private:
|
|||
[[nodiscard]] bool applyUpdate(
|
||||
not_null<Viewer*> viewer,
|
||||
const MessageUpdate &update);
|
||||
void injectRootMessage(not_null<MessagesSlice*> slice);
|
||||
bool processMessagesIsEmpty(const MTPmessages_Messages &result);
|
||||
void loadAround(MsgId id);
|
||||
void loadBefore();
|
||||
|
|
Loading…
Add table
Reference in a new issue