Fix: download single track audiobooks #15, Change: check write permission when selecting folder #13, Add: Show folders and files list in user selected folder, Fix: Seek back only if audiobook was played #20

This commit is contained in:
advplyr
2021-10-28 09:37:31 -05:00
parent de4340487b
commit ebf628315c
17 changed files with 727 additions and 502 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ Vue.prototype.$secondsToTimestamp = (seconds) => {
_seconds -= _minutes * 60
var _hours = Math.floor(_minutes / 60)
_minutes -= _hours * 60
_seconds = Math.round(_seconds)
_seconds = Math.floor(_seconds)
if (!_hours) {
return `${_minutes}:${_seconds.toString().padStart(2, '0')}`
}
+5
View File
@@ -0,0 +1,5 @@
import { registerPlugin } from '@capacitor/core';
const StorageManager = registerPlugin('StorageManager');
export default StorageManager;
+8 -4
View File
@@ -441,7 +441,7 @@ class LocalStorage {
var val = (await Storage.get({ key: 'userAudiobooks' }) || {}).value || null
this.userAudiobooks = val ? JSON.parse(val) : {}
this.userAudiobooksLoaded = true
this.vuexStore.commit('user/setLocalUserAudiobooks', this.userAudiobooks)
this.vuexStore.commit('user/setLocalUserAudiobooks', { ...this.userAudiobooks })
} catch (error) {
console.error('[LocalStorage] Failed to load user audiobooks', error)
}
@@ -458,7 +458,7 @@ class LocalStorage {
async setAllAudiobookProgress(progresses) {
this.userAudiobooks = progresses
await this.saveUserAudiobooks()
this.vuexStore.commit('user/setLocalUserAudiobooks', this.userAudiobooks)
this.vuexStore.commit('user/setLocalUserAudiobooks', { ...this.userAudiobooks })
}
async updateUserAudiobookProgress(progressPayload) {
@@ -467,14 +467,14 @@ class LocalStorage {
}
console.log('[LocalStorage] Updated User Audiobook Progress ' + progressPayload.audiobookId)
await this.saveUserAudiobooks()
this.vuexStore.commit('user/setLocalUserAudiobooks', this.userAudiobooks)
this.vuexStore.commit('user/setLocalUserAudiobooks', { ...this.userAudiobooks })
}
async removeAudiobookProgress(audiobookId) {
if (!this.userAudiobooks[audiobookId]) return
delete this.userAudiobooks[audiobookId]
await this.saveUserAudiobooks()
this.vuexStore.commit('user/setLocalUserAudiobooks', this.userAudiobooks)
this.vuexStore.commit('user/setLocalUserAudiobooks', { ...this.userAudiobooks })
}
getUserAudiobook(audiobookId) {
@@ -530,10 +530,13 @@ class LocalStorage {
if (folderObj) {
await Storage.set({ key: 'downloadFolder', value: JSON.stringify(folderObj) })
this.downloadFolder = folderObj
this.vuexStore.commit('setDownloadFolder', { ...this.downloadFolder })
} else {
await Storage.remove({ key: 'downloadFolder' })
this.downloadFolder = null
this.vuexStore.commit('setDownloadFolder', null)
}
} catch (error) {
console.error('[LocalStorage] Failed to set download folder', error)
}
@@ -544,6 +547,7 @@ class LocalStorage {
var _value = (await Storage.get({ key: 'downloadFolder' }) || {}).value || null
if (!_value) return null
this.downloadFolder = JSON.parse(_value)
this.vuexStore.commit('setDownloadFolder', { ...this.downloadFolder })
return this.downloadFolder
} catch (error) {
console.error('[LocalStorage] Failed to get download folder', error)