@@ -20384,6 +20384,7 @@ MessageInputReplyTo MessagesManager::create_message_input_reply_to(
20384
20384
if (!can_reply_to_message(d->dialog_id, message_id)) {
20385
20385
message_id = {};
20386
20386
}
20387
+ auto checklist_task_id = max(0, reply_to_message->checklist_task_id_);
20387
20388
const Message *m = get_message_force(d, message_id, "create_message_input_reply_to 2");
20388
20389
if (m == nullptr) {
20389
20390
if (message_id.is_server() && d->dialog_id.get_type() != DialogType::SecretChat &&
@@ -20392,7 +20393,7 @@ MessageInputReplyTo MessagesManager::create_message_input_reply_to(
20392
20393
message_id <= d->notification_info->max_push_notification_message_id_)) {
20393
20394
// allow to reply to yet unreceived server message in the same chat
20394
20395
return MessageInputReplyTo{message_id, DialogId(), MessageQuote{td_, std::move(reply_to_message->quote_)},
20395
- reply_to_message->checklist_task_id_ };
20396
+ checklist_task_id };
20396
20397
}
20397
20398
if (!for_draft && top_thread_message_id.is_valid()) {
20398
20399
return MessageInputReplyTo{top_thread_message_id, DialogId(), MessageQuote(), 0};
@@ -20403,8 +20404,11 @@ MessageInputReplyTo MessagesManager::create_message_input_reply_to(
20403
20404
// TODO replies to yet unsent messages can be allowed with special handling of them on application restart
20404
20405
return {};
20405
20406
}
20407
+ if (checklist_task_id != 0 && m->content->get_type() != MessageContentType::ToDoList) {
20408
+ checklist_task_id = 0;
20409
+ }
20406
20410
return MessageInputReplyTo{m->message_id, DialogId(), MessageQuote{td_, std::move(reply_to_message->quote_)},
20407
- reply_to_message->checklist_task_id_ };
20411
+ checklist_task_id };
20408
20412
}
20409
20413
case td_api::inputMessageReplyToExternalMessage::ID: {
20410
20414
auto reply_to_message = td_api::move_object_as<td_api::inputMessageReplyToExternalMessage>(reply_to);
@@ -20426,8 +20430,12 @@ MessageInputReplyTo MessagesManager::create_message_input_reply_to(
20426
20430
LOG(INFO) << "Can't reply in another chat " << message_id << " in " << reply_d->dialog_id;
20427
20431
return {};
20428
20432
}
20433
+ auto checklist_task_id = max(0, reply_to_message->checklist_task_id_);
20434
+ if (checklist_task_id != 0 && m != nullptr && m->content->get_type() != MessageContentType::ToDoList) {
20435
+ checklist_task_id = 0;
20436
+ }
20429
20437
return MessageInputReplyTo{m->message_id, reply_dialog_id, MessageQuote{td_, std::move(reply_to_message->quote_)},
20430
- reply_to_message->checklist_task_id_ };
20438
+ checklist_task_id };
20431
20439
}
20432
20440
default:
20433
20441
UNREACHABLE();
0 commit comments