From af7ea90246cadc6676a7bf5c2d4b7366a5be9811 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 1 Jul 2021 15:00:09 +0300 Subject: [PATCH] Added floating panel of playing playlist for scheduled audio files. --- Telegram/SourceFiles/info/info_controller.cpp | 17 ++++++++++++++++- .../info/media/info_media_list_widget.cpp | 2 +- .../media/player/media_player_panel.cpp | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) 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;