diff --git a/src/components/nowPlayingBar/nowPlayingBar.js b/src/components/nowPlayingBar/nowPlayingBar.js
index eb21f90441..07cdaac4fe 100644
--- a/src/components/nowPlayingBar/nowPlayingBar.js
+++ b/src/components/nowPlayingBar/nowPlayingBar.js
@@ -457,15 +457,6 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
}
- function getTextActionButton(item, text) {
-
- if (!text) {
- text = itemHelper.getDisplayName(item);
- }
-
- return `${text}`;
- }
-
function seriesImageUrl(item, options) {
if (!item) {
@@ -541,18 +532,25 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
if (textLines.length > 1) {
textLines[1].secondary = true;
}
- nowPlayingTextElement.innerHTML = textLines.map(function (nowPlayingName) {
- var cssClass = nowPlayingName.secondary ? ' class="nowPlayingBarSecondaryText"' : '';
-
- if (nowPlayingName.item) {
- var nowPlayingText = getTextActionButton(nowPlayingName.item, nowPlayingName.text);
- return `
${nowPlayingText}
`;
+ if (textLines) {
+ nowPlayingTextElement.innerHTML = '';
+ let itemText = document.createElement('div');
+ let secondaryText = document.createElement('div');
+ secondaryText.classList.add('nowPlayingBarSecondaryText');
+ if (textLines[0].text) {
+ let text = document.createElement('a');
+ text.innerHTML = textLines[0].text;
+ itemText.appendChild(text);
}
-
- return `${nowPlayingText}
`;
-
- }).join('');
+ if (textLines[1].text) {
+ let text = document.createElement('a');
+ text.innerHTML = textLines[1].text;
+ secondaryText.appendChild(text);
+ }
+ nowPlayingTextElement.appendChild(itemText);
+ nowPlayingTextElement.appendChild(secondaryText);
+ }
var imgHeight = 70;
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index 4d58e85cf3..38ce9bf9f1 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -3945,7 +3945,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
player = player || this._currentPlayer;
if (player && !enableLocalPlaylistManagement(player)) {
- return player.setShuffleMode(value);
+ return player.setQueueShuffleMode(value);
}
this._playQueueManager.setShuffleMode(value);
diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js
index a671bf5aff..784e7ff5b1 100644
--- a/src/components/remotecontrol/remotecontrol.js
+++ b/src/components/remotecontrol/remotecontrol.js
@@ -120,9 +120,9 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
if (item.Type == 'Audio' || item.MediaStreams[0].Type == 'Audio') {
var songName = item.Name;
if (item.Album != null && item.Artists != null) {
+ var artistsSeries = '';
var albumName = item.Album;
if (item.ArtistItems != null) {
- var artistsSeries = '';
for (let artist of item.ArtistItems) {
let artistName = artist.Name;
let artistId = artist.Id;
@@ -131,8 +131,18 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
artistsSeries += ', ';
}
}
- context.querySelector('.nowPlayingArtist').innerHTML = artistsSeries;
+ } else if (item.Artists) {
+ // For some reason, Chromecast Player doesn't return a item.ArtistItems object, so we need to fallback
+ // to normal item.Artists item.
+ // TODO: Normalise fields returned by all the players
+ for (let artist of item.Artists) {
+ artistsSeries += `${artist}`;
+ if (artist !== item.Artists.slice(-1)[0]) {
+ artistsSeries += ', ';
+ }
+ }
}
+ context.querySelector('.nowPlayingArtist').innerHTML = artistsSeries;
context.querySelector('.nowPlayingAlbum').innerHTML = '${albumName}`;
}
context.querySelector('.nowPlayingSongName').innerHTML = songName;