Added floating panel of playing playlist for scheduled audio files.

This commit is contained in:
23rd 2021-07-01 15:00:09 +03:00
parent 348cf4829c
commit af7ea90246
3 changed files with 18 additions and 3 deletions

View file

@ -70,7 +70,22 @@ rpl::producer<SparseIdsMergedSlice> 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(

View file

@ -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,

View file

@ -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;