diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 18ad59062..ed85b2dcf 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -6053,6 +6053,12 @@ void ContactsManager::on_get_inactive_channels(vector imported_contact_user_ids, vector unimported_contact_invites) { LOG(INFO) << "Contacts import with random_id " << random_id @@ -7953,6 +7959,9 @@ void ContactsManager::update_channel(Channel *c, ChannelId channel_id, bool from if (c->is_megagroup) { update_dialogs_for_discussion(DialogId(channel_id), c->status.is_administrator() && c->status.can_pin_messages()); } + if (!c->status.is_member()) { + remove_inactive_channel(channel_id); + } } if (c->is_username_changed) { if (c->status.is_creator() && created_public_channels_inited_[0]) { diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 14d169f59..a9f72567f 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -231,6 +231,8 @@ class ContactsManager : public Actor { void on_get_inactive_channels(vector> &&chats); + void remove_inactive_channel(ChannelId channel_id); + UserId get_my_id() const; void set_my_online_status(bool is_online, bool send_update, bool is_local); diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 3f951398c..63d6164e2 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -25944,6 +25944,9 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq td_->contacts_manager_->on_update_channel_slow_mode_next_send_date(channel_id, m->date + slow_mode_delay); } } + if (m->date > now - 14 * 86400) { + td_->contacts_manager_->remove_inactive_channel(dialog_id.get_channel_id()); + } } if (!is_attached && !m->have_next && !m->have_previous) {