diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index 95265945e..6b38ac24b 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -1619,7 +1619,7 @@ void HistoryMessage::setText(const TextWithEntities &textWithEntities) { withLocalEntities(textWithEntities), Ui::ItemTextOptions(this), context); - HistoryView::FillTextWithAnimatedSpoilers(_text, textWithEntities); + HistoryView::FillTextWithAnimatedSpoilers(_text); if (!textWithEntities.text.isEmpty() && _text.isEmpty()) { // If server has allowed some text that we've trim-ed entirely, // just replace it with something so that UI won't look buggy. diff --git a/Telegram/SourceFiles/history/history_service.cpp b/Telegram/SourceFiles/history/history_service.cpp index 83a8144b5..d097473c4 100644 --- a/Telegram/SourceFiles/history/history_service.cpp +++ b/Telegram/SourceFiles/history/history_service.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_item_components.h" #include "history/view/history_view_service_message.h" #include "history/view/history_view_item_preview.h" +#include "history/view/history_view_spoiler_click_handler.h" #include "data/data_folder.h" #include "data/data_session.h" #include "data/data_media_types.h" @@ -695,7 +696,8 @@ HistoryService::PreparedText HistoryService::preparePinnedText() { result.links.push_back(fromLink()); result.links.push_back(pinned->lnk); if (mediaText.isEmpty()) { - auto original = pinned->msg->originalText().text; + auto original = TextUtilities::TextWithSpoilerCommands( + pinned->msg->originalText()); auto cutAt = 0; auto limit = kPinnedMessageTextLimit; auto size = original.size(); @@ -946,7 +948,9 @@ ItemPreview HistoryService::toPreview(ToPreviewOptions options) const { // Because larger version is shown exactly to the left of the preview. //auto media = _media ? _media->toPreview(options) : ItemPreview(); return { - .text = textcmdLink(1, TextUtilities::Clean(notificationText())), + .text = textcmdLink( + 1, + TextUtilities::Clean(notificationText(), true)), //.images = std::move(media.images), //.loadingContext = std::move(media.loadingContext), }; @@ -980,6 +984,7 @@ void HistoryService::setServiceText(const PreparedText &prepared) { st::serviceTextStyle, prepared.text, Ui::ItemTextServiceOptions()); + HistoryView::FillTextWithAnimatedSpoilers(_text); auto linkIndex = 0; for (const auto &link : prepared.links) { // Link indices start with 1. diff --git a/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.cpp b/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.cpp index f7243a5e0..eac71ef24 100644 --- a/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.cpp +++ b/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.cpp @@ -38,15 +38,11 @@ void AnimatedSpoilerClickHandler::onClick(ClickContext context) const { } // namespace -void FillTextWithAnimatedSpoilers( - Ui::Text::String &text, - const TextWithEntities &textWithEntities) { - for (auto i = 0; i < textWithEntities.entities.size(); i++) { - if (textWithEntities.entities[i].type() == EntityType::Spoiler) { - text.setSpoiler( - i + 1, - std::make_shared()); - } +void FillTextWithAnimatedSpoilers(Ui::Text::String &text) { + for (auto i = 0; i < text.spoilersCount(); i++) { + text.setSpoiler( + i + 1, + std::make_shared()); } } diff --git a/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.h b/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.h index 37ebf09c3..4813a31a6 100644 --- a/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.h +++ b/Telegram/SourceFiles/history/view/history_view_spoiler_click_handler.h @@ -9,8 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace HistoryView { -void FillTextWithAnimatedSpoilers( - Ui::Text::String &text, - const TextWithEntities &textWithEntities); +void FillTextWithAnimatedSpoilers(Ui::Text::String &text); } // namespace HistoryView diff --git a/Telegram/SourceFiles/history/view/media/history_view_media.cpp b/Telegram/SourceFiles/history/view/media/history_view_media.cpp index eecc63602..b85b21dc8 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_media.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_media.cpp @@ -197,13 +197,12 @@ Ui::Text::String Media::createCaption(not_null item) const { const auto context = Core::MarkedTextContext{ .session = &history()->session() }; - const auto textWithEntities = item->originalTextWithLocalEntities(); result.setMarkedText( st::messageTextStyle, - textWithEntities, + item->originalTextWithLocalEntities(), Ui::ItemTextOptions(item), context); - FillTextWithAnimatedSpoilers(result, textWithEntities); + FillTextWithAnimatedSpoilers(result); if (const auto width = _parent->skipBlockWidth()) { result.updateSkipBlock(width, _parent->skipBlockHeight()); } diff --git a/Telegram/lib_ui b/Telegram/lib_ui index db871a87f..44853e933 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit db871a87f5a2895b6ffdca106ecdff6f710e2b02 +Subproject commit 44853e933400a7f1536b9847fd0adc2b7d575bff