From d143e32022875294d5c25711ba59e693952bd9f5 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 21 Aug 2024 18:26:24 +0300 Subject: [PATCH] Fixed loading of credits history list with offset. --- .../statistics/info_statistics_list_controllers.cpp | 10 +++++++--- .../info/statistics/info_statistics_list_controllers.h | 3 ++- Telegram/SourceFiles/settings/settings_credits.cpp | 8 +++----- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp index fdc561491..e0738d97f 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp @@ -138,6 +138,7 @@ struct CreditsDescriptor final { not_null peer; bool in = false; bool out = false; + bool subscription = false; }; class PeerListRowWithFullId : public PeerListRow { @@ -963,6 +964,7 @@ private: void applySlice(const Data::CreditsStatusSlice &slice); const not_null _session; + const bool _subscription; Clicked _entryClickedCallback; Api::CreditsHistory _api; @@ -977,6 +979,7 @@ private: CreditsController::CreditsController(CreditsDescriptor d) : _session(&d.peer->session()) +, _subscription(d.subscription) , _entryClickedCallback(std::move(d.entryClickedCallback)) , _api(d.peer, d.in, d.out) , _firstSlice(std::move(d.firstSlice)) @@ -1017,7 +1020,7 @@ void CreditsController::loadMoreRows() { void CreditsController::applySlice(const Data::CreditsStatusSlice &slice) { _allLoaded = slice.allLoaded; - _apiToken = slice.tokenSubscriptions; + _apiToken = _subscription ? slice.tokenSubscriptions : slice.token; auto create = [&]( const Data::CreditsHistoryEntry &i, @@ -1216,7 +1219,8 @@ void AddCreditsHistoryList( Clicked callback, not_null bot, bool in, - bool out) { + bool out, + bool subscription) { struct State final { State( CreditsDescriptor d, @@ -1228,7 +1232,7 @@ void AddCreditsHistoryList( CreditsController controller; }; const auto state = container->lifetime().make_state( - CreditsDescriptor{ firstSlice, callback, bot, in, out }, + CreditsDescriptor{ firstSlice, callback, bot, in, out, subscription }, show); state->delegate.setContent(container->add( diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h index 00f0022dd..abcc3da82 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h @@ -61,6 +61,7 @@ void AddCreditsHistoryList( Clicked entryClickedCallback, not_null peer, bool in, - bool out); + bool out, + bool subscription = false); } // namespace Info::Statistics diff --git a/Telegram/SourceFiles/settings/settings_credits.cpp b/Telegram/SourceFiles/settings/settings_credits.cpp index c6476e2b0..5051c70ba 100644 --- a/Telegram/SourceFiles/settings/settings_credits.cpp +++ b/Telegram/SourceFiles/settings/settings_credits.cpp @@ -153,11 +153,8 @@ void Credits::setupSubscriptions(not_null container) { const auto entryClicked = [=]( const Data::CreditsHistoryEntry &e, const Data::SubscriptionEntry &s) { - controller->uiShow()->show(Box( - ReceiptCreditsBox, - controller, - e, - s)); + controller->uiShow()->show( + Box(ReceiptCreditsBox, controller, e, s)); }; Info::Statistics::AddCreditsHistoryList( @@ -167,6 +164,7 @@ void Credits::setupSubscriptions(not_null container) { entryClicked, self, true, + true, true); Ui::AddSkip(inner);