From 467dc130893997c05abc15082cf2a9079db0327b Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 8 Sep 2015 10:35:52 -0400 Subject: [PATCH] restore music alphabet pickers --- .../bower_components/paper-ripple/.bower.json | 6 +-- dashboard-ui/cordova/android/vlcplayer.js | 8 +--- dashboard-ui/css/mediaplayer-video.css | 41 +++++++++++++++---- dashboard-ui/music.html | 6 +++ dashboard-ui/nowplaying.html | 2 +- dashboard-ui/scripts/htmlmediarenderer.js | 20 +++++++++ dashboard-ui/scripts/librarybrowser.js | 26 ++++++++---- dashboard-ui/scripts/mediaplayer-video.js | 8 ++-- dashboard-ui/scripts/movies.js | 4 +- dashboard-ui/scripts/musicalbumartists.js | 2 +- dashboard-ui/scripts/musicartists.js | 2 +- dashboard-ui/scripts/site.js | 2 +- dashboard-ui/thirdparty/emby-icons.html | 1 + dashboard-ui/vulcanize-out.html | 1 + 14 files changed, 93 insertions(+), 36 deletions(-) diff --git a/dashboard-ui/bower_components/paper-ripple/.bower.json b/dashboard-ui/bower_components/paper-ripple/.bower.json index c9e9b8627..d289efd9c 100644 --- a/dashboard-ui/bower_components/paper-ripple/.bower.json +++ b/dashboard-ui/bower_components/paper-ripple/.bower.json @@ -30,14 +30,14 @@ "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "homepage": "https://github.com/PolymerElements/paper-ripple", + "homepage": "https://github.com/polymerelements/paper-ripple", "_release": "1.0.2", "_resolution": { "type": "version", "tag": "v1.0.2", "commit": "b546dbe6ad0b1f58cac80caec3136cf3232e12fc" }, - "_source": "git://github.com/PolymerElements/paper-ripple.git", + "_source": "git://github.com/polymerelements/paper-ripple.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-ripple" + "_originalSource": "polymerelements/paper-ripple" } \ No newline at end of file diff --git a/dashboard-ui/cordova/android/vlcplayer.js b/dashboard-ui/cordova/android/vlcplayer.js index 0c728891b..a40498b92 100644 --- a/dashboard-ui/cordova/android/vlcplayer.js +++ b/dashboard-ui/cordova/android/vlcplayer.js @@ -186,8 +186,6 @@ playerState.currentSrc = val; self.report('playing', null, startPosMs, false, 100); - - playerState.currentSrc = val; } }; @@ -256,14 +254,10 @@ return deferred.promise(); }; - self.onActivityClosed = function (wasStopped, hasError, endPositionMs, currentSrc) { + self.onActivityClosed = function (wasStopped, hasError, endPositionMs) { playerState.currentTime = endPositionMs; - if (currentSrc) { - playerState.currentSrc = currentSrc; - } - if (wasStopped) { MediaPlayer.stop(false); } diff --git a/dashboard-ui/css/mediaplayer-video.css b/dashboard-ui/css/mediaplayer-video.css index b2bf91b19..5ed23509b 100644 --- a/dashboard-ui/css/mediaplayer-video.css +++ b/dashboard-ui/css/mediaplayer-video.css @@ -49,10 +49,6 @@ background-color: rgba(0, 0, 0, .7); } -.videoControlButtons { - padding: 0 .5em; -} - .videoTopControls { padding: 0 1em; background-color: rgba(0, 0, 0, .5); @@ -70,8 +66,8 @@ } .videoAdvancedControls iron-icon { - width: 32px; - height: 32px; + width: 30px; + height: 30px; } .nowPlayingInfo { @@ -99,6 +95,36 @@ font-size: 14px; } +.videoPositionSlider { + width: 300px; + vertical-align: middle; + margin-left: -1em; +} + +@media all and (max-width: 440px) { + .videoPositionSlider { + width: 240px; + } +} + +@media all and (max-width: 400px) { + .videoPositionSlider { + width: 220px; + } +} + +@media all and (max-width: 350px) { + .videoPositionSlider { + width: 200px; + } +} + +@media all and (max-width: 320px) { + .videoPositionSlider { + width: 170px; + } +} + @media all and (max-width: 1200px) { #videoPlayer .nowPlayingTabs { font-size: 13px; @@ -202,7 +228,6 @@ @media all and (max-width: 1200px), all and (max-height: 720px) { .videoControls .currentTime { margin-right: 0; - min-width: 120px; } } @@ -312,4 +337,4 @@ -webkit-transform: scale(1); opacity: 0; } -} \ No newline at end of file +} diff --git a/dashboard-ui/music.html b/dashboard-ui/music.html index 29aed2a50..50c228aaf 100644 --- a/dashboard-ui/music.html +++ b/dashboard-ui/music.html @@ -60,6 +60,8 @@
+
+
@@ -75,6 +77,8 @@
+
+
@@ -90,6 +94,8 @@
+
+
diff --git a/dashboard-ui/nowplaying.html b/dashboard-ui/nowplaying.html index 9fec8f7da..777097322 100644 --- a/dashboard-ui/nowplaying.html +++ b/dashboard-ui/nowplaying.html @@ -48,7 +48,7 @@
- +
diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js index 742aeb98f..5c01589f2 100644 --- a/dashboard-ui/scripts/htmlmediarenderer.js +++ b/dashboard-ui/scripts/htmlmediarenderer.js @@ -9,7 +9,20 @@ var mediaElement; var self = this; + function hideStatusBar() { + if (options.type == 'video' && window.StatusBar) { + StatusBar.hide(); + } + } + + function showStatusBar() { + if (options.type == 'video' && window.StatusBar) { + StatusBar.show(); + } + } + function onEnded() { + showStatusBar(); $(self).trigger('ended'); } @@ -66,6 +79,7 @@ var errorCode = this.error ? this.error.code : ''; Logger.log('Media element error code: ' + errorCode); + showStatusBar(); $(self).trigger('error'); } @@ -142,6 +156,8 @@ function onOneVideoPlaying() { + hideStatusBar(); + var requiresNativeControls = !self.enableCustomVideoControls(); if (requiresNativeControls) { @@ -553,6 +569,10 @@ self.enableCustomVideoControls = function () { + if (AppInfo.isNativeApp && $.browser.safari) { + return true; + } + return self.canAutoPlayVideo() && !$.browser.mobile; }; diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 487e9c1fa..f7cc1f5c7 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -100,12 +100,9 @@ if (AppInfo.isNativeApp) { cacheDuration = 300000; - } - else if ($.browser.ipad || $.browser.iphone || $.browser.android) { + } else if ($.browser.ipad || $.browser.iphone || $.browser.android) { cacheDuration = 10000; - } - - else { + } else { cacheDuration = 60000; } @@ -237,8 +234,7 @@ if ($.browser.safari) { tabs.noBar = true; - } - else { + } else { LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages); } @@ -269,8 +265,8 @@ var delay = LibraryBrowser.animatePaperTabs() ? 500 : 0; setTimeout(function () { - $(pgs).trigger('tabchange'); + LibraryBrowser.fixAlphabetPicker(pages); }, delay); }); @@ -281,6 +277,20 @@ } }, + fixAlphabetPicker: function (parent) { + + if (!$.browser.android || !AppInfo.isNativeApp) { + return; + } + + var pickers = parent.querySelectorAll('.alphabetPicker'); + for (var i = 0, length = pickers.length; i < length; i++) { + var picker = pickers[i]; + picker.classList.add('hide'); + picker.classList.remove('hide'); + } + }, + onTabbedpagebeforeshow: function () { var page = this; diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index fb760dcea..bf1a5a512 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -654,7 +654,7 @@ // Embedding onclicks due to issues not firing in cordova safari html += ''; - html += ''; + html += ''; html += ''; @@ -679,7 +679,7 @@ html += ''; - html += ''; + html += ''; html += '
--:--
'; @@ -953,10 +953,10 @@ var requiresNativeControls = !mediaRenderer.enableCustomVideoControls(); - if (requiresNativeControls) { + if (requiresNativeControls || AppInfo.isNativeApp) { $('#video-fullscreenButton', videoControls).hide(); } else { - $('#video-fullscreenButton', videoControls).show(); + $('#video-fullscreenButton', videoControls).hide(); } if (AppInfo.hasPhysicalVolumeButtons) { diff --git a/dashboard-ui/scripts/movies.js b/dashboard-ui/scripts/movies.js index 800271e8f..f3789059e 100644 --- a/dashboard-ui/scripts/movies.js +++ b/dashboard-ui/scripts/movies.js @@ -133,7 +133,7 @@ lazy: true, cardLayout: true, showDetailsMenu: true - }); + });re } else if (view == "Timeline") { html = LibraryBrowser.getPosterViewHtml({ @@ -168,7 +168,7 @@ $('.btnChangeLayout', page).on('layoutchange', function (e, layout) { getPageData().view = layout; LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout); - reloadItems(page); + reloadItems(page, viewPanel); }); // On callback make sure to set StartIndex = 0 diff --git a/dashboard-ui/scripts/musicalbumartists.js b/dashboard-ui/scripts/musicalbumartists.js index 021236346..a560dd7d0 100644 --- a/dashboard-ui/scripts/musicalbumartists.js +++ b/dashboard-ui/scripts/musicalbumartists.js @@ -183,7 +183,7 @@ reloadItems(tabContent, viewPanel); }); - $('.alphabetPicker', this).on('alphaselect', function (e, character) { + $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { var query = getQuery(); diff --git a/dashboard-ui/scripts/musicartists.js b/dashboard-ui/scripts/musicartists.js index e163bea28..b242475cb 100644 --- a/dashboard-ui/scripts/musicartists.js +++ b/dashboard-ui/scripts/musicartists.js @@ -183,7 +183,7 @@ reloadItems(tabContent, viewPanel); }); - $('.alphabetPicker', this).on('alphaselect', function (e, character) { + $('.alphabetPicker', tabContent).on('alphaselect', function (e, character) { var query = getQuery(); diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 13d679fff..fe1465c0f 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1763,7 +1763,7 @@ var AppInfo = {}; AppInfo.enableUserImage = true; AppInfo.hasPhysicalVolumeButtons = isCordova || isMobile; - + AppInfo.hasPhysicalVolumeButtons = true; AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp); AppInfo.supportsFullScreen = isCordova && isAndroid; diff --git a/dashboard-ui/thirdparty/emby-icons.html b/dashboard-ui/thirdparty/emby-icons.html index 43e2385c9..fadbd15c0 100644 --- a/dashboard-ui/thirdparty/emby-icons.html +++ b/dashboard-ui/thirdparty/emby-icons.html @@ -132,6 +132,7 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for + diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html index b73c1f720..589fbbeff 100644 --- a/dashboard-ui/vulcanize-out.html +++ b/dashboard-ui/vulcanize-out.html @@ -19076,6 +19076,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN +