From 0c30bbf40aa95a2900bc9bfb291f8fd58bf6bb3c Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 30 Sep 2019 13:25:09 +0300 Subject: [PATCH] Fix file reference refresh in stickers / GIFs. Fixes #6592. --- Telegram/SourceFiles/api/api_sending.cpp | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Telegram/SourceFiles/api/api_sending.cpp b/Telegram/SourceFiles/api/api_sending.cpp index 47940a2e9..2af0f62ec 100644 --- a/Telegram/SourceFiles/api/api_sending.cpp +++ b/Telegram/SourceFiles/api/api_sending.cpp @@ -29,13 +29,14 @@ template void SendExistingMedia( Api::MessageToSend &&message, not_null media, - const MTPInputMedia &inputMedia, + Fn inputMedia, Data::FileOrigin origin) { const auto history = message.action.history; const auto peer = history->peer; const auto session = &history->session(); const auto api = &session->api(); + media->refreshFileReference("blabla"); message.action.clearDraft = false; message.action.generateLocal = true; api->sendAction(message.action); @@ -115,7 +116,7 @@ void SendExistingMedia( MTP_flags(sendFlags), peer->input, MTP_int(replyTo), - inputMedia, + inputMedia(), MTP_string(captionText), MTP_long(randomId), MTPReplyMarkup(), @@ -154,13 +155,16 @@ void SendExistingMedia( void SendExistingDocument( Api::MessageToSend &&message, not_null document) { + const auto inputMedia = [=] { + return MTP_inputMediaDocument( + MTP_flags(0), + document->mtpInput(), + MTPint()); + }; SendExistingMedia( std::move(message), document, - MTP_inputMediaDocument( - MTP_flags(0), - document->mtpInput(), - MTPint()), + inputMedia, document->stickerOrGifOrigin()); if (document->sticker()) { @@ -174,13 +178,16 @@ void SendExistingDocument( void SendExistingPhoto( Api::MessageToSend &&message, not_null photo) { + const auto inputMedia = [=] { + return MTP_inputMediaPhoto( + MTP_flags(0), + photo->mtpInput(), + MTPint()); + }; SendExistingMedia( std::move(message), photo, - MTP_inputMediaPhoto( - MTP_flags(0), - photo->mtpInput(), - MTPint()), + inputMedia, Data::FileOrigin()); }