From 28e75a52e4989e6140cc0cceac3de00e51958a8b Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 23:23:58 +0700 Subject: [PATCH 1/2] fix listitem-hr queuing fail after radio items --- src/renderer/index.js | 48 ++++++++++++++---------- src/renderer/views/pages/remote-pair.ejs | 2 +- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index 2e0da967..4169deb2 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -2804,17 +2804,17 @@ const app = new Vue({ }) }) } else { - this.mk.clearQueue().then(function (_) { - if (app.mk.shuffleMode == 1) { - shuffleArray(query) - } - app.mk.queue.append(query) - if (childIndex != -1) { - app.mk.changeToMediaAtIndex(childIndex) - } else { - app.mk.play() - } - }) + app.mk.queue.splice(0, app.mk.queue._itemIDs.length) + if (app.mk.shuffleMode == 1) { + shuffleArray(query) + } + app.mk.queue.append(query) + if (childIndex != -1) { + app.mk.changeToMediaAtIndex(childIndex) + } else { + app.mk.play() + } + } }) } else if (parent.startsWith('listitem-hr')) { @@ -2859,20 +2859,30 @@ const app = new Vue({ itemsToPlay[item.kind].push(item.id) }) // loop through itemsToPlay + app.mk.queue.splice(0, app.mk.queue._itemIDs.length) let ind = 0; for (let kind in itemsToPlay) { let ids = itemsToPlay[kind] - app.mk.clearQueue().then(function () { - if (ids.length > 0) { - app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function() { + if (ids.length > 0) { + if (app.mk.queue._itemIDs.length > 0) { + app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function () { + ind += 1; + console.log(ind, Object.keys(itemsToPlay).length) + if (ind >= Object.keys(itemsToPlay).length) { + app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id)) + } + } + )} else { + app.mk.setQueue({ [kind + "s"]: itemsToPlay[kind] }).then(function () { ind += 1; - console.log(ind , Object.keys(itemsToPlay).length) - if(ind >= Object.keys(itemsToPlay).length) { + console.log(ind, Object.keys(itemsToPlay).length) + if (ind >= Object.keys(itemsToPlay).length) { app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id)) } - } - )} - }) + } + )} + } + } } }) diff --git a/src/renderer/views/pages/remote-pair.ejs b/src/renderer/views/pages/remote-pair.ejs index ccd08ead..f4fe510b 100644 --- a/src/renderer/views/pages/remote-pair.ejs +++ b/src/renderer/views/pages/remote-pair.ejs @@ -1,6 +1,6 @@