diff --git a/Telegram/SourceFiles/info/info_controller.cpp b/Telegram/SourceFiles/info/info_controller.cpp index 1ee91ed1aa..a2c15a80ca 100644 --- a/Telegram/SourceFiles/info/info_controller.cpp +++ b/Telegram/SourceFiles/info/info_controller.cpp @@ -70,7 +70,22 @@ rpl::producer AbstractController::mediaSource( int limitAfter) const { Expects(peer() != nullptr); - return SharedMediaMergedViewer( + const auto isScheduled = [&] { + if (IsServerMsgId(aroundId)) { + return false; + } + const auto channelId = peerToChannel(peer()->id); + if (const auto item = session().data().message(channelId, aroundId)) { + return item->isScheduled(); + } + return false; + }(); + + auto mediaViewer = isScheduled + ? SharedScheduledMediaViewer + : SharedMediaMergedViewer; + + return mediaViewer( &session(), SharedMediaMergedKey( SparseIdsMergedSlice::Key( diff --git a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp index 471a0b0680..f53769e4eb 100644 --- a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp @@ -913,7 +913,7 @@ SparseIdsMergedSlice::Key ListWidget::sliceKey( void ListWidget::refreshViewer() { _viewerLifetime.destroy(); - auto idForViewer = sliceKey(_universalAroundId).universalId; + const auto idForViewer = sliceKey(_universalAroundId).universalId; _controller->mediaSource( idForViewer, _idsLimit, diff --git a/Telegram/SourceFiles/media/player/media_player_panel.cpp b/Telegram/SourceFiles/media/player/media_player_panel.cpp index f271e32cbe..b09b5f912c 100644 --- a/Telegram/SourceFiles/media/player/media_player_panel.cpp +++ b/Telegram/SourceFiles/media/player/media_player_panel.cpp @@ -244,7 +244,7 @@ void Panel::refreshList() { const auto document = media ? media->document() : nullptr; if (!document || !document->isSharedMediaMusic() - || !IsServerMsgId(item->id)) { + || (!IsServerMsgId(item->id) && !item->isScheduled())) { return nullptr; } const auto result = item->history()->peer;