Support for android 8+, selectable download location, permissions check, recursive delete

This commit is contained in:
Mark Cooper
2021-09-19 18:44:10 -05:00
parent b7b6ef57ce
commit 094da4be4f
23 changed files with 798 additions and 387 deletions
+12 -2
View File
@@ -15,7 +15,11 @@ export const getters = {
getAudiobook: state => id => {
return state.audiobooks.find(ab => ab.id === id)
},
getFiltered: (state, getters, rootState) => () => {
getFiltered: (state, getters, rootState, rootGetters) => () => {
// var isDisc = !rootState.networkConnected || !rootState.socketConnected
// console.log('GET FILETERED', isDisc)
// var filtered = isDisc ? rootGetters['downloads/getAudiobooks'] : state.audiobooks
// console.log('FILTERED LEN', filtered.length)
var filtered = state.audiobooks
var settings = rootState.user.settings || {}
var filterBy = settings.filterBy || ''
@@ -36,9 +40,12 @@ export const getters = {
var direction = settings.orderDesc ? 'desc' : 'asc'
var filtered = getters.getFiltered()
var orderByNumber = settings.orderBy === 'book.volumeNumber'
return sort(filtered)[direction]((ab) => {
// Supports dot notation strings i.e. "book.title"
return settings.orderBy.split('.').reduce((a, b) => a[b], ab)
var value = settings.orderBy.split('.').reduce((a, b) => a[b], ab)
if (orderByNumber && !isNaN(value)) return Number(value)
return value
})
},
getUniqueAuthors: (state) => {
@@ -63,6 +70,9 @@ export const actions = {
.catch((error) => {
console.error('Failed', error)
})
},
useDownloaded({ commit, rootGetters }) {
commit('set', rootGetters['downloads/getAudiobooks'])
}
}
+3
View File
@@ -11,6 +11,9 @@ export const getters = {
getDownloadIfReady: (state) => id => {
var download = state.downloads.find(d => d.id === id)
return !!download && !download.isDownloading && !download.isPreparing ? download : null
},
getAudiobooks: (state) => {
return state.downloads.map(dl => dl.audiobook)
}
}
+10 -2
View File
@@ -8,8 +8,10 @@ export const state = () => ({
appUpdateInfo: null,
socketConnected: false,
networkConnected: false,
networkConnectionType: 'unknown',
streamListener: null
networkConnectionType: null,
streamListener: null,
isFirstLoad: true,
hasStoragePermission: false
})
export const getters = {
@@ -27,6 +29,12 @@ export const getters = {
export const actions = {}
export const mutations = {
setHasStoragePermission(state, val) {
state.hasStoragePermission = val
},
setIsFirstLoad(state, val) {
state.isFirstLoad = val
},
setAppUpdateInfo(state, info) {
state.appUpdateInfo = info
},
-1
View File
@@ -1,4 +1,3 @@
import { Storage } from '@capacitor/storage'
import Vue from 'vue'
export const state = () => ({