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,