diff --git a/Telegram/SourceFiles/api/api_updates.cpp b/Telegram/SourceFiles/api/api_updates.cpp index 78b286db07..064f410c5b 100644 --- a/Telegram/SourceFiles/api/api_updates.cpp +++ b/Telegram/SourceFiles/api/api_updates.cpp @@ -2071,7 +2071,10 @@ void Updates::feedUpdate(const MTPUpdate &update) { windows.front()->window().show(Ui::MakeInformBox(text)); } } else { - session().data().serviceNotification(text, d.vmedia()); + session().data().serviceNotification( + text, + d.vmedia(), + d.is_invert_media()); session().api().authorizations().reload(); } } break; diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 4c4223895f..162db84c2b 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -4347,7 +4347,8 @@ auto Session::dialogsRowReplacements() const void Session::serviceNotification( const TextWithEntities &message, - const MTPMessageMedia &media) { + const MTPMessageMedia &media, + bool invertMedia) { const auto date = base::unixtime::now(); if (!peerLoaded(PeerData::kServiceNotificationsId)) { processUser(MTP_user( @@ -4375,22 +4376,27 @@ void Session::serviceNotification( MTPlong())); // background_emoji_id } const auto history = this->history(PeerData::kServiceNotificationsId); + const auto insert = [=] { + insertCheckedServiceNotification(message, media, date, invertMedia); + }; if (!history->folderKnown()) { - histories().requestDialogEntry(history, [=] { - insertCheckedServiceNotification(message, media, date); - }); + histories().requestDialogEntry(history, insert); } else { - insertCheckedServiceNotification(message, media, date); + insert(); } } void Session::insertCheckedServiceNotification( const TextWithEntities &message, const MTPMessageMedia &media, - TimeId date) { + TimeId date, + bool invertMedia) { const auto flags = MTPDmessage::Flag::f_entities | MTPDmessage::Flag::f_from_id - | MTPDmessage::Flag::f_media; + | MTPDmessage::Flag::f_media + | (invertMedia + ? MTPDmessage::Flag::f_invert_media + : MTPDmessage::Flag()); const auto localFlags = MessageFlag::ClientSideUnread | MessageFlag::Local; auto sending = TextWithEntities(), left = message; diff --git a/Telegram/SourceFiles/data/data_session.h b/Telegram/SourceFiles/data/data_session.h index 9ecb5c45cf..c470e3a8b3 100644 --- a/Telegram/SourceFiles/data/data_session.h +++ b/Telegram/SourceFiles/data/data_session.h @@ -705,7 +705,8 @@ public: void serviceNotification( const TextWithEntities &message, - const MTPMessageMedia &media = MTP_messageMediaEmpty()); + const MTPMessageMedia &media = MTP_messageMediaEmpty(), + bool invertMedia = false); void setMimeForwardIds(MessageIdsList &&list); MessageIdsList takeMimeForwardIds(); @@ -851,7 +852,8 @@ private: void insertCheckedServiceNotification( const TextWithEntities &message, const MTPMessageMedia &media, - TimeId date); + TimeId date, + bool invertMedia); void setWallpapers(const QVector &data, uint64 hash); void highlightProcessDone(uint64 processId);