From 64d5a6acd5d279d96997cfaeb937694c83d127d2 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 7 Apr 2018 11:41:48 +0400 Subject: [PATCH] Fix game scores display. --- Telegram/SourceFiles/data/data_media_types.cpp | 8 ++++++++ Telegram/SourceFiles/data/data_media_types.h | 2 ++ Telegram/SourceFiles/data/data_session.cpp | 2 +- .../SourceFiles/history/history_media_types.cpp | 15 +++++++++++++++ .../SourceFiles/history/history_media_types.h | 2 ++ Telegram/SourceFiles/history/history_message.cpp | 6 +++--- 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index 53853ca6e..57cd842e7 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -205,6 +205,10 @@ bool Media::consumeMessageText(const TextWithEntities &text) { return false; } +TextWithEntities Media::consumedMessageText() const { + return {}; +} + std::unique_ptr Media::createView( not_null message) { return createView(message, message->data()); @@ -1041,6 +1045,10 @@ bool MediaGame::consumeMessageText(const TextWithEntities &text) { return true; } +TextWithEntities MediaGame::consumedMessageText() const { + return _consumedText; +} + bool MediaGame::updateInlineResultMedia(const MTPMessageMedia &media) { return updateSentMedia(media); } diff --git a/Telegram/SourceFiles/data/data_media_types.h b/Telegram/SourceFiles/data/data_media_types.h index 3237d492f..4a854bfb3 100644 --- a/Telegram/SourceFiles/data/data_media_types.h +++ b/Telegram/SourceFiles/data/data_media_types.h @@ -100,6 +100,7 @@ public: [[nodiscard]] virtual bool consumeMessageText( const TextWithEntities &text); + [[nodiscard]] virtual TextWithEntities consumedMessageText() const; // After sending an inline result we may want to completely recreate // the media (all media that was generated on client side, for example). @@ -334,6 +335,7 @@ public: not_null channel) const override; bool consumeMessageText(const TextWithEntities &text) override; + TextWithEntities consumedMessageText() const override; bool updateInlineResultMedia(const MTPMessageMedia &media) override; bool updateSentMedia(const MTPMessageMedia &media) override; diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 2058dbce6..fc8c23ffc 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -1258,7 +1258,7 @@ void Session::gameApplyFields( const QString &description, PhotoData *photo, DocumentData *document) { - if (game->accessHash || !accessHash) { + if (game->accessHash) { return; } game->accessHash = accessHash; diff --git a/Telegram/SourceFiles/history/history_media_types.cpp b/Telegram/SourceFiles/history/history_media_types.cpp index f33a7205c..5ee756ec9 100644 --- a/Telegram/SourceFiles/history/history_media_types.cpp +++ b/Telegram/SourceFiles/history/history_media_types.cpp @@ -4221,6 +4221,21 @@ int HistoryGame::bottomInfoPadding() const { return result; } +void HistoryGame::parentTextUpdated() { + if (const auto media = _parent->data()->media()) { + const auto consumed = media->consumedMessageText(); + if (!consumed.text.isEmpty()) { + _description.setMarkedText( + st::webPageDescriptionStyle, + consumed, + Ui::ItemTextOptions(_parent->data())); + } else { + _description = Text(st::msgMinWidth - st::webPageLeft); + } + Auth().data().requestViewResize(_parent); + } +} + HistoryGame::~HistoryGame() { Auth().data().unregisterGameView(_data, _parent); } diff --git a/Telegram/SourceFiles/history/history_media_types.h b/Telegram/SourceFiles/history/history_media_types.h index 269291f6d..fbc3a17d8 100644 --- a/Telegram/SourceFiles/history/history_media_types.h +++ b/Telegram/SourceFiles/history/history_media_types.h @@ -805,6 +805,8 @@ public: return _attach.get(); } + void parentTextUpdated() override; + ~HistoryGame(); private: diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index 92a8f861b..74de41096 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -890,10 +890,10 @@ void HistoryMessage::applyEdition(const MTPDmessage &message) { if (message.has_entities()) { textWithEntities.entities = TextUtilities::EntitiesFromMTP(message.ventities.v); } - setText(textWithEntities); setReplyMarkup(message.has_reply_markup() ? (&message.vreply_markup) : nullptr); refreshMedia(message.has_media() ? (&message.vmedia) : nullptr); setViewsCount(message.has_views() ? message.vviews.v : -1); + setText(textWithEntities); finishEdition(keyboardTop); } @@ -905,9 +905,9 @@ void HistoryMessage::applyEdition(const MTPDmessageService &message) { } void HistoryMessage::applyEditionToEmpty() { - setEmptyText(); - refreshMedia(nullptr); setReplyMarkup(nullptr); + refreshMedia(nullptr); + setEmptyText(); setViewsCount(-1); finishEditionToEmpty();