diff --git a/front/src/components/Queue.vue b/front/src/components/Queue.vue
index 5b85b2880..623d94460 100644
--- a/front/src/components/Queue.vue
+++ b/front/src/components/Queue.vue
@@ -96,7 +96,7 @@
v-if="!playing"
:title="labels.play"
:aria-label="labels.play"
- @click.prevent.stop="togglePlay"
+ @click.prevent.stop="resumePlayback"
class="control">
@@ -105,7 +105,7 @@
v-else
:title="labels.pause"
:aria-label="labels.pause"
- @click.prevent.stop="togglePlay"
+ @click.prevent.stop="pausePlayback"
class="control">
@@ -308,7 +308,8 @@ export default {
unmute: "player/unmute",
clean: "queue/clean",
toggleMute: "player/toggleMute",
- togglePlay: "player/togglePlay",
+ resumePlayback: "player/resumePlayback",
+ pausePlayback: "player/pausePlayback",
}),
reorder: function(event) {
this.$store.commit("queue/reorder", {
diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue
index 208ec00f5..bb91533f4 100644
--- a/front/src/components/audio/Player.vue
+++ b/front/src/components/audio/Player.vue
@@ -74,7 +74,7 @@
v-if="!playing"
:title="labels.play"
:aria-label="labels.play"
- @click.prevent.stop="togglePlay"
+ @click.prevent.stop="resumePlayback"
class="circular button control">
@@ -82,7 +82,7 @@
v-else
:title="labels.pause"
:aria-label="labels.pause"
- @click.prevent.stop="togglePlay"
+ @click.prevent.stop="pausePlayback"
class="circular button control">
@@ -203,7 +203,7 @@
{
@@ -109,6 +109,19 @@ export default {
}, 3000)
}
},
+ resumePlayback ({commit, state, dispatch}) {
+ commit('playing', true)
+ if (state.errored && state.errorCount < state.maxConsecutiveErrors) {
+ setTimeout(() => {
+ if (state.playing) {
+ dispatch('queue/next', null, {root: true})
+ }
+ }, 3000)
+ }
+ },
+ pausePlayback ({commit}) {
+ commit('playing', false)
+ },
toggleMute({commit, state}) {
if (state.volume > 0) {
commit('tempVolume', state.volume)
diff --git a/front/tests/unit/specs/store/player.spec.js b/front/tests/unit/specs/store/player.spec.js
index ac995ab1a..b40642842 100644
--- a/front/tests/unit/specs/store/player.spec.js
+++ b/front/tests/unit/specs/store/player.spec.js
@@ -112,24 +112,41 @@ describe('store/player', () => {
]
})
})
- it('toggle play false', () => {
+ it('toggle playback false', () => {
testAction({
- action: store.actions.togglePlay,
+ action: store.actions.togglePlayback,
params: {state: {playing: false}},
expectedMutations: [
{ type: 'playing', payload: true }
]
})
})
- it('toggle play true', () => {
+ it('toggle playback true', () => {
testAction({
- action: store.actions.togglePlay,
+ action: store.actions.togglePlayback,
params: {state: {playing: true}},
expectedMutations: [
{ type: 'playing', payload: false }
]
})
})
+ it('resume playback', () => {
+ testAction({
+ action: store.actions.resumePlayback,
+ params: {state: {}},
+ expectedMutations: [
+ { type: 'playing', payload: true }
+ ]
+ })
+ })
+ it('pause playback', () => {
+ testAction({
+ action: store.actions.pausePlayback,
+ expectedMutations: [
+ { type: 'playing', payload: false }
+ ]
+ })
+ })
it('trackEnded', () => {
testAction({
action: store.actions.trackEnded,