advplyr.audiobookshelf-app/plugins/localStore.js

188 lines
5.1 KiB
JavaScript
Raw Normal View History

import { Preferences } from '@capacitor/preferences'
class LocalStorage {
constructor(vuexStore) {
this.vuexStore = vuexStore
}
async setUserSettings(settings) {
try {
await Preferences.set({ key: 'userSettings', value: JSON.stringify(settings) })
} catch (error) {
console.error('[LocalStorage] Failed to update user settings', error)
}
}
async getUserSettings() {
try {
const settingsObj = await Preferences.get({ key: 'userSettings' }) || {}
return settingsObj.value ? JSON.parse(settingsObj.value) : null
} catch (error) {
console.error('[LocalStorage] Failed to get user settings', error)
return null
}
}
async setServerSettings(settings) {
try {
await Preferences.set({ key: 'serverSettings', value: JSON.stringify(settings) })
console.log('Saved server settings', JSON.stringify(settings))
} catch (error) {
console.error('[LocalStorage] Failed to update server settings', error)
}
}
async getServerSettings() {
try {
var settingsObj = await Preferences.get({ key: 'serverSettings' }) || {}
return settingsObj.value ? JSON.parse(settingsObj.value) : null
} catch (error) {
console.error('[LocalStorage] Failed to get server settings', error)
return null
}
}
async setUseChapterTrack(useChapterTrack) {
try {
await Preferences.set({ key: 'useChapterTrack', value: useChapterTrack ? '1' : '0' })
} catch (error) {
console.error('[LocalStorage] Failed to set use chapter track', error)
}
}
async getUseChapterTrack() {
try {
var obj = await Preferences.get({ key: 'useChapterTrack' }) || {}
return obj.value === '1'
} catch (error) {
console.error('[LocalStorage] Failed to get use chapter track', error)
return false
}
}
async setUseTotalTrack(useTotalTrack) {
try {
await Preferences.set({ key: 'useTotalTrack', value: useTotalTrack ? '1' : '0' })
} catch (error) {
console.error('[LocalStorage] Failed to set use total track', error)
}
}
async getUseTotalTrack() {
try {
var obj = await Preferences.get({ key: 'useTotalTrack' }) || {}
return obj.value === '1'
} catch (error) {
console.error('[LocalStorage] Failed to get use total track', error)
return false
}
}
async setPlayerLock(lock) {
try {
await Preferences.set({ key: 'playerLock', value: lock ? '1' : '0' })
} catch (error) {
console.error('[LocalStorage] Failed to set player lock', error)
}
}
async getPlayerLock() {
try {
var obj = await Preferences.get({ key: 'playerLock' }) || {}
return obj.value === '1'
} catch (error) {
console.error('[LocalStorage] Failed to get player lock', error)
return false
}
}
async setBookshelfListView(useIt) {
try {
await Preferences.set({ key: 'bookshelfListView', value: useIt ? '1' : '0' })
} catch (error) {
console.error('[LocalStorage] Failed to set bookshelf list view', error)
}
}
async getBookshelfListView() {
try {
var obj = await Preferences.get({ key: 'bookshelfListView' }) || {}
return obj.value === '1'
} catch (error) {
console.error('[LocalStorage] Failed to get bookshelf list view', error)
return false
}
}
async setLastLibraryId(libraryId) {
try {
await Preferences.set({ key: 'lastLibraryId', value: libraryId })
console.log('[LocalStorage] Set Last Library Id', libraryId)
} catch (error) {
console.error('[LocalStorage] Failed to set last library id', error)
}
}
async removeLastLibraryId() {
try {
await Preferences.remove({ key: 'lastLibraryId' })
console.log('[LocalStorage] Remove Last Library Id')
} catch (error) {
console.error('[LocalStorage] Failed to remove last library id', error)
}
}
async getLastLibraryId() {
try {
var obj = await Preferences.get({ key: 'lastLibraryId' }) || {}
return obj.value || null
} catch (error) {
console.error('[LocalStorage] Failed to get last library id', error)
return false
}
}
2023-12-11 18:11:17 -06:00
async setTheme(theme) {
try {
await Preferences.set({ key: 'theme', value: theme })
console.log('[LocalStorage] Set theme', theme)
} catch (error) {
console.error('[LocalStorage] Failed to set theme', error)
}
}
async getTheme() {
try {
var obj = await Preferences.get({ key: 'theme' }) || {}
return obj.value || null
} catch (error) {
console.error('[LocalStorage] Failed to get theme', error)
return false
}
}
async setLanguage(lang) {
try {
await Preferences.set({ key: 'lang', value: lang })
console.log('[LocalStorage] Set lang', lang)
} catch (error) {
console.error('[LocalStorage] Failed to set lang', error)
}
}
async getLanguage() {
try {
var obj = await Preferences.get({ key: 'lang' }) || {}
return obj.value || null
} catch (error) {
console.error('[LocalStorage] Failed to get lang', error)
return false
}
}
}
export default ({ app, store }, inject) => {
inject('localStore', new LocalStorage(store))
2023-12-22 21:01:37 -05:00
}