Lock Screen: Force cache on setup
This commit is contained in:
parent
c5c44eddd2
commit
9b2cb2730a
@ -202,7 +202,7 @@ addActionHandler('deleteDeviceToken', (global) => {
|
||||
|
||||
addActionHandler('lockScreen', async (global) => {
|
||||
const sessionJson = JSON.stringify({ ...loadStoredSession(), userId: global.currentUserId });
|
||||
const globalJson = serializeGlobal();
|
||||
const globalJson = serializeGlobal(global);
|
||||
|
||||
await encryptSession(sessionJson, globalJson);
|
||||
forgetPasscode();
|
||||
|
||||
@ -3,7 +3,7 @@ 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 { serializeGlobal } from '../../cache';
|
||||
import { forceUpdateCache, serializeGlobal } from '../../cache';
|
||||
import { onBeforeUnload } from '../../../util/schedulers';
|
||||
|
||||
onBeforeUnload(() => {
|
||||
@ -19,7 +19,11 @@ addActionHandler('setPasscode', async (global, actions, { passcode }) => {
|
||||
await setupPasscode(passcode);
|
||||
|
||||
const sessionJson = JSON.stringify({ ...loadStoredSession(), userId: global.currentUserId });
|
||||
const globalJson = serializeGlobal();
|
||||
const globalJson = serializeGlobal(updatePasscodeSettings(getGlobal(), {
|
||||
hasPasscode: true,
|
||||
error: undefined,
|
||||
isLoading: false,
|
||||
}));
|
||||
|
||||
await encryptSession(sessionJson, globalJson);
|
||||
|
||||
@ -28,6 +32,8 @@ addActionHandler('setPasscode', async (global, actions, { passcode }) => {
|
||||
error: undefined,
|
||||
isLoading: false,
|
||||
}));
|
||||
|
||||
forceUpdateCache(true);
|
||||
});
|
||||
|
||||
addActionHandler('clearPasscode', (global) => {
|
||||
|
||||
@ -260,15 +260,21 @@ function updateCache() {
|
||||
return;
|
||||
}
|
||||
|
||||
forceUpdateCache();
|
||||
}
|
||||
|
||||
export function forceUpdateCache(noEncrypt = false) {
|
||||
const global = getGlobal();
|
||||
const { hasPasscode, isScreenLocked } = global.passcode;
|
||||
const serializedGlobal = serializeGlobal();
|
||||
const serializedGlobal = serializeGlobal(global);
|
||||
|
||||
if (hasPasscode) {
|
||||
if (!isScreenLocked) {
|
||||
if (!isScreenLocked && !noEncrypt) {
|
||||
void encryptSession(undefined, serializedGlobal);
|
||||
}
|
||||
|
||||
localStorage.setItem(GLOBAL_STATE_CACHE_KEY, JSON.stringify(clearGlobalForLockScreen(global)));
|
||||
const serializedGlobalClean = JSON.stringify(clearGlobalForLockScreen(global));
|
||||
localStorage.setItem(GLOBAL_STATE_CACHE_KEY, serializedGlobalClean);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -276,8 +282,7 @@ function updateCache() {
|
||||
localStorage.setItem(GLOBAL_STATE_CACHE_KEY, serializedGlobal);
|
||||
}
|
||||
|
||||
export function serializeGlobal() {
|
||||
const global = getGlobal();
|
||||
export function serializeGlobal(global: GlobalState) {
|
||||
const reducedGlobal: GlobalState = {
|
||||
...INITIAL_STATE,
|
||||
...pick(global, [
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user