23 lines
1.0 KiB
JavaScript
23 lines
1.0 KiB
JavaScript
const bridge = require('./platformBridge')
|
|
const { emptyProgress } = require('./progressContract')
|
|
function normalizeSettings(value = {}) {
|
|
return { ...value, fontScale: value.fontScale === 'xlarge' ? 'xlarge' : 'large', sound: value.sound !== false }
|
|
}
|
|
function resetStoryProgress(expectedScope) {
|
|
if (!expectedScope || bridge.getScope() !== expectedScope) return false
|
|
const current = bridge.getProgress()
|
|
const next = { ...current, ...emptyProgress(), collectedMemoryCards: current.collectedMemoryCards || [] }
|
|
if (!bridge.saveProgress(next, true)) return false
|
|
bridge.writeLocal('audio', {})
|
|
return true
|
|
}
|
|
module.exports = {
|
|
getProgress: bridge.getProgress,
|
|
saveProgress: value => bridge.saveProgress(value),
|
|
resetStoryProgress,
|
|
getSettings: () => normalizeSettings(bridge.readLocal('settings', {})),
|
|
saveSettings: value => bridge.writeLocal('settings', normalizeSettings(value)),
|
|
getAudioProgress: () => bridge.readLocal('audio', {}),
|
|
saveAudioProgress: value => bridge.writeLocal('audio', value),
|
|
}
|