From 285a22947fedb31e17646e8dad9cd3b93b2ceca1 Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Mon, 4 Mar 2024 21:37:48 +0100 Subject: [PATCH] fix(BrowserStorage): don't create empty storage entries - chore: clean up empty storage entries on initializing Signed-off-by: Maksim Sukharev --- src/init.js | 22 ++++++++++++++++++++++ src/stores/settings.js | 4 +++- src/utils/webrtc/index.js | 4 +++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/init.js b/src/init.js index 9c0a6d63a96..dd5e16e30b6 100644 --- a/src/init.js +++ b/src/init.js @@ -136,4 +136,26 @@ const migrateDirectLocalStorageToNextcloudBrowserStorage = () => { BrowserStorage.setItem('localStorageMigrated', 'done') } +/** + * Clean unrelated to any conversation keys (if token was not defined, when creating entry). + */ +const cleanUnrelatedBrowserStorageKeys = () => { + const storageKeys = [ + 'audioDisabled_', + 'videoDisabled_', + 'showMediaSettings_', + 'virtualBackgroundEnabled_', + 'virtualBackgroundType_', + 'virtualBackgroundBlurStrength_', + 'virtualBackgroundUrl_', + ] + + storageKeys.forEach(key => { + if (BrowserStorage.getItem(key) !== null) { + BrowserStorage.removeItem(key) + } + }) +} + migrateDirectLocalStorageToNextcloudBrowserStorage() +cleanUnrelatedBrowserStorageKeys() diff --git a/src/stores/settings.js b/src/stores/settings.js index 9d9b74cc59c..58afcdb1d58 100644 --- a/src/stores/settings.js +++ b/src/stores/settings.js @@ -55,7 +55,9 @@ export const useSettingsStore = defineStore('settings', { getters: { getShowMediaSettings: (state) => (token) => { - if (state.showMediaSettings[token] !== undefined) { + if (!token) { + return true + } else if (state.showMediaSettings[token] !== undefined) { return state.showMediaSettings[token] } diff --git a/src/utils/webrtc/index.js b/src/utils/webrtc/index.js index e68a0cf6a5e..772f0a72628 100644 --- a/src/utils/webrtc/index.js +++ b/src/utils/webrtc/index.js @@ -244,6 +244,8 @@ async function signalingJoinCall(token, flags, silent, recordingConsent) { const virtualBackgroundBlurStrength = BrowserStorage.getItem('virtualBackgroundBlurStrength_' + token) const virtualBackgroundUrl = BrowserStorage.getItem('virtualBackgroundUrl_' + token) + localMediaModel.set('token', token) + if (enableAudio) { localMediaModel.enableAudio() } else { @@ -263,7 +265,7 @@ async function signalingJoinCall(token, flags, silent, recordingConsent) { localMediaModel.setVirtualBackgroundImage(virtualBackgroundUrl) } else if (virtualBackgroundType === VIRTUAL_BACKGROUND.BACKGROUND_TYPE.VIDEO) { localMediaModel.setVirtualBackgroundVideo(virtualBackgroundUrl) - } else { + } else if (virtualBackgroundType === VIRTUAL_BACKGROUND.BACKGROUND_TYPE.BLUR) { localMediaModel.setVirtualBackgroundBlur(virtualBackgroundBlurStrength) }