advplyr.audiobookshelf-app/plugins/localStore.js

168 lines
4.6 KiB
JavaScript
Raw Permalink 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 setPlayerSettings(playerSettings) {
try {
await Preferences.set({ key: 'playerSettings', value: JSON.stringify(playerSettings) })
} catch (error) {
console.error('[LocalStorage] Failed to set player settings', error)
}
}
async getPlayerSettings() {
try {
const playerSettingsObj = await Preferences.get({ key: 'playerSettings' }) || {}
return playerSettingsObj.value ? JSON.parse(playerSettingsObj.value) : null
} catch (error) {
console.error('[LocalStorage] Failed to get player settings', 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
}
}
/**
* Get preference value by key
*
* @param {string} key
* @returns {Promise<string>}
*/
async getPreferenceByKey(key) {
try {
const obj = await Preferences.get({ key }) || {}
return obj.value || null
} catch (error) {
console.error(`[LocalStorage] Failed to get preference "${key}"`, error)
return null
}
}
}
export default ({ app, store }, inject) => {
inject('localStore', new LocalStorage(store))
2023-12-22 21:01:37 -05:00
}