diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 35a4324ef..49a7da6b8 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -4065,6 +4065,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_stories_link_invalid" = "This link is broken or has expired."; +"lng_stats_title" = "Statistics"; + // Wnd specific "lng_wnd_choose_program_menu" = "Choose Default Program..."; diff --git a/Telegram/SourceFiles/data/data_channel.h b/Telegram/SourceFiles/data/data_channel.h index ee0550a6d..bdf0f4205 100644 --- a/Telegram/SourceFiles/data/data_channel.h +++ b/Telegram/SourceFiles/data/data_channel.h @@ -62,6 +62,7 @@ enum class ChannelDataFlag { StoriesHidden = (1 << 26), HasActiveStories = (1 << 27), HasUnreadStories = (1 << 28), + CanGetStatistics = (1 << 29), }; inline constexpr bool is_flag_type(ChannelDataFlag) { return true; }; using ChannelDataFlags = base::flags; diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index bef94d663..7727ecc9b 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -283,6 +283,7 @@ private: void addSearchTopics(); void addDeleteTopic(); void addVideoChat(); + void addViewStatistics(); not_null _controller; Dialogs::EntryState _request; @@ -997,6 +998,15 @@ void Filler::addManageChat() { }, &st::menuIconManage); } +void Filler::addViewStatistics() { + if (const auto channel = _peer->asChannel()) { + if (channel->flags() & ChannelDataFlag::CanGetStatistics) { + _addAction(tr::lng_stats_title(tr::now), [=] { + }, nullptr); + } + } +} + void Filler::addCreatePoll() { const auto can = _topic ? Data::CanSend(_topic, ChatRestriction::SendPolls) @@ -1237,6 +1247,7 @@ void Filler::fillProfileActions() { addGiftPremium(); addBotToGroup(); addNewMembers(); + addViewStatistics(); addStoryArchive(); addManageChat(); addTopicLink();