Skip to content

Commit 22d9f4b

Browse files
committed
Apply thread draft updates.
1 parent 27be392 commit 22d9f4b

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

td/telegram/ForumTopic.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ bool ForumTopic::update_unread_reaction_count(int32 count, bool is_relative) {
8989
return true;
9090
}
9191

92-
bool ForumTopic::set_draft_message(unique_ptr<DraftMessage> &&draft_message) {
93-
bool from_update = false;
92+
bool ForumTopic::set_draft_message(unique_ptr<DraftMessage> &&draft_message, bool from_update) {
9493
if (!need_update_draft_message(draft_message_, draft_message, from_update)) {
9594
return false;
9695
}

td/telegram/ForumTopic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class ForumTopic {
6161
return true;
6262
}
6363

64-
bool set_draft_message(unique_ptr<DraftMessage> &&draft_message);
64+
bool set_draft_message(unique_ptr<DraftMessage> &&draft_message, bool from_update);
6565

6666
DialogNotificationSettings *get_notification_settings() {
6767
return &notification_settings_;

td/telegram/ForumTopicManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ void ForumTopicManager::on_update_forum_topic_draft_message(DialogId dialog_id,
677677
if (topic == nullptr || topic->topic_ == nullptr) {
678678
return;
679679
}
680-
if (topic->topic_->set_draft_message(std::move(draft_message))) {
680+
if (topic->topic_->set_draft_message(std::move(draft_message), true)) {
681681
on_forum_topic_changed(dialog_id, topic);
682682
}
683683
}
@@ -780,7 +780,7 @@ Status ForumTopicManager::set_forum_topic_draft_message(DialogId dialog_id, Foru
780780
if (topic == nullptr || topic->topic_ == nullptr) {
781781
return Status::Error(400, "Topic not found");
782782
}
783-
if (topic->topic_->set_draft_message(std::move(draft_message))) {
783+
if (topic->topic_->set_draft_message(std::move(draft_message), false)) {
784784
save_draft_message(td_, dialog_id, MessageTopic::forum(dialog_id, forum_topic_id),
785785
topic->topic_->get_draft_message(), Promise<Unit>());
786786
on_forum_topic_changed(dialog_id, topic);

td/telegram/MessagesManager.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27687,7 +27687,17 @@ void MessagesManager::on_update_dialog_draft_message(
2768727687
return td_->forum_topic_manager_->on_update_forum_topic_draft_message(
2768827688
dialog_id, message_topic.get_forum_topic_id(), std::move(new_draft_message));
2768927689
}
27690-
// TODO update thread message draft
27690+
if (message_topic.is_thread()) {
27691+
auto m = get_message_force(d, top_thread_message_id, "on_update_dialog_draft_message");
27692+
if (m == nullptr || m->reply_info.is_comment_ || !is_active_message_reply_info(d->dialog_id, m->reply_info)) {
27693+
return;
27694+
}
27695+
if (need_update_draft_message(m->thread_draft_message, new_draft_message, true)) {
27696+
m->thread_draft_message = std::move(new_draft_message);
27697+
on_message_changed(d, m, false, "on_update_dialog_draft_message");
27698+
}
27699+
return;
27700+
}
2769127701
return;
2769227702
}
2769327703

0 commit comments

Comments
 (0)