diff --git a/Telegram/Resources/icons/sponsored/channel.png b/Telegram/Resources/icons/sponsored/channel.png new file mode 100644 index 000000000..2f66a5911 Binary files /dev/null and b/Telegram/Resources/icons/sponsored/channel.png differ diff --git a/Telegram/Resources/icons/sponsored/channel@2x.png b/Telegram/Resources/icons/sponsored/channel@2x.png new file mode 100644 index 000000000..765e4cf31 Binary files /dev/null and b/Telegram/Resources/icons/sponsored/channel@2x.png differ diff --git a/Telegram/Resources/icons/sponsored/channel@3x.png b/Telegram/Resources/icons/sponsored/channel@3x.png new file mode 100644 index 000000000..21a5c1f9e Binary files /dev/null and b/Telegram/Resources/icons/sponsored/channel@3x.png differ diff --git a/Telegram/Resources/icons/sponsored/large_earn.png b/Telegram/Resources/icons/sponsored/large_earn.png new file mode 100644 index 000000000..c41ac8378 Binary files /dev/null and b/Telegram/Resources/icons/sponsored/large_earn.png differ diff --git a/Telegram/Resources/icons/sponsored/large_earn@2x.png b/Telegram/Resources/icons/sponsored/large_earn@2x.png new file mode 100644 index 000000000..79232dd2b Binary files /dev/null and b/Telegram/Resources/icons/sponsored/large_earn@2x.png differ diff --git a/Telegram/Resources/icons/sponsored/large_earn@3x.png b/Telegram/Resources/icons/sponsored/large_earn@3x.png new file mode 100644 index 000000000..2d722c06c Binary files /dev/null and b/Telegram/Resources/icons/sponsored/large_earn@3x.png differ diff --git a/Telegram/Resources/icons/sponsored/withdrawals.png b/Telegram/Resources/icons/sponsored/withdrawals.png new file mode 100644 index 000000000..4baf224d7 Binary files /dev/null and b/Telegram/Resources/icons/sponsored/withdrawals.png differ diff --git a/Telegram/Resources/icons/sponsored/withdrawals@2x.png b/Telegram/Resources/icons/sponsored/withdrawals@2x.png new file mode 100644 index 000000000..93d2225f1 Binary files /dev/null and b/Telegram/Resources/icons/sponsored/withdrawals@2x.png differ diff --git a/Telegram/Resources/icons/sponsored/withdrawals@3x.png b/Telegram/Resources/icons/sponsored/withdrawals@3x.png new file mode 100644 index 000000000..8827877fc Binary files /dev/null and b/Telegram/Resources/icons/sponsored/withdrawals@3x.png differ diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/channel_earn.style b/Telegram/SourceFiles/info/channel_statistics/earn/channel_earn.style index 12bf06c42..0667ce763 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/channel_earn.style +++ b/Telegram/SourceFiles/info/channel_statistics/earn/channel_earn.style @@ -113,3 +113,7 @@ sponsoredAboutTitleIcon: icon {{ "sponsored/large_about", activeButtonFg }}; sponsoredAboutPrivacyIcon: icon {{ "sponsored/privacy_about", boxTextFg }}; sponsoredAboutRemoveIcon: icon {{ "sponsored/remove_about", boxTextFg }}; sponsoredAboutSplitIcon: icon {{ "sponsored/revenue_split", boxTextFg }}; + +channelEarnLearnTitleIcon: icon {{ "sponsored/large_earn", activeButtonFg }}; +channelEarnLearnChannelIcon: icon {{ "sponsored/channel", boxTextFg }}; +channelEarnLearnWithdrawalsIcon: icon {{ "sponsored/withdrawals", boxTextFg }}; diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp index 22c8db5c6..44f124c0b 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_earn_inner_widget.cpp @@ -226,33 +226,6 @@ void InnerWidget::fill() { makeContext(label)); }; - { - using Type = Statistic::ChartViewType; - Ui::AddSkip(container); - Ui::AddSkip(container); - if (data.topHoursGraph.chart) { - const auto widget = container->add( - object_ptr(container), - st::statisticsLayerMargins); - - widget->setChartData(data.topHoursGraph.chart, Type::Linear); - widget->setTitle(tr::lng_channel_earn_chart_top_hours()); - } - if (data.revenueGraph.chart) { - Ui::AddSkip(container); - Ui::AddDivider(container); - Ui::AddSkip(container); - Ui::AddSkip(container); - const auto widget = container->add( - object_ptr(container), - st::statisticsLayerMargins); - - widget->setChartData(data.revenueGraph.chart, Type::StackBar); - widget->setTitle(tr::lng_channel_earn_chart_revenue()); - } - Ui::AddSkip(container); - } - const auto arrow = Ui::Text::SingleCustomEmoji( session->data().customEmojiManager().registerInternalEmoji( st::topicButtonArrow, @@ -285,6 +258,26 @@ void InnerWidget::fill() { Ui::AddSkip(content); Ui::AddSkip(content); Ui::AddSkip(content); + { + const auto &icon = st::channelEarnLearnTitleIcon; + const auto rect = Rect(icon.size() * 1.4); + auto owned = object_ptr(content); + owned->resize(rect.size()); + const auto widget = box->addRow( + object_ptr>( + content, + std::move(owned)))->entity(); + widget->paintRequest( + ) | rpl::start_with_next([=] { + auto p = Painter(widget); + p.setPen(Qt::NoPen); + p.setBrush(st::activeButtonBg); + p.drawEllipse(rect); + icon.paintInCenter(p, rect); + }, widget->lifetime()); + } + Ui::AddSkip(content); + Ui::AddSkip(content); box->addRow(object_ptr>( content, object_ptr( @@ -336,19 +329,19 @@ void InnerWidget::fill() { addEntry( tr::lng_channel_earn_learn_in_subtitle(), tr::lng_channel_earn_learn_in_about(), - st::getBoostsButtonIcon); + st::channelEarnLearnChannelIcon); Ui::AddSkip(content); Ui::AddSkip(content); addEntry( tr::lng_channel_earn_learn_split_subtitle(), tr::lng_channel_earn_learn_split_about(), - st::getBoostsButtonIcon); + st::sponsoredAboutSplitIcon); Ui::AddSkip(content); Ui::AddSkip(content); addEntry( tr::lng_channel_earn_learn_out_subtitle(), tr::lng_channel_earn_learn_out_about(), - st::getBoostsButtonIcon); + st::channelEarnLearnWithdrawalsIcon); Ui::AddSkip(content); Ui::AddSkip(content); } @@ -428,6 +421,34 @@ void InnerWidget::fill() { RectPart::Top | RectPart::Bottom)); }; addAboutWithLearn(tr::lng_channel_earn_about); + { + using Type = Statistic::ChartViewType; + Ui::AddSkip(container); + Ui::AddSkip(container); + if (data.topHoursGraph.chart) { + const auto widget = container->add( + object_ptr(container), + st::statisticsLayerMargins); + + widget->setChartData(data.topHoursGraph.chart, Type::Linear); + widget->setTitle(tr::lng_channel_earn_chart_top_hours()); + } + if (data.revenueGraph.chart) { + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); + Ui::AddSkip(container); + const auto widget = container->add( + object_ptr(container), + st::statisticsLayerMargins); + + widget->setChartData(data.revenueGraph.chart, Type::StackBar); + widget->setTitle(tr::lng_channel_earn_chart_revenue()); + } + Ui::AddSkip(container); + } + Ui::AddSkip(container); + Ui::AddDivider(container); Ui::AddSkip(container); { AddHeader(container, tr::lng_channel_earn_overview_title);