2023-01-22 17:26:08 -06:00
|
|
|
import { Preferences } from '@capacitor/preferences'
|
2021-11-19 20:00:34 -06:00
|
|
|
|
|
|
|
class LocalStorage {
|
|
|
|
constructor(vuexStore) {
|
|
|
|
this.vuexStore = vuexStore
|
|
|
|
}
|
|
|
|
|
|
|
|
async setUserSettings(settings) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'userSettings', value: JSON.stringify(settings) })
|
2021-11-19 20:00:34 -06:00
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to update user settings', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getUserSettings() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
const settingsObj = await Preferences.get({ key: 'userSettings' }) || {}
|
2021-11-19 20:00:34 -06:00
|
|
|
return settingsObj.value ? JSON.parse(settingsObj.value) : null
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get user settings', error)
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-05 18:31:47 -06:00
|
|
|
async setServerSettings(settings) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'serverSettings', value: JSON.stringify(settings) })
|
2021-12-05 18:31:47 -06:00
|
|
|
console.log('Saved server settings', JSON.stringify(settings))
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to update server settings', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getServerSettings() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var settingsObj = await Preferences.get({ key: 'serverSettings' }) || {}
|
2021-12-05 18:31:47 -06:00
|
|
|
return settingsObj.value ? JSON.parse(settingsObj.value) : null
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get server settings', error)
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-01-04 15:28:25 -06:00
|
|
|
async setPlayerSettings(playerSettings) {
|
2021-12-11 13:20:20 -06:00
|
|
|
try {
|
2024-01-04 15:28:25 -06:00
|
|
|
await Preferences.set({ key: 'playerSettings', value: JSON.stringify(playerSettings) })
|
2021-12-11 13:20:20 -06:00
|
|
|
} catch (error) {
|
2024-01-04 15:28:25 -06:00
|
|
|
console.error('[LocalStorage] Failed to set player settings', error)
|
2021-12-11 13:20:20 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-01-04 15:28:25 -06:00
|
|
|
async getPlayerSettings() {
|
2021-12-11 13:20:20 -06:00
|
|
|
try {
|
2024-01-04 15:28:25 -06:00
|
|
|
const playerSettingsObj = await Preferences.get({ key: 'playerSettings' }) || {}
|
|
|
|
return playerSettingsObj.value ? JSON.parse(playerSettingsObj.value) : null
|
2022-08-22 16:50:20 -05:00
|
|
|
} catch (error) {
|
2024-01-04 15:28:25 -06:00
|
|
|
console.error('[LocalStorage] Failed to get player settings', error)
|
2022-08-22 16:50:20 -05:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-04-08 19:05:32 -05:00
|
|
|
async setBookshelfListView(useIt) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'bookshelfListView', value: useIt ? '1' : '0' })
|
2022-04-08 19:05:32 -05:00
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to set bookshelf list view', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getBookshelfListView() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var obj = await Preferences.get({ key: 'bookshelfListView' }) || {}
|
2022-04-08 19:05:32 -05:00
|
|
|
return obj.value === '1'
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get bookshelf list view', error)
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
2022-04-10 20:31:47 -05:00
|
|
|
|
|
|
|
async setLastLibraryId(libraryId) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'lastLibraryId', value: libraryId })
|
2022-04-10 20:31:47 -05:00
|
|
|
console.log('[LocalStorage] Set Last Library Id', libraryId)
|
|
|
|
} catch (error) {
|
2022-06-05 16:32:28 -05:00
|
|
|
console.error('[LocalStorage] Failed to set last library id', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async removeLastLibraryId() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.remove({ key: 'lastLibraryId' })
|
2022-06-05 16:32:28 -05:00
|
|
|
console.log('[LocalStorage] Remove Last Library Id')
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to remove last library id', error)
|
2022-04-10 20:31:47 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getLastLibraryId() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var obj = await Preferences.get({ key: 'lastLibraryId' }) || {}
|
2022-04-10 20:31:47 -05:00
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
2023-12-12 17:50:04 -06:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
2024-01-04 15:28:25 -06:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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
|
|
|
|
}
|
|
|
|
}
|
2021-11-19 20:00:34 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export default ({ app, store }, inject) => {
|
|
|
|
inject('localStore', new LocalStorage(store))
|
2023-12-22 21:01:37 -05:00
|
|
|
}
|