jellyfish-web/src/components/playmenu.js

70 lines
1.8 KiB
JavaScript
Raw Normal View History

2020-08-14 08:46:34 +02:00
import actionsheet from './actionSheet/actionSheet';
import datetime from '../scripts/datetime';
import playbackManager from './playback/playbackmanager';
import globalize from '../scripts/globalize';
2018-10-23 01:05:09 +03:00
2020-05-03 20:39:02 +05:30
export function show(options) {
2020-10-07 21:12:14 +09:00
const item = options.item;
2020-10-07 21:12:14 +09:00
const resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null;
2020-10-07 21:12:14 +09:00
const playableItemId = item.Type === 'Program' ? item.ChannelId : item.Id;
2020-05-03 23:59:23 +05:30
if (!resumePositionTicks || item.IsFolder) {
2020-05-03 20:39:02 +05:30
playbackManager.play({
ids: [playableItemId],
2020-05-03 23:59:23 +05:30
serverId: item.ServerId
2020-05-03 20:39:02 +05:30
});
return;
}
2020-10-07 21:12:14 +09:00
const menuItems = [];
2020-05-03 20:39:02 +05:30
menuItems.push({
name: globalize.translate('ResumeAt', datetime.getDisplayRunningTime(resumePositionTicks)),
id: 'resume'
});
2020-05-03 20:39:02 +05:30
menuItems.push({
name: globalize.translate('PlayFromBeginning'),
id: 'play'
});
2020-05-03 20:39:02 +05:30
actionsheet.show({
2020-05-03 20:39:02 +05:30
items: menuItems,
positionTo: options.positionTo
2020-05-03 20:39:02 +05:30
}).then(function (id) {
switch (id) {
case 'play':
2020-05-03 23:59:23 +05:30
playbackManager.play({
ids: [playableItemId],
serverId: item.ServerId
});
break;
2020-05-03 20:39:02 +05:30
case 'resume':
2020-05-03 23:59:23 +05:30
playbackManager.play({
ids: [playableItemId],
startPositionTicks: resumePositionTicks,
serverId: item.ServerId
});
break;
2020-05-03 20:39:02 +05:30
case 'queue':
2020-05-03 23:59:23 +05:30
playbackManager.queue({
items: [item]
});
break;
2020-05-03 20:39:02 +05:30
case 'shuffle':
2020-05-03 23:59:23 +05:30
playbackManager.shuffle(item);
break;
2020-05-03 20:39:02 +05:30
default:
2020-05-03 23:59:23 +05:30
break;
2020-05-03 20:39:02 +05:30
}
});
}
2020-05-03 20:39:02 +05:30
export default {
show: show
};