From f925a9e96100f8ffe25226f8db93926d59df19c5 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 12 Oct 2023 00:53:39 +0300 Subject: [PATCH] Added initial boosts info to layer. --- .../info/boosts/info_boosts_inner_widget.cpp | 34 +++++++++++++++++++ .../ui/effects/premium_graphics.cpp | 1 + 2 files changed, 35 insertions(+) diff --git a/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp b/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp index 77fc82ca9e..8b5053dbd8 100644 --- a/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp +++ b/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp @@ -7,6 +7,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "info/boosts/info_boosts_inner_widget.h" +#include "api/api_statistics.h" +#include "ui/boxes/boost_box.h" + namespace Info::Boosts { InnerWidget::InnerWidget( @@ -16,6 +19,37 @@ InnerWidget::InnerWidget( : VerticalLayout(parent) , _controller(controller) , _peer(peer) { + const auto api = lifetime().make_state(peer); + + const auto fakeShowed = lifetime().make_state>(); + + _showFinished.events( + ) | rpl::take(1) | rpl::start_with_next([=] { + api->request( + ) | rpl::start_with_error_done([](const QString &error) { + }, [=] { + const auto status = api->boostStatus(); + + Ui::FillBoostLimit( + fakeShowed->events(), + rpl::single(status.overview.isBoosted), + this, + Ui::BoostBoxData{ + .boost = Ui::BoostCounters{ + .level = status.overview.level, + .boosts = status.overview.boostCount, + .thisLevelBoosts + = status.overview.currentLevelBoostCount, + .nextLevelBoosts + = status.overview.nextLevelBoostCount, + .mine = status.overview.isBoosted, + } + }); + + resizeToWidth(width()); + crl::on_main([=]{ fakeShowed->fire({}); }); + }, lifetime()); + }, lifetime()); } rpl::producer InnerWidget::scrollToRequests() const { diff --git a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp index b3cf691930..3124bf3256 100644 --- a/Telegram/SourceFiles/ui/effects/premium_graphics.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_graphics.cpp @@ -931,6 +931,7 @@ void AddBubbleRow( ) | rpl::start_with_next([=](const QSize &parentSize, const QSize &size) { container->resize(parentSize.width(), size.height()); }, bubble->lifetime()); + bubble->show(); } void AddLimitRow(