Update administrator_count after getting administrators list.
GitOrigin-RevId: a94efd56f468c473c941b9c3f50369218925c695
This commit is contained in:
parent
3c8fd02d07
commit
d52472311b
|
@ -7454,19 +7454,7 @@ void ContactsManager::on_get_channel_participants_success(
|
||||||
}
|
}
|
||||||
it->second.first = total_count;
|
it->second.first = total_count;
|
||||||
|
|
||||||
if (filter.is_recent() && total_count != 0 && total_count < 10000) {
|
auto participant_count = filter.is_recent() && total_count != 0 && total_count < 10000 ? total_count : -1;
|
||||||
auto channel_full = get_channel_full(channel_id);
|
|
||||||
if (channel_full != nullptr && channel_full->participant_count != total_count) {
|
|
||||||
channel_full->participant_count = total_count;
|
|
||||||
channel_full->is_changed = true;
|
|
||||||
}
|
|
||||||
auto c = get_channel(channel_id);
|
|
||||||
if (c != nullptr && c->participant_count != total_count) {
|
|
||||||
c->participant_count = total_count;
|
|
||||||
c->need_send_update = true;
|
|
||||||
update_channel(c, channel_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int32 administrator_count = filter.is_administrators() ? total_count : -1;
|
int32 administrator_count = filter.is_administrators() ? total_count : -1;
|
||||||
if (offset == 0 && static_cast<int32>(participants.size()) < limit &&
|
if (offset == 0 && static_cast<int32>(participants.size()) < limit &&
|
||||||
(filter.is_administrators() || filter.is_bots())) {
|
(filter.is_administrators() || filter.is_bots())) {
|
||||||
|
@ -7478,12 +7466,29 @@ void ContactsManager::on_get_channel_participants_success(
|
||||||
td_->messages_manager_->on_dialog_bots_updated(DialogId(channel_id), std::move(user_ids));
|
td_->messages_manager_->on_dialog_bots_updated(DialogId(channel_id), std::move(user_ids));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
auto channel_full = get_channel_full(channel_id);
|
|
||||||
if (channel_full != nullptr && channel_full->administrator_count != administrator_count) {
|
if (participant_count != -1 || administrator_count != -1) {
|
||||||
channel_full->administrator_count = administrator_count;
|
auto channel_full = get_channel_full(channel_id);
|
||||||
channel_full->is_changed = true;
|
if (channel_full != nullptr) {
|
||||||
|
if (participant_count != -1 && channel_full->participant_count != participant_count) {
|
||||||
|
channel_full->participant_count = participant_count;
|
||||||
|
channel_full->is_changed = true;
|
||||||
|
}
|
||||||
|
if (administrator_count != -1 && channel_full->administrator_count != administrator_count) {
|
||||||
|
channel_full->administrator_count = administrator_count;
|
||||||
|
channel_full->is_changed = true;
|
||||||
|
}
|
||||||
|
update_channel_full(channel_full, channel_id);
|
||||||
|
}
|
||||||
|
if (participant_count != -1) {
|
||||||
|
auto c = get_channel(channel_id);
|
||||||
|
if (c != nullptr && c->participant_count != participant_count) {
|
||||||
|
c->participant_count = participant_count;
|
||||||
|
c->need_send_update = true;
|
||||||
|
update_channel(c, channel_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
update_channel_full(channel_full, channel_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContactsManager::on_get_channel_participants_fail(ChannelId channel_id, ChannelParticipantsFilter filter,
|
void ContactsManager::on_get_channel_participants_fail(ChannelId channel_id, ChannelParticipantsFilter filter,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user