mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-19 06:26:55 +00:00
Fix game scores display.
This commit is contained in:
parent
e5b2e0a6b5
commit
64d5a6acd5
@ -205,6 +205,10 @@ bool Media::consumeMessageText(const TextWithEntities &text) {
|
||||
return false;
|
||||
}
|
||||
|
||||
TextWithEntities Media::consumedMessageText() const {
|
||||
return {};
|
||||
}
|
||||
|
||||
std::unique_ptr<HistoryMedia> Media::createView(
|
||||
not_null<HistoryView::Element*> 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);
|
||||
}
|
||||
|
@ -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<ChannelData*> 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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -805,6 +805,8 @@ public:
|
||||
return _attach.get();
|
||||
}
|
||||
|
||||
void parentTextUpdated() override;
|
||||
|
||||
~HistoryGame();
|
||||
|
||||
private:
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user