diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index e623df3a5..19d89c500 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -1995,11 +1995,18 @@ MediaStory::MediaStory( owner->registerStoryItem(storyId, parent); const auto stories = &owner->stories(); - const auto maybeStory = stories->lookup(storyId); - if (!maybeStory) { + if (const auto maybeStory = stories->lookup(storyId)) { + if (!_mention) { + parent->setText((*maybeStory)->caption()); + } + } else { if (maybeStory.error() == NoStory::Unknown) { stories->resolve(storyId, crl::guard(this, [=] { - if (!stories->lookup(storyId)) { + if (const auto maybeStory = stories->lookup(storyId)) { + if (!_mention) { + parent->setText((*maybeStory)->caption()); + } + } else { _expired = true; } if (_mention) { @@ -2051,7 +2058,9 @@ TextWithEntities MediaStory::notificationText() const { && maybeStory.error() == Data::NoStory::Deleted)) ? tr::lng_in_dlg_story_expired : tr::lng_in_dlg_story)(tr::now), - parent()->originalText()); + (maybeStory + ? (*maybeStory)->caption() + : TextWithEntities())); } QString MediaStory::pinnedTextSubstring() const { @@ -2091,6 +2100,9 @@ std::unique_ptr MediaStory::createView( const auto stories = &parent()->history()->owner().stories(); const auto maybeStory = stories->lookup(_storyId); if (!maybeStory) { + if (!_mention) { + realParent->setText(TextWithEntities()); + } if (maybeStory.error() == Data::NoStory::Deleted) { _expired = true; return nullptr; @@ -2112,6 +2124,7 @@ std::unique_ptr MediaStory::createView( message, std::make_unique(message, story)); } else { + realParent->setText(story->caption()); if (const auto photo = story->photo()) { return std::make_unique( message, diff --git a/Telegram/SourceFiles/history/view/history_view_element.cpp b/Telegram/SourceFiles/history/view/history_view_element.cpp index f86159d38..0503f04ff 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.cpp +++ b/Telegram/SourceFiles/history/view/history_view_element.cpp @@ -846,12 +846,8 @@ void Element::validateText() { _media = nullptr; if (!storyMention) { if (_text.isEmpty()) { - auto now = Ui::Text::Italic( - tr::lng_forwarded_story_expired(tr::now)); - if (!text.empty()) { - now.append(u"\n\n"_q).append(text); - } - setTextWithLinks(std::move(now)); + setTextWithLinks(Ui::Text::Italic( + tr::lng_forwarded_story_expired(tr::now))); } return; } diff --git a/Telegram/SourceFiles/media/stories/media_stories_controller.cpp b/Telegram/SourceFiles/media/stories/media_stories_controller.cpp index 42cf67c5a..237401606 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_controller.cpp +++ b/Telegram/SourceFiles/media/stories/media_stories_controller.cpp @@ -64,7 +64,7 @@ namespace { constexpr auto kPhotoProgressInterval = crl::time(100); constexpr auto kPhotoDuration = 5 * crl::time(1000); -constexpr auto kFullContentFade = 0.35; +constexpr auto kFullContentFade = 0.6; constexpr auto kSiblingMultiplierDefault = 0.448; constexpr auto kSiblingMultiplierMax = 0.72; constexpr auto kSiblingOutsidePart = 0.24; diff --git a/Telegram/SourceFiles/media/stories/media_stories_share.cpp b/Telegram/SourceFiles/media/stories/media_stories_share.cpp index d6fe67adc..413fbf3d1 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_share.cpp +++ b/Telegram/SourceFiles/media/stories/media_stories_share.cpp @@ -8,7 +8,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/stories/media_stories_share.h" #include "api/api_common.h" -#include "api/api_text_entities.h" #include "apiwrap.h" #include "base/random.h" #include "boxes/share_box.h" @@ -87,7 +86,7 @@ namespace Media::Stories { for (const auto thread : result) { const auto error = GetErrorTextForSending( thread, - { .story = story }); + { .story = story, .text = &comment }); if (!error.isEmpty()) { return std::make_pair(error, thread); } @@ -106,21 +105,16 @@ namespace Media::Stories { return; } - auto caption = TextWithEntities{ - comment.text, - TextUtilities::ConvertTextTagsToEntities(comment.tags) - }; - TextUtilities::Trim(caption); - auto sentEntities = Api::EntitiesToMTP( - session, - caption.entities, - Api::ConvertOption::SkipLocal); - const auto captionText = caption.text; - const auto api = &story->owner().session().api(); auto &histories = story->owner().histories(); for (const auto thread : result) { const auto action = Api::SendAction(thread, options); + if (!comment.text.isEmpty()) { + auto message = Api::MessageToSend(action); + message.textWithTags = comment; + message.action.clearDraft = false; + api->sendMessage(std::move(message)); + } const auto peer = thread->peer(); const auto threadHistory = thread->owningHistory(); const auto randomId = base::RandomValue(); @@ -132,9 +126,6 @@ namespace Media::Stories { if (silentPost) { sendFlags |= MTPmessages_SendMedia::Flag::f_silent; } - if (!sentEntities.v.isEmpty()) { - sendFlags |= MTPmessages_SendMedia::Flag::f_entities; - } const auto done = [=] { if (!--state->requests) { if (show->valid()) { @@ -154,10 +145,10 @@ namespace Media::Stories { MTP_inputMediaStory( user->inputUser, MTP_int(id.story)), - MTP_string(captionText), + MTPstring(), MTP_long(randomId), MTPReplyMarkup(), - sentEntities, + MTPVector(), MTP_int(action.options.scheduled), MTP_inputPeerEmpty() ), [=](const MTPUpdates &result, const MTP::Response &response) {