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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-11 13:20:20 -06:00
|
|
|
async setUseChapterTrack(useChapterTrack) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'useChapterTrack', value: useChapterTrack ? '1' : '0' })
|
2021-12-11 13:20:20 -06:00
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to set use chapter track', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getUseChapterTrack() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var obj = await Preferences.get({ key: 'useChapterTrack' }) || {}
|
2021-12-11 13:20:20 -06:00
|
|
|
return obj.value === '1'
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get use chapter track', error)
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
2022-04-08 19:05:32 -05:00
|
|
|
|
2023-01-17 00:54:17 +01:00
|
|
|
async setUseTotalTrack(useTotalTrack) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'useTotalTrack', value: useTotalTrack ? '1' : '0' })
|
2023-01-17 00:54:17 +01:00
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to set use total track', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getUseTotalTrack() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var obj = await Preferences.get({ key: 'useTotalTrack' }) || {}
|
2023-01-17 00:54:17 +01:00
|
|
|
return obj.value === '1'
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get use total track', error)
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-08-22 16:50:20 -05:00
|
|
|
async setPlayerLock(lock) {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
await Preferences.set({ key: 'playerLock', value: lock ? '1' : '0' })
|
2022-08-22 16:50:20 -05:00
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to set player lock', error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async getPlayerLock() {
|
|
|
|
try {
|
2023-01-22 17:26:08 -06:00
|
|
|
var obj = await Preferences.get({ key: 'playerLock' }) || {}
|
2022-08-22 16:50:20 -05:00
|
|
|
return obj.value === '1'
|
|
|
|
} catch (error) {
|
|
|
|
console.error('[LocalStorage] Failed to get player lock', error)
|
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
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
|
|
|
}
|