Show becoming community admin box.

This commit is contained in:
John Preston
2026-06-12 10:22:50 +04:00
parent 502a9d9a71
commit 4980f0068a
6 changed files with 82 additions and 0 deletions
@@ -1199,12 +1199,21 @@ not_null<PeerData*> Session::processChat(const MTPChat &data) {
channel->setDefaultRestrictions(ChatRestrictions());
}
if (!minimal) {
const auto wasLoaded = result->isLoaded();
const auto hadRights = channel->hasAdminRights();
if (const auto rights = data.vadmin_rights()) {
channel->setAdminRights(ChatAdminRightsInfo(*rights).flags);
} else if (channel->hasAdminRights()) {
channel->setAdminRights(ChatAdminRights());
}
channel->date = data.vdate().v;
if (wasLoaded
&& !hadRights
&& channel->hasAdminRights()
&& !data.is_creator()) {
_communityAdminPromotions.fire(
not_null<ChannelData*>(channel));
}
}
channel->setName(qs(data.vtitle()), QString());
channel->setPhoto(data.vphoto());
@@ -5218,6 +5227,11 @@ rpl::producer<not_null<ChannelData*>> Session::channelDifferenceTooLong() const
return _channelDifferenceTooLong.events();
}
auto Session::communityAdminPromotions() const
-> rpl::producer<not_null<ChannelData*>> {
return _communityAdminPromotions.events();
}
void Session::registerItemView(not_null<ViewElement*> view) {
_views[view->data()].push_back(view);
}