From c82608b34e553477ed15b25c4c6c096a68d1c5c0 Mon Sep 17 00:00:00 2001
From: Jonas Heinrich <onny@project-insanity.org>
Date: Tue, 30 Mar 2021 22:08:35 +0200
Subject: [PATCH] fix audio player toggle pause do not seek if not necessary

---
 src/components/Player.vue | 1 +
 src/services/Player.js    | 4 ++++
 src/store/episode.js      | 6 ------
 src/store/player.js       | 4 +++-
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/components/Player.vue b/src/components/Player.vue
index c73e542..6680ed9 100644
--- a/src/components/Player.vue
+++ b/src/components/Player.vue
@@ -101,6 +101,7 @@ export default {
 			'isPaused',
 			'getEpisode',
 			'getPodcastName',
+			'getPaused',
 		]),
 		currentSeek() {
 			if (this.seekLocked) {
diff --git a/src/services/Player.js b/src/services/Player.js
index 2695794..fea6994 100644
--- a/src/services/Player.js
+++ b/src/services/Player.js
@@ -89,6 +89,10 @@ export class Player {
 		return audioPlayer
 	}
 
+	getSeek() {
+		return audioPlayer.seek()
+	}
+
 	updateSeek() {
 		const vm = this
 		setTimeout(function() {
diff --git a/src/store/episode.js b/src/store/episode.js
index dd65c2a..0c2df29 100644
--- a/src/store/episode.js
+++ b/src/store/episode.js
@@ -37,9 +37,6 @@ export default {
 		},
 	},
 	mutations: {
-		addEpisode(state, episode) {
-			state.episodes.unshift(episode)
-		},
 		removeEpisode(state, episode) {
 			const existingIndex = state.episodes.findIndex(_episode => _episode.id === episode.id)
 			if (existingIndex !== -1) {
@@ -67,9 +64,6 @@ export default {
 		addEpisode({ commit, getters }, episode) {
 			episode.lastplayed = Date.now()
 			episodeApiClient.addEpisode(episode)
-				.then((episode) => {
-					commit('addEpisode', episode)
-				})
 		},
 		removeEpisode({ commit }, episode) {
 			episodeApiClient.removeEpisode(episode)
diff --git a/src/store/player.js b/src/store/player.js
index 8b6a836..8c53f2c 100644
--- a/src/store/player.js
+++ b/src/store/player.js
@@ -189,7 +189,9 @@ export default {
 		},
 
 		seekEpisode(context, startTime) {
-			context.commit('seekEpisode', startTime)
+			if (Math.abs(startTime - player.getSeek() > 1)) {
+				context.commit('seekEpisode', startTime)
+			}
 		},
 
 		setPausing(context, state) {
-- 
GitLab