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:
parent
e88f66812d
commit
939e545723
21 changed files with 149 additions and 115 deletions
|
@ -552,6 +552,13 @@ To change the drawer container when it's in the right side:
|
||||||
this._setPeeking(false);
|
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));
|
this._moveDrawer(this._translateXForDeltaX(dx));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -565,10 +572,14 @@ To change the drawer container when it's in the right side:
|
||||||
sharedPanel = null;
|
sharedPanel = null;
|
||||||
this._moveDrawer(null);
|
this._moveDrawer(null);
|
||||||
|
|
||||||
|
var dx = event.detail.dx;
|
||||||
|
var dy = event.detail.dy;
|
||||||
|
var absDy = Math.abs(dy);
|
||||||
|
|
||||||
if (this.rightDrawer) {
|
if (this.rightDrawer) {
|
||||||
this[xDirection ? 'closeDrawer' : 'openDrawer']();
|
this[xDirection ? 'closeDrawer' : 'openDrawer']();
|
||||||
} else {
|
} else {
|
||||||
this[xDirection || event.detail.dx > -80 ? 'openDrawer' : 'closeDrawer']();
|
this[xDirection || dx > -80 || absDy >= 70 ? 'openDrawer' : 'closeDrawer']();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
13
dashboard-ui/cordova/android/mediasession.js
vendored
13
dashboard-ui/cordova/android/mediasession.js
vendored
|
@ -3,9 +3,12 @@
|
||||||
// Reports media playback to the device for lock screen control
|
// Reports media playback to the device for lock screen control
|
||||||
|
|
||||||
var currentPlayer;
|
var currentPlayer;
|
||||||
var lastPlayerState;
|
|
||||||
var lastUpdateTime = 0;
|
var lastUpdateTime = 0;
|
||||||
|
|
||||||
|
function allowLocalPlayer() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function updatePlayerState(state, eventName) {
|
function updatePlayerState(state, eventName) {
|
||||||
|
|
||||||
if (!state.NowPlayingItem) {
|
if (!state.NowPlayingItem) {
|
||||||
|
@ -16,7 +19,7 @@
|
||||||
var isLocalPlayer = MediaController.getPlayerInfo().isLocalPlayer || false;
|
var isLocalPlayer = MediaController.getPlayerInfo().isLocalPlayer || false;
|
||||||
|
|
||||||
// Local players do their own notifications
|
// Local players do their own notifications
|
||||||
if (isLocalPlayer) {
|
if (isLocalPlayer && !allowLocalPlayer()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,8 +28,6 @@
|
||||||
eventName = 'positionchange';
|
eventName = 'positionchange';
|
||||||
}
|
}
|
||||||
|
|
||||||
lastPlayerState = state;
|
|
||||||
|
|
||||||
var playState = state.PlayState || {};
|
var playState = state.PlayState || {};
|
||||||
|
|
||||||
var nameHtml = MediaController.getNowPlayingNameHtml(state.NowPlayingItem) || '';
|
var nameHtml = MediaController.getNowPlayingNameHtml(state.NowPlayingItem) || '';
|
||||||
|
@ -135,6 +136,10 @@
|
||||||
|
|
||||||
releaseCurrentPlayer();
|
releaseCurrentPlayer();
|
||||||
|
|
||||||
|
if (player.isLocalPlayer && !allowLocalPlayer()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
currentPlayer = player;
|
currentPlayer = player;
|
||||||
|
|
||||||
console.log('binding remotecontrols to MediaPlayer');
|
console.log('binding remotecontrols to MediaPlayer');
|
||||||
|
|
7
dashboard-ui/cordova/android/vlcplayer.js
vendored
7
dashboard-ui/cordova/android/vlcplayer.js
vendored
|
@ -120,9 +120,12 @@
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.destroy = function () {
|
self.cleanup = function (destroyRenderer) {
|
||||||
|
|
||||||
|
if (destroyRenderer !== false) {
|
||||||
|
AndroidVlcPlayer.destroyVlc();
|
||||||
|
}
|
||||||
|
|
||||||
AndroidVlcPlayer.destroyVlc();
|
|
||||||
playerState = {};
|
playerState = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -53,11 +53,17 @@
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: auto !important;
|
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;
|
overflow-y: auto !important;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
overflow-x: hidden;
|
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 {
|
.mainDrawerPanel #main {
|
||||||
|
|
|
@ -749,10 +749,6 @@ h1 .imageLink {
|
||||||
padding-bottom: 160px;
|
padding-bottom: 160px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardPanel .ui-panel-inner {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.appLinks a {
|
.appLinks a {
|
||||||
text-decoration: none !important;
|
text-decoration: none !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,12 +78,3 @@
|
||||||
width: 30.5%;
|
width: 30.5%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.posterItemText {
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
overflow: hidden;
|
|
||||||
text-wrap: none;
|
|
||||||
white-space: nowrap;
|
|
||||||
padding: 5px 4px 4px;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<title></title>
|
<title></title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<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="itemTabs homeTabs" style="display: none;">
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
|
|
|
@ -94,12 +94,6 @@
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
var dlg = document.getElementById(id);
|
var dlg = document.getElementById(id);
|
||||||
|
|
||||||
if (options.visibleBackground) {
|
|
||||||
$(dlg).on('iron-overlay-opened', function(e) {
|
|
||||||
$('iron-overlay-backdrop').addClass('visibleBackground');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
dlg.open();
|
dlg.open();
|
||||||
|
|
||||||
// Has to be assigned a z-index after the call to .open()
|
// Has to be assigned a z-index after the call to .open()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
(function (window, store) {
|
(function (window) {
|
||||||
|
|
||||||
function update(key, val) {
|
function update(key, val) {
|
||||||
store.setItem(key, val);
|
appStorage.setItem(key, val);
|
||||||
|
|
||||||
Events.trigger(AppSettings, 'settingupdated', [key]);
|
Events.trigger(AppSettings, 'settingupdated', [key]);
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
update('preferredVideoBitrate', val);
|
update('preferredVideoBitrate', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return parseInt(store.getItem('preferredVideoBitrate') || '') || 1500000;
|
return parseInt(appStorage.getItem('preferredVideoBitrate') || '') || 1500000;
|
||||||
},
|
},
|
||||||
maxChromecastBitrate: function (val) {
|
maxChromecastBitrate: function (val) {
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
update('chromecastBitrate', val);
|
update('chromecastBitrate', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return parseInt(store.getItem('chromecastBitrate') || '') || 3000000;
|
return parseInt(appStorage.getItem('chromecastBitrate') || '') || 3000000;
|
||||||
},
|
},
|
||||||
enableChromecastAc3: function (val) {
|
enableChromecastAc3: function (val) {
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
update('enablechromecastac3', val.toString());
|
update('enablechromecastac3', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return store.getItem('enablechromecastac3') == 'true';
|
return appStorage.getItem('enablechromecastac3') == 'true';
|
||||||
},
|
},
|
||||||
enableExternalPlayers: function (val) {
|
enableExternalPlayers: function (val) {
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
update('externalplayers', val.toString());
|
update('externalplayers', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return store.getItem('externalplayers') == 'true';
|
return appStorage.getItem('externalplayers') == 'true';
|
||||||
},
|
},
|
||||||
enableItemPreviews: function (val) {
|
enableItemPreviews: function (val) {
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
update('enableItemPreviews', val.toString());
|
update('enableItemPreviews', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return store.getItem('enableItemPreviews') == 'true';
|
return appStorage.getItem('enableItemPreviews') == 'true';
|
||||||
},
|
},
|
||||||
enableFullScreen: function (val) {
|
enableFullScreen: function (val) {
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
update('enableFullScreen', val.toString());
|
update('enableFullScreen', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return store.getItem('enableFullScreen') == 'true';
|
return appStorage.getItem('enableFullScreen') == 'true';
|
||||||
},
|
},
|
||||||
syncPath: function (val) {
|
syncPath: function (val) {
|
||||||
|
|
||||||
|
@ -62,10 +62,10 @@
|
||||||
update('syncPath', val.toString());
|
update('syncPath', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return store.getItem('syncPath');
|
return appStorage.getItem('syncPath');
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
})(window, window.appStorage);
|
})(window);
|
|
@ -423,6 +423,10 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
}).on('pageinitdepends', ".metadataEditorPage", function () {
|
||||||
|
|
||||||
|
Dashboard.importCss('css/metadataeditor.css');
|
||||||
|
|
||||||
}).on('pagebeforehide', ".metadataEditorPage", function () {
|
}).on('pagebeforehide', ".metadataEditorPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
(function (window, store) {
|
(function (window) {
|
||||||
|
|
||||||
function getDeviceProfile(serverAddress, deviceId, item, startPositionTicks, maxBitrate, mediaSourceId, audioStreamIndex, subtitleStreamIndex) {
|
function getDeviceProfile(serverAddress, deviceId, item, startPositionTicks, maxBitrate, mediaSourceId, audioStreamIndex, subtitleStreamIndex) {
|
||||||
|
|
||||||
|
@ -484,4 +484,4 @@
|
||||||
showPlayerSelectionMenu: showPlayerSelectionMenu
|
showPlayerSelectionMenu: showPlayerSelectionMenu
|
||||||
};
|
};
|
||||||
|
|
||||||
})(window, window.appStorage);
|
})(window);
|
|
@ -128,7 +128,7 @@
|
||||||
|
|
||||||
var elem = $('.itemVideo');
|
var elem = $('.itemVideo');
|
||||||
|
|
||||||
return $(elem)
|
return elem
|
||||||
.one('.loadedmetadata')
|
.one('.loadedmetadata')
|
||||||
.one('playing', onOneVideoPlaying)
|
.one('playing', onOneVideoPlaying)
|
||||||
.on('timeupdate', onTimeUpdate)
|
.on('timeupdate', onTimeUpdate)
|
||||||
|
@ -146,11 +146,11 @@
|
||||||
|
|
||||||
if (mediaElement) {
|
if (mediaElement) {
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
mediaElement.currentTime = val;
|
mediaElement.currentTime = val / 1000;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mediaElement.currentTime;
|
return (mediaElement.currentTime || 0) * 1000;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.destroy = function () {
|
self.cleanup = function (destroyRenderer) {
|
||||||
|
|
||||||
self.setCurrentSrc(null);
|
self.setCurrentSrc(null);
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
var LibraryBrowser = (function (window, document, $, screen, store) {
|
var LibraryBrowser = (function (window, document, $, screen) {
|
||||||
|
|
||||||
var pageSizeKey = 'pagesize_v4';
|
var pageSizeKey = 'pagesize_v4';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getDefaultPageSize: function (key, defaultValue) {
|
getDefaultPageSize: function (key, defaultValue) {
|
||||||
|
|
||||||
var saved = store.getItem(key || pageSizeKey);
|
var saved = appStorage.getItem(key || pageSizeKey);
|
||||||
|
|
||||||
if (saved) {
|
if (saved) {
|
||||||
return parseInt(saved);
|
return parseInt(saved);
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
loadSavedQueryValues: function (key, query) {
|
loadSavedQueryValues: function (key, query) {
|
||||||
|
|
||||||
var values = store.getItem(key + '_' + Dashboard.getCurrentUserId());
|
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
|
||||||
|
|
||||||
if (values) {
|
if (values) {
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
store.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
|
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
saveViewSetting: function (key, value) {
|
saveViewSetting: function (key, value) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
store.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
getSavedViewSetting: function (key) {
|
getSavedViewSetting: function (key) {
|
||||||
|
|
||||||
var deferred = $.Deferred();
|
var deferred = $.Deferred();
|
||||||
var val = store.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
|
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
|
||||||
|
|
||||||
deferred.resolveWith(null, [val]);
|
deferred.resolveWith(null, [val]);
|
||||||
return deferred.promise();
|
return deferred.promise();
|
||||||
|
@ -469,6 +469,7 @@
|
||||||
|
|
||||||
ActionSheetElement.show({
|
ActionSheetElement.show({
|
||||||
items: items,
|
items: items,
|
||||||
|
positionTo: positionTo,
|
||||||
callback: function (id) {
|
callback: function (id) {
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
@ -2159,7 +2160,7 @@
|
||||||
|
|
||||||
if (limit && options.updatePageSizeSetting !== false) {
|
if (limit && options.updatePageSizeSetting !== false) {
|
||||||
try {
|
try {
|
||||||
store.setItem(options.pageSizeKey || pageSizeKey, limit);
|
appStorage.setItem(options.pageSizeKey || pageSizeKey, limit);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3023,4 +3024,4 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
})(window, document, jQuery, screen, window.appStorage);
|
})(window, document, jQuery, screen);
|
|
@ -203,10 +203,13 @@
|
||||||
|
|
||||||
updateLibraryNavLinks($.mobile.activePage);
|
updateLibraryNavLinks($.mobile.activePage);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.mainDrawerPanel #drawer').addClass('verticalScrollingDrawer');
|
||||||
}
|
}
|
||||||
function onMainDrawerClosed() {
|
function onMainDrawerClosed() {
|
||||||
|
|
||||||
$(document.body).removeClass('bodyWithPopupOpen');
|
$(document.body).removeClass('bodyWithPopupOpen');
|
||||||
|
$('.mainDrawerPanel #drawer').removeClass('verticalScrollingDrawer');
|
||||||
}
|
}
|
||||||
function closeMainDrawer() {
|
function closeMainDrawer() {
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
(function ($, window, store) {
|
(function ($, window) {
|
||||||
|
|
||||||
function setMirrorModeEnabled(enabled) {
|
function setMirrorModeEnabled(enabled) {
|
||||||
|
|
||||||
var val = enabled ? '1' : '0';
|
var val = enabled ? '1' : '0';
|
||||||
|
|
||||||
store.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
|
appStorage.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
|
||||||
|
|
||||||
}
|
}
|
||||||
function isMirrorModeEnabled() {
|
function isMirrorModeEnabled() {
|
||||||
return (store.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
|
return (appStorage.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentDisplayInfo;
|
var currentDisplayInfo;
|
||||||
|
@ -891,4 +891,4 @@
|
||||||
mirrorIfEnabled(info);
|
mirrorIfEnabled(info);
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery, window, window.appStorage);
|
})(jQuery, window);
|
|
@ -494,13 +494,13 @@
|
||||||
$('.videoSubtitlePopup').popup('close');
|
$('.videoSubtitlePopup').popup('close');
|
||||||
};
|
};
|
||||||
|
|
||||||
$(function () {
|
$(Dashboard).on('footercreated', function () {
|
||||||
|
|
||||||
var parent = $("#mediaPlayer");
|
var parent = $("#mediaPlayer");
|
||||||
|
|
||||||
muteButton = $('.muteButton', parent);
|
muteButton = $('.muteButton', parent);
|
||||||
unmuteButton = $('.unmuteButton', parent);
|
unmuteButton = $('.unmuteButton', parent);
|
||||||
currentTimeElement = $('.currentTime', parent);
|
currentTimeElement = $('.currentTime', parent);
|
||||||
|
|
||||||
positionSlider = $(".positionSlider", parent).on('slidestart', function (e) {
|
positionSlider = $(".positionSlider", parent).on('slidestart', function (e) {
|
||||||
|
|
||||||
isPositionSliderActive = true;
|
isPositionSliderActive = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
(function (document, setTimeout, clearTimeout, screen, store, $, setInterval, window) {
|
(function (document, setTimeout, clearTimeout, screen, $, setInterval, window) {
|
||||||
|
|
||||||
function mediaPlayer() {
|
function mediaPlayer() {
|
||||||
|
|
||||||
|
@ -431,7 +431,7 @@
|
||||||
|
|
||||||
self.getCurrentTicks = function (mediaRenderer) {
|
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;
|
playerTime += self.startTimeTicksOffset;
|
||||||
|
|
||||||
|
@ -510,7 +510,7 @@
|
||||||
|
|
||||||
if (canClientSeek && params == null) {
|
if (canClientSeek && params == null) {
|
||||||
|
|
||||||
mediaRenderer.currentTime(ticks / (1000 * 10000));
|
mediaRenderer.currentTime(ticks / 10000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -855,7 +855,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.isPlaying()) {
|
if (self.isPlaying()) {
|
||||||
self.stop();
|
self.stop(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.MediaType !== 'Audio' && item.MediaType !== 'Video') {
|
if (item.MediaType !== 'Audio' && item.MediaType !== 'Video') {
|
||||||
|
@ -1220,13 +1220,13 @@
|
||||||
self.saveVolume = function (val) {
|
self.saveVolume = function (val) {
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
store.setItem("volume", val);
|
appStorage.setItem("volume", val);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getSavedVolume = function () {
|
self.getSavedVolume = function () {
|
||||||
return store.getItem("volume") || 0.5;
|
return appStorage.getItem("volume") || 0.5;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.shuffle = function (id) {
|
self.shuffle = function (id) {
|
||||||
|
@ -1344,7 +1344,7 @@
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.stop = function () {
|
self.stop = function (destroyRenderer) {
|
||||||
|
|
||||||
var mediaRenderer = self.currentMediaRenderer;
|
var mediaRenderer = self.currentMediaRenderer;
|
||||||
|
|
||||||
|
@ -1356,7 +1356,8 @@
|
||||||
|
|
||||||
$(this).off();
|
$(this).off();
|
||||||
|
|
||||||
this.destroy();
|
this.cleanup(destroyRenderer);
|
||||||
|
|
||||||
self.currentMediaRenderer = null;
|
self.currentMediaRenderer = null;
|
||||||
self.currentItem = null;
|
self.currentItem = null;
|
||||||
self.currentMediaSource = null;
|
self.currentMediaSource = null;
|
||||||
|
@ -1728,4 +1729,4 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
})(document, setTimeout, clearTimeout, screen, window.appStorage, $, setInterval, window);
|
})(document, setTimeout, clearTimeout, screen, $, setInterval, window);
|
|
@ -366,10 +366,10 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(page).on('swipedown', function () {
|
//$(page).on('swipedown', function () {
|
||||||
|
|
||||||
history.back();
|
// history.back();
|
||||||
});
|
//});
|
||||||
|
|
||||||
$(page).on('click', '.lnkPlayFromIndex', function () {
|
$(page).on('click', '.lnkPlayFromIndex', function () {
|
||||||
|
|
||||||
|
@ -396,6 +396,7 @@
|
||||||
player.beginPlayerUpdates();
|
player.beginPlayerUpdates();
|
||||||
|
|
||||||
onStateChanged.call(player, e, state);
|
onStateChanged.call(player, e, state);
|
||||||
|
loadPlaylist($.mobile.activePage);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, state) {
|
||||||
|
@ -405,6 +406,7 @@
|
||||||
player.endPlayerUpdates();
|
player.endPlayerUpdates();
|
||||||
|
|
||||||
onStateChanged.call(player, e, {});
|
onStateChanged.call(player, e, {});
|
||||||
|
loadPlaylist($.mobile.activePage);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStateChanged(e, state) {
|
function onStateChanged(e, state) {
|
||||||
|
@ -632,13 +634,13 @@
|
||||||
|
|
||||||
var expected = '2';
|
var expected = '2';
|
||||||
|
|
||||||
if (appStorage.getItem('remotecontrolswipedown') != expected) {
|
//if (appStorage.getItem('remotecontrolswipedown') != expected) {
|
||||||
Dashboard.alert({
|
// Dashboard.alert({
|
||||||
message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
|
// message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
|
||||||
title: Globalize.translate('HeaderAlert')
|
// title: Globalize.translate('HeaderAlert')
|
||||||
});
|
// });
|
||||||
appStorage.setItem('remotecontrolswipedown', expected);
|
// appStorage.setItem('remotecontrolswipedown', expected);
|
||||||
}
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -589,39 +589,39 @@ var Dashboard = {
|
||||||
|
|
||||||
confirmInternal: function (message, title, showCancel, callback) {
|
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;">';
|
var html = '<paper-dialog id="' + id + '" role="alertdialog" entry-animation="fade-in-animation" exit-animation="fade-out-animation" with-backdrop>';
|
||||||
html += '<h3 style="padding: 0 1em;">' + title + '</h3>';
|
html += '<h2>' + title + '</h2>';
|
||||||
html += '</div>';
|
html += '<div>' + message + '</div>';
|
||||||
|
html += '<div class="buttons">';
|
||||||
|
|
||||||
html += '<div style="padding: 1em;">';
|
if (showCancel) {
|
||||||
|
html += '<paper-button dialog-dismiss>' + Globalize.translate('ButtonCancel') + '</paper-button>';
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(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);
|
$(document.body).append(footerHtml);
|
||||||
|
|
||||||
|
$(Dashboard).trigger('footercreated');
|
||||||
|
|
||||||
$(window).on("beforeunload", function () {
|
$(window).on("beforeunload", function () {
|
||||||
|
|
||||||
var apiClient = window.ApiClient;
|
var apiClient = window.ApiClient;
|
||||||
|
@ -2044,6 +2046,10 @@ var AppInfo = {};
|
||||||
Dashboard.importCss('css/detailtable.css');
|
Dashboard.importCss('css/detailtable.css');
|
||||||
return {};
|
return {};
|
||||||
});
|
});
|
||||||
|
define("tileitemcss", [], function () {
|
||||||
|
Dashboard.importCss('css/tileitem.css');
|
||||||
|
return {};
|
||||||
|
});
|
||||||
|
|
||||||
if (Dashboard.isRunningInCordova() && $.browser.safari) {
|
if (Dashboard.isRunningInCordova() && $.browser.safari) {
|
||||||
define("actionsheet", ["cordova/ios/actionsheet"]);
|
define("actionsheet", ["cordova/ios/actionsheet"]);
|
||||||
|
@ -2061,7 +2067,7 @@ var AppInfo = {};
|
||||||
drawer.forceNarrow = true;
|
drawer.forceNarrow = true;
|
||||||
drawer.drawerWidth = screen.availWidth >= 330 ? "310px" : "270px";
|
drawer.drawerWidth = screen.availWidth >= 330 ? "310px" : "270px";
|
||||||
|
|
||||||
if ($.browser.safari && !AppInfo.isNativeApp) {
|
if ($.browser.safari) {
|
||||||
drawer.disableEdgeSwipe = true;
|
drawer.disableEdgeSwipe = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
dashboard-ui/thirdparty/paper-button-style.css
vendored
12
dashboard-ui/thirdparty/paper-button-style.css
vendored
|
@ -230,11 +230,11 @@ iron-overlay-backdrop {
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-dialog > *:last-child {
|
paper-dialog > *:last-child:not(.buttons) {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-dialog > *:first-child {
|
paper-dialog > *:first-child:not(h2) {
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,10 +242,10 @@ paper-icon-button paper-ripple {
|
||||||
color: inherit !important;
|
color: inherit !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
iron-overlay-backdrop {
|
paper-dialog + iron-overlay-backdrop {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
iron-overlay-backdrop.visibleBackground {
|
paper-dialog[role="alertdialog"] + iron-overlay-backdrop {
|
||||||
background-color: #000 !important;
|
background-color: #000 !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13440,6 +13440,13 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
||||||
this._setPeeking(false);
|
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));
|
this._moveDrawer(this._translateXForDeltaX(dx));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -13453,10 +13460,14 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
|
||||||
sharedPanel = null;
|
sharedPanel = null;
|
||||||
this._moveDrawer(null);
|
this._moveDrawer(null);
|
||||||
|
|
||||||
|
var dx = event.detail.dx;
|
||||||
|
var dy = event.detail.dy;
|
||||||
|
var absDy = Math.abs(dy);
|
||||||
|
|
||||||
if (this.rightDrawer) {
|
if (this.rightDrawer) {
|
||||||
this[xDirection ? 'closeDrawer' : 'openDrawer']();
|
this[xDirection ? 'closeDrawer' : 'openDrawer']();
|
||||||
} else {
|
} else {
|
||||||
this[xDirection || event.detail.dx > -80 ? 'openDrawer' : 'closeDrawer']();
|
this[xDirection || dx > -80 || absDy >= 70 ? 'openDrawer' : 'closeDrawer']();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue