From 61c6f5a145fcb655ee060fd9ca564414ca514c3d Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Tue, 9 Aug 2022 13:21:33 +0200 Subject: [PATCH] Passcode: Fix migrating locked cache --- src/global/actions/ui/passcode.ts | 6 +++++- src/global/cache.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/global/actions/ui/passcode.ts b/src/global/actions/ui/passcode.ts index d3ac59fdd..a364264f3 100644 --- a/src/global/actions/ui/passcode.ts +++ b/src/global/actions/ui/passcode.ts @@ -3,8 +3,10 @@ import { addActionHandler, setGlobal, getGlobal } from '../../index'; import { clearPasscodeSettings, updatePasscodeSettings } from '../../reducers'; import { clearStoredSession, loadStoredSession, storeSession } from '../../../util/sessions'; import { clearEncryptedSession, encryptSession, setupPasscode } from '../../../util/passcode'; -import { forceUpdateCache, serializeGlobal } from '../../cache'; +import { forceUpdateCache, migrateCache, serializeGlobal } from '../../cache'; import { onBeforeUnload } from '../../../util/schedulers'; +import { cloneDeep } from '../../../util/iteratees'; +import { INITIAL_STATE } from '../../initialState'; let noLockOnUnload = false; onBeforeUnload(() => { @@ -48,6 +50,8 @@ addActionHandler('unlockScreen', (global, actions, { sessionJson, globalJson }) storeSession(session, session.userId); global = JSON.parse(globalJson); + migrateCache(global, cloneDeep(INITIAL_STATE)); + setGlobal(updatePasscodeSettings( global, { diff --git a/src/global/cache.ts b/src/global/cache.ts index 019c91e66..ef47bda1b 100644 --- a/src/global/cache.ts +++ b/src/global/cache.ts @@ -137,7 +137,7 @@ function readCache(initialState: GlobalState): GlobalState { }; } -function migrateCache(cached: GlobalState, initialState: GlobalState) { +export function migrateCache(cached: GlobalState, initialState: GlobalState) { // Migrate from legacy setting names if ('shouldAutoDownloadMediaFromContacts' in cached.settings.byKey) { const {