diff --git a/dashboard-ui/autoorganizelog.html b/dashboard-ui/autoorganizelog.html
index 245429cd7c..98a8072d23 100644
--- a/dashboard-ui/autoorganizelog.html
+++ b/dashboard-ui/autoorganizelog.html
@@ -4,7 +4,7 @@
+
diff --git a/dashboard-ui/connectlogin.html b/dashboard-ui/connectlogin.html
index 2856a1d21d..a40912342a 100644
--- a/dashboard-ui/connectlogin.html
+++ b/dashboard-ui/connectlogin.html
@@ -3,7 +3,7 @@
${TitleSignIn}
-
+
@@ -23,9 +23,8 @@
-
@@ -41,7 +40,7 @@
@@ -62,9 +61,8 @@
-
${ButtonCancel}
@@ -95,7 +93,7 @@
${ButtonCancel}
@@ -108,7 +106,7 @@
-
${ButtonNext}
+
${ButtonNext}
diff --git a/dashboard-ui/cordova/android/mediasession.js b/dashboard-ui/cordova/android/mediasession.js
index e5a821298b..b8576f0e57 100644
--- a/dashboard-ui/cordova/android/mediasession.js
+++ b/dashboard-ui/cordova/android/mediasession.js
@@ -13,6 +13,13 @@
return;
}
+ var isLocalPlayer = MediaController.getPlayerInfo().isLocalPlayer || false;
+
+ // Local players do their own notifications
+ if (isLocalPlayer) {
+ return;
+ }
+
// dummy this up
if (eventName == 'init') {
eventName = 'positionchange';
@@ -28,10 +35,12 @@
var artist = parts.length == 1 ? '' : parts[0];
var title = parts[parts.length - 1];
var album = state.NowPlayingItem.Album || '';
- var duration = state.NowPlayingItem.RunTimeTicks ? (state.NowPlayingItem.RunTimeTicks / 10000000) : 0;
- var position = playState.PositionTicks ? (playState.PositionTicks / 10000000) : 0;
var itemId = state.NowPlayingItem.Id;
+ // Convert to ms
+ var duration = state.NowPlayingItem.RunTimeTicks ? (state.NowPlayingItem.RunTimeTicks / 10000) : 0;
+ var position = playState.PositionTicks ? (playState.PositionTicks / 10000) : 0;
+
var isPaused = playState.IsPaused || false;
var canSeek = playState.CanSeek || false;
@@ -75,8 +84,6 @@
}
}
- var isLocalPlayer = MediaController.getPlayerInfo().isLocalPlayer || false;
-
MainActivity.updateMediaSession(eventName, isLocalPlayer, itemId, title, artist, album, parseInt(duration), parseInt(position), url, canSeek, isPaused);
lastUpdateTime = new Date().getTime();
}
diff --git a/dashboard-ui/cordova/android/vlcplayer.js b/dashboard-ui/cordova/android/vlcplayer.js
index cae7efe871..54d83dd883 100644
--- a/dashboard-ui/cordova/android/vlcplayer.js
+++ b/dashboard-ui/cordova/android/vlcplayer.js
@@ -88,7 +88,7 @@
}
};
- self.setCurrentSrc = function (val) {
+ self.setCurrentSrc = function (val, item, mediaSource) {
if (!val) {
self.destroy();
@@ -96,7 +96,8 @@
}
if (type == 'audio') {
- AndroidVlcPlayer.playAudioVlc(val);
+
+ AndroidVlcPlayer.playAudioVlc(val, JSON.stringify(item), JSON.stringify(mediaSource), posterUrl);
} else {
AndroidVlcPlayer.playVideoVlc(val);
}
@@ -125,7 +126,9 @@
playerState = {};
};
+ var posterUrl;
self.setPoster = function (url) {
+ posterUrl = url;
};
self.report = function (eventName, duration, position, isPaused, volume) {
diff --git a/dashboard-ui/cordova/registrationservices.js b/dashboard-ui/cordova/registrationservices.js
index a84fd8ecfb..b4841fd8a1 100644
--- a/dashboard-ui/cordova/registrationservices.js
+++ b/dashboard-ui/cordova/registrationservices.js
@@ -86,6 +86,7 @@
function getInAppPurchaseElement(info) {
+ require(['paperbuttonstyle']);
cancelInAppPurchase();
var html = '';
@@ -125,14 +126,20 @@
if (info.price) {
unlockText = Globalize.translate('ButtonUnlockPrice', info.price);
}
- html += '
';
+ html += '
';
+ html += '' + unlockText + '';
+ html += '
';
}
if (info.enableSupporterUnlock) {
- html += '
';
+ html += '
';
+ html += '' + Globalize.translate('ButtonUnlockWithSupporter') + '';
+ html += '
';
}
- html += '
';
+ html += '
';
+ html += '' + Globalize.translate('ButtonCancel') + '';
+ html += '
';
html += '
';
diff --git a/dashboard-ui/css/detailtable.css b/dashboard-ui/css/detailtable.css
index e3c47faca4..5b0adec10c 100644
--- a/dashboard-ui/css/detailtable.css
+++ b/dashboard-ui/css/detailtable.css
@@ -53,15 +53,15 @@
white-space: nowrap;
}
-.detailTableButtonsCell button {
- margin-top: 0;
- margin-bottom: 0;
-}
-
- .detailTableButtonsCell button + button {
- margin-left: .5em;
+ .detailTableButtonsCell button {
+ margin-top: 0;
+ margin-bottom: 0;
}
+ .detailTableButtonsCell button + button {
+ margin-left: .5em;
+ }
+
@media all and (min-width: 600px) {
.tabletColumn {
display: table-cell;
@@ -80,7 +80,6 @@
background-color: rgba(0,0,0,.1);
}
-
.stripedTable tbody tr:nth-child(odd) td,
.stripedTable tbody tr:nth-child(odd) th {
background-color: #eeeeee; /* non-RGBA fallback */
diff --git a/dashboard-ui/css/librarymenu.css b/dashboard-ui/css/librarymenu.css
index 361e74570f..e0db1eac52 100644
--- a/dashboard-ui/css/librarymenu.css
+++ b/dashboard-ui/css/librarymenu.css
@@ -54,7 +54,7 @@
}
.mainDrawerPanel #drawer {
- z-index: 1000 !important;
+ z-index: 1099 !important;
position: fixed !important;
bottom: 0;
height: auto !important;
@@ -72,7 +72,7 @@
.mainDrawerPanel #scrim {
/* Give it at least something to make it visible */
- z-index: 1000;
+ z-index: 1098;
/* It defaults to absolute, not visible after scrolling */
position: fixed;
}
diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css
index f81f6454df..bc56565afb 100644
--- a/dashboard-ui/css/site.css
+++ b/dashboard-ui/css/site.css
@@ -311,7 +311,8 @@ body {
overflow-y: scroll !important;
font-size: 13px;
font-family: Roboto, Arial, Helvetica, sans-serif;
- -webkit-overflow-scrolling: touch;
+ /*Can't use this with safari or it causes some content to disappear*/
+ /*-webkit-overflow-scrolling: touch;*/
/* Remove the white default from jqm */
background-color: transparent !important;
}
@@ -1410,4 +1411,4 @@ progress {
.supporterMembershipDisabled .tabSupporterMembership {
display: none;
-}
+}
\ No newline at end of file
diff --git a/dashboard-ui/livetvguide.html b/dashboard-ui/livetvguide.html
index 43fee797f1..f6f897193a 100644
--- a/dashboard-ui/livetvguide.html
+++ b/dashboard-ui/livetvguide.html
@@ -34,12 +34,7 @@