1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fix video player time display

This commit is contained in:
Luke Pulverenti 2015-06-25 17:50:56 -04:00
parent e88f66812d
commit 939e545723
21 changed files with 149 additions and 115 deletions

View file

@ -552,6 +552,13 @@ To change the drawer container when it's in the right side:
this._setPeeking(false);
}
var dy = event.detail.dy;
var absDy = Math.abs(dy);
if (absDy >= 70) {
// Ignore trackx until we move past the edge peek.
return;
}
this._moveDrawer(this._translateXForDeltaX(dx));
}
},
@ -565,10 +572,14 @@ To change the drawer container when it's in the right side:
sharedPanel = null;
this._moveDrawer(null);
var dx = event.detail.dx;
var dy = event.detail.dy;
var absDy = Math.abs(dy);
if (this.rightDrawer) {
this[xDirection ? 'closeDrawer' : 'openDrawer']();
} else {
this[xDirection || event.detail.dx > -80 ? 'openDrawer' : 'closeDrawer']();
this[xDirection || dx > -80 || absDy >= 70 ? 'openDrawer' : 'closeDrawer']();
}
}
},

View file

@ -3,9 +3,12 @@
// Reports media playback to the device for lock screen control
var currentPlayer;
var lastPlayerState;
var lastUpdateTime = 0;
function allowLocalPlayer() {
return false;
}
function updatePlayerState(state, eventName) {
if (!state.NowPlayingItem) {
@ -16,7 +19,7 @@
var isLocalPlayer = MediaController.getPlayerInfo().isLocalPlayer || false;
// Local players do their own notifications
if (isLocalPlayer) {
if (isLocalPlayer && !allowLocalPlayer()) {
return;
}
@ -25,8 +28,6 @@
eventName = 'positionchange';
}
lastPlayerState = state;
var playState = state.PlayState || {};
var nameHtml = MediaController.getNowPlayingNameHtml(state.NowPlayingItem) || '';
@ -135,6 +136,10 @@
releaseCurrentPlayer();
if (player.isLocalPlayer && !allowLocalPlayer()) {
return;
}
currentPlayer = player;
console.log('binding remotecontrols to MediaPlayer');

View file

@ -120,9 +120,12 @@
return false;
};
self.destroy = function () {
self.cleanup = function (destroyRenderer) {
if (destroyRenderer !== false) {
AndroidVlcPlayer.destroyVlc();
}
AndroidVlcPlayer.destroyVlc();
playerState = {};
};

View file

@ -53,11 +53,17 @@
position: fixed !important;
bottom: 0;
height: auto !important;
/* Need to reset this because it causes the entire panel to be draggable in safari */
box-sizing: initial !important;
}
.verticalScrollingDrawer {
overflow-y: auto !important;
-webkit-overflow-scrolling: touch;
overflow-x: hidden;
/* Need to reset this because it causes the entire panel to be draggable in safari */
box-sizing: initial !important;
}
.dragging .mainDrawerPanel #drawer {
}
.mainDrawerPanel #main {

View file

@ -749,10 +749,6 @@ h1 .imageLink {
padding-bottom: 160px;
}
.dashboardPanel .ui-panel-inner {
padding: 0;
}
.appLinks a {
text-decoration: none !important;
}

View file

@ -77,13 +77,4 @@
.smallPosterTileItem {
width: 30.5%;
}
}
.posterItemText {
text-overflow: ellipsis;
overflow: hidden;
text-wrap: none;
white-space: nowrap;
padding: 5px 4px 4px;
font-weight: 400;
}
}

View file

@ -4,7 +4,7 @@
<title></title>
</head>
<body>
<div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage" data-theme="b" data-require="scripts/itemdetailpage,paperbuttonstyle">
<div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage" data-theme="b" data-require="scripts/itemdetailpage,paperbuttonstyle,tileitemcss">
<div class="itemTabs homeTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav">

View file

@ -94,12 +94,6 @@
setTimeout(function () {
var dlg = document.getElementById(id);
if (options.visibleBackground) {
$(dlg).on('iron-overlay-opened', function(e) {
$('iron-overlay-backdrop').addClass('visibleBackground');
});
}
dlg.open();
// Has to be assigned a z-index after the call to .open()

View file

@ -1,7 +1,7 @@
(function (window, store) {
(function (window) {
function update(key, val) {
store.setItem(key, val);
appStorage.setItem(key, val);
Events.trigger(AppSettings, 'settingupdated', [key]);
}
@ -14,7 +14,7 @@
update('preferredVideoBitrate', val);
}
return parseInt(store.getItem('preferredVideoBitrate') || '') || 1500000;
return parseInt(appStorage.getItem('preferredVideoBitrate') || '') || 1500000;
},
maxChromecastBitrate: function (val) {
@ -22,7 +22,7 @@
update('chromecastBitrate', val);
}
return parseInt(store.getItem('chromecastBitrate') || '') || 3000000;
return parseInt(appStorage.getItem('chromecastBitrate') || '') || 3000000;
},
enableChromecastAc3: function (val) {
@ -30,7 +30,7 @@
update('enablechromecastac3', val.toString());
}
return store.getItem('enablechromecastac3') == 'true';
return appStorage.getItem('enablechromecastac3') == 'true';
},
enableExternalPlayers: function (val) {
@ -38,7 +38,7 @@
update('externalplayers', val.toString());
}
return store.getItem('externalplayers') == 'true';
return appStorage.getItem('externalplayers') == 'true';
},
enableItemPreviews: function (val) {
@ -46,7 +46,7 @@
update('enableItemPreviews', val.toString());
}
return store.getItem('enableItemPreviews') == 'true';
return appStorage.getItem('enableItemPreviews') == 'true';
},
enableFullScreen: function (val) {
@ -54,7 +54,7 @@
update('enableFullScreen', val.toString());
}
return store.getItem('enableFullScreen') == 'true';
return appStorage.getItem('enableFullScreen') == 'true';
},
syncPath: function (val) {
@ -62,10 +62,10 @@
update('syncPath', val.toString());
}
return store.getItem('syncPath');
return appStorage.getItem('syncPath');
}
};
})(window, window.appStorage);
})(window);

View file

@ -423,6 +423,10 @@
});
}).on('pageinitdepends', ".metadataEditorPage", function () {
Dashboard.importCss('css/metadataeditor.css');
}).on('pagebeforehide', ".metadataEditorPage", function () {
var page = this;

View file

@ -1,4 +1,4 @@
(function (window, store) {
(function (window) {
function getDeviceProfile(serverAddress, deviceId, item, startPositionTicks, maxBitrate, mediaSourceId, audioStreamIndex, subtitleStreamIndex) {
@ -484,4 +484,4 @@
showPlayerSelectionMenu: showPlayerSelectionMenu
};
})(window, window.appStorage);
})(window);

View file

@ -128,7 +128,7 @@
var elem = $('.itemVideo');
return $(elem)
return elem
.one('.loadedmetadata')
.one('playing', onOneVideoPlaying)
.on('timeupdate', onTimeUpdate)
@ -146,11 +146,11 @@
if (mediaElement) {
if (val != null) {
mediaElement.currentTime = val;
mediaElement.currentTime = val / 1000;
return;
}
return mediaElement.currentTime;
return (mediaElement.currentTime || 0) * 1000;
}
};
@ -239,7 +239,7 @@
return false;
};
self.destroy = function () {
self.cleanup = function (destroyRenderer) {
self.setCurrentSrc(null);

View file

@ -1,11 +1,11 @@
var LibraryBrowser = (function (window, document, $, screen, store) {
var LibraryBrowser = (function (window, document, $, screen) {
var pageSizeKey = 'pagesize_v4';
return {
getDefaultPageSize: function (key, defaultValue) {
var saved = store.getItem(key || pageSizeKey);
var saved = appStorage.getItem(key || pageSizeKey);
if (saved) {
return parseInt(saved);
@ -29,7 +29,7 @@
loadSavedQueryValues: function (key, query) {
var values = store.getItem(key + '_' + Dashboard.getCurrentUserId());
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
if (values) {
@ -53,7 +53,7 @@
}
try {
store.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
} catch (e) {
}
@ -62,7 +62,7 @@
saveViewSetting: function (key, value) {
try {
store.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
} catch (e) {
}
@ -71,7 +71,7 @@
getSavedViewSetting: function (key) {
var deferred = $.Deferred();
var val = store.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
deferred.resolveWith(null, [val]);
return deferred.promise();
@ -469,6 +469,7 @@
ActionSheetElement.show({
items: items,
positionTo: positionTo,
callback: function (id) {
switch (id) {
@ -2159,7 +2160,7 @@
if (limit && options.updatePageSizeSetting !== false) {
try {
store.setItem(options.pageSizeKey || pageSizeKey, limit);
appStorage.setItem(options.pageSizeKey || pageSizeKey, limit);
} catch (e) {
}
@ -3023,4 +3024,4 @@
}
};
})(window, document, jQuery, screen, window.appStorage);
})(window, document, jQuery, screen);

View file

@ -203,10 +203,13 @@
updateLibraryNavLinks($.mobile.activePage);
});
$('.mainDrawerPanel #drawer').addClass('verticalScrollingDrawer');
}
function onMainDrawerClosed() {
$(document.body).removeClass('bodyWithPopupOpen');
$('.mainDrawerPanel #drawer').removeClass('verticalScrollingDrawer');
}
function closeMainDrawer() {

View file

@ -1,14 +1,14 @@
(function ($, window, store) {
(function ($, window) {
function setMirrorModeEnabled(enabled) {
var val = enabled ? '1' : '0';
store.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
appStorage.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
}
function isMirrorModeEnabled() {
return (store.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
return (appStorage.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
}
var currentDisplayInfo;
@ -891,4 +891,4 @@
mirrorIfEnabled(info);
});
})(jQuery, window, window.appStorage);
})(jQuery, window);

View file

@ -494,13 +494,13 @@
$('.videoSubtitlePopup').popup('close');
};
$(function () {
$(Dashboard).on('footercreated', function () {
var parent = $("#mediaPlayer");
muteButton = $('.muteButton', parent);
unmuteButton = $('.unmuteButton', parent);
currentTimeElement = $('.currentTime', parent);
positionSlider = $(".positionSlider", parent).on('slidestart', function (e) {
isPositionSliderActive = true;

View file

@ -1,4 +1,4 @@
(function (document, setTimeout, clearTimeout, screen, store, $, setInterval, window) {
(function (document, setTimeout, clearTimeout, screen, $, setInterval, window) {
function mediaPlayer() {
@ -431,7 +431,7 @@
self.getCurrentTicks = function (mediaRenderer) {
var playerTime = Math.floor(10000000 * (mediaRenderer || self.currentMediaRenderer).currentTime());
var playerTime = Math.floor(10000 * (mediaRenderer || self.currentMediaRenderer).currentTime());
playerTime += self.startTimeTicksOffset;
@ -510,7 +510,7 @@
if (canClientSeek && params == null) {
mediaRenderer.currentTime(ticks / (1000 * 10000));
mediaRenderer.currentTime(ticks / 10000);
return;
}
@ -855,7 +855,7 @@
}
if (self.isPlaying()) {
self.stop();
self.stop(false);
}
if (item.MediaType !== 'Audio' && item.MediaType !== 'Video') {
@ -1220,13 +1220,13 @@
self.saveVolume = function (val) {
if (val) {
store.setItem("volume", val);
appStorage.setItem("volume", val);
}
};
self.getSavedVolume = function () {
return store.getItem("volume") || 0.5;
return appStorage.getItem("volume") || 0.5;
};
self.shuffle = function (id) {
@ -1344,7 +1344,7 @@
};
self.stop = function () {
self.stop = function (destroyRenderer) {
var mediaRenderer = self.currentMediaRenderer;
@ -1356,7 +1356,8 @@
$(this).off();
this.destroy();
this.cleanup(destroyRenderer);
self.currentMediaRenderer = null;
self.currentItem = null;
self.currentMediaSource = null;
@ -1728,4 +1729,4 @@
});
})(document, setTimeout, clearTimeout, screen, window.appStorage, $, setInterval, window);
})(document, setTimeout, clearTimeout, screen, $, setInterval, window);

View file

@ -366,10 +366,10 @@
}
});
$(page).on('swipedown', function () {
//$(page).on('swipedown', function () {
history.back();
});
// history.back();
//});
$(page).on('click', '.lnkPlayFromIndex', function () {
@ -396,6 +396,7 @@
player.beginPlayerUpdates();
onStateChanged.call(player, e, state);
loadPlaylist($.mobile.activePage);
}
function onPlaybackStopped(e, state) {
@ -405,6 +406,7 @@
player.endPlayerUpdates();
onStateChanged.call(player, e, {});
loadPlaylist($.mobile.activePage);
}
function onStateChanged(e, state) {
@ -632,13 +634,13 @@
var expected = '2';
if (appStorage.getItem('remotecontrolswipedown') != expected) {
Dashboard.alert({
message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
title: Globalize.translate('HeaderAlert')
});
appStorage.setItem('remotecontrolswipedown', expected);
}
//if (appStorage.getItem('remotecontrolswipedown') != expected) {
// Dashboard.alert({
// message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
// title: Globalize.translate('HeaderAlert')
// });
// appStorage.setItem('remotecontrolswipedown', expected);
//}
}

View file

@ -589,39 +589,39 @@ var Dashboard = {
confirmInternal: function (message, title, showCancel, callback) {
$('.confirmFlyout').popup("close").remove();
require(['paperbuttonstyle'], function () {
var html = '<div data-role="popup" class="confirmFlyout" style="max-width:500px;" data-theme="a">';
var id = 'paperdlg' + new Date().getTime();
html += '<div class="ui-bar-a" style="text-align:center;">';
html += '<h3 style="padding: 0 1em;">' + title + '</h3>';
html += '</div>';
var html = '<paper-dialog id="' + id + '" role="alertdialog" entry-animation="fade-in-animation" exit-animation="fade-out-animation" with-backdrop>';
html += '<h2>' + title + '</h2>';
html += '<div>' + message + '</div>';
html += '<div class="buttons">';
html += '<div style="padding: 1em;">';
html += '<div style="padding: 1em .25em;margin: 0;">';
html += message;
html += '</div>';
html += '<p><button type="button" data-icon="check" onclick="$(\'.confirmFlyout\')[0].confirm=true;$(\'.confirmFlyout\').popup(\'close\');" data-theme="b">' + Globalize.translate('ButtonOk') + '</button></p>';
if (showCancel) {
html += '<p><button type="button" data-icon="delete" onclick="$(\'.confirmFlyout\').popup(\'close\');" data-theme="a">' + Globalize.translate('ButtonCancel') + '</button></p>';
}
html += '</div>';
html += '</div>';
$(document.body).append(html);
$('.confirmFlyout').popup({ history: false }).trigger('create').popup("open").on("popupafterclose", function () {
if (callback) {
callback(this.confirm == true);
if (showCancel) {
html += '<paper-button dialog-dismiss>' + Globalize.translate('ButtonCancel') + '</paper-button>';
}
$(this).off("popupafterclose").remove();
html += '<paper-button dialog-confirm autofocus>' + Globalize.translate('ButtonOk') + '</paper-button>';
html += '</div>';
html += '</paper-dialog>';
$(document.body).append(html);
// This timeout is obviously messy but it's unclear how to determine when the webcomponent is ready for use
// element onload never fires
setTimeout(function () {
var dlg = document.getElementById(id);
dlg.open();
// Has to be assigned a z-index after the call to .open()
$(dlg).on('iron-overlay-closed', function (e) {
$(this).remove();
});
}, 300);
});
},
@ -1914,6 +1914,8 @@ var AppInfo = {};
$(document.body).append(footerHtml);
$(Dashboard).trigger('footercreated');
$(window).on("beforeunload", function () {
var apiClient = window.ApiClient;
@ -2044,6 +2046,10 @@ var AppInfo = {};
Dashboard.importCss('css/detailtable.css');
return {};
});
define("tileitemcss", [], function () {
Dashboard.importCss('css/tileitem.css');
return {};
});
if (Dashboard.isRunningInCordova() && $.browser.safari) {
define("actionsheet", ["cordova/ios/actionsheet"]);
@ -2061,7 +2067,7 @@ var AppInfo = {};
drawer.forceNarrow = true;
drawer.drawerWidth = screen.availWidth >= 330 ? "310px" : "270px";
if ($.browser.safari && !AppInfo.isNativeApp) {
if ($.browser.safari) {
drawer.disableEdgeSwipe = true;
}

View file

@ -230,11 +230,11 @@ iron-overlay-backdrop {
padding: 0 12px;
}
paper-dialog > *:last-child {
paper-dialog > *:last-child:not(.buttons) {
margin-bottom: 12px;
}
paper-dialog > *:first-child {
paper-dialog > *:first-child:not(h2) {
margin-top: 12px;
}
@ -242,10 +242,10 @@ paper-icon-button paper-ripple {
color: inherit !important;
}
iron-overlay-backdrop {
paper-dialog + iron-overlay-backdrop {
background-color: transparent !important;
}
iron-overlay-backdrop.visibleBackground {
background-color: #000 !important;
}
paper-dialog[role="alertdialog"] + iron-overlay-backdrop {
background-color: #000 !important;
}

View file

@ -13440,6 +13440,13 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
this._setPeeking(false);
}
var dy = event.detail.dy;
var absDy = Math.abs(dy);
if (absDy >= 70) {
// Ignore trackx until we move past the edge peek.
return;
}
this._moveDrawer(this._translateXForDeltaX(dx));
}
},
@ -13453,10 +13460,14 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
sharedPanel = null;
this._moveDrawer(null);
var dx = event.detail.dx;
var dy = event.detail.dy;
var absDy = Math.abs(dy);
if (this.rightDrawer) {
this[xDirection ? 'closeDrawer' : 'openDrawer']();
} else {
this[xDirection || event.detail.dx > -80 ? 'openDrawer' : 'closeDrawer']();
this[xDirection || dx > -80 || absDy >= 70 ? 'openDrawer' : 'closeDrawer']();
}
}
},