Add is_dialog_opened.

This commit is contained in:
levlam 2021-12-07 12:32:23 +03:00
parent 3070415ccd
commit 9f6b3699c6
3 changed files with 10 additions and 0 deletions

View File

@ -19512,6 +19512,11 @@ DialogId MessagesManager::migrate_dialog_to_megagroup(DialogId dialog_id, Promis
return new_dialog_id;
}
bool MessagesManager::is_dialog_opened(DialogId dialog_id) const {
const Dialog *d = get_dialog(dialog_id);
return d != nullptr && d->is_opened;
}
Status MessagesManager::open_dialog(DialogId dialog_id) {
Dialog *d = get_dialog_force(dialog_id, "open_dialog");
if (d == nullptr) {

View File

@ -636,6 +636,8 @@ class MessagesManager final : public Actor {
DialogId migrate_dialog_to_megagroup(DialogId dialog_id, Promise<Unit> &&promise);
bool is_dialog_opened(DialogId dialog_id) const;
Status open_dialog(DialogId dialog_id) TD_WARN_UNUSED_RESULT;
Status close_dialog(DialogId dialog_id) TD_WARN_UNUSED_RESULT;

View File

@ -290,6 +290,9 @@ void SponsoredMessageManager::view_sponsored_message(DialogId dialog_id, int32 s
if (!td_->messages_manager_->have_dialog_force(dialog_id, "view_sponsored_message")) {
return promise.set_error(Status::Error(400, "Chat not found"));
}
if (!td_->messages_manager_->is_dialog_opened(dialog_id)) {
return promise.set_value(Unit());
}
auto it = dialog_sponsored_messages_.find(dialog_id);
if (it == dialog_sponsored_messages_.end()) {