MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / loadMore

Method loadMore

Telegram/SourceFiles/data/data_stories.cpp:732–768  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

730}
731
732void Stories::loadMore(StorySourcesList list) {
733 const auto index = static_cast<int>(list);
734 if (_loadMoreRequestId[index] || _sourcesLoaded[index]) {
735 return;
736 }
737 const auto hidden = (list == StorySourcesList::Hidden);
738 const auto api = &_owner->session().api();
739 using Flag = MTPstories_GetAllStories::Flag;
740 _loadMoreRequestId[index] = api->request(MTPstories_GetAllStories(
741 MTP_flags((hidden ? Flag::f_hidden : Flag())
742 | (_sourcesStates[index].isEmpty()
743 ? Flag(0)
744 : (Flag::f_next | Flag::f_state))),
745 MTP_string(_sourcesStates[index])
746 )).done([=](const MTPstories_AllStories &result) {
747 _loadMoreRequestId[index] = 0;
748
749 result.match([&](const MTPDstories_allStories &data) {
750 _owner->processUsers(data.vusers());
751 _owner->processChats(data.vchats());
752 _sourcesStates[index] = qs(data.vstate());
753 _sourcesLoaded[index] = !data.is_has_more();
754 for (const auto &single : data.vpeer_stories().v) {
755 parseAndApply(single, ParseSource::MyStrip);
756 }
757 }, [](const MTPDstories_allStoriesNotModified &) {
758 });
759
760 result.match([&](const auto &data) {
761 apply(data.vstealth_mode());
762 });
763
764 preloadListsMore();
765 }).fail([=] {
766 _loadMoreRequestId[index] = 0;
767 }).send();
768}
769
770void Stories::preloadListsMore() {
771 if (_loadMoreRequestId[static_cast<int>(StorySourcesList::NotHidden)]

Callers 5

rebuildFromContextMethod · 0.45
loadMoreRowsMethod · 0.45
AddGiftSelectorFunction · 0.45
SessionMethod · 0.45
setupStoriesMethod · 0.45

Calls 13

MTP_flagsFunction · 0.85
MTP_stringFunction · 0.85
qsFunction · 0.85
apiMethod · 0.80
processUsersMethod · 0.80
processChatsMethod · 0.80
FlagEnum · 0.70
sessionMethod · 0.45
sendMethod · 0.45
failMethod · 0.45
doneMethod · 0.45
requestMethod · 0.45

Tested by

no test coverage detected