From f12a89ba21f8e5215fba9130f1787c5cc0e66fb8 Mon Sep 17 00:00:00 2001 From: Peter Rogge Date: Wed, 22 Jul 2026 12:33:02 +0200 Subject: [PATCH 01/15] add silent call to settings and call dialog --- .../MediaSettings/MediaSettings.vue | 7 ++++++- .../SettingsDialog/SettingsDialog.vue | 20 ++++++++++++++++--- src/components/TopBar/CallButton.vue | 12 +++++++---- src/stores/settings.ts | 13 ++++++++++++ 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/components/MediaSettings/MediaSettings.vue b/src/components/MediaSettings/MediaSettings.vue index 441a85c6e62..188c632e03e 100644 --- a/src/components/MediaSettings/MediaSettings.vue +++ b/src/components/MediaSettings/MediaSettings.vue @@ -344,6 +344,7 @@ export default { const guestNameStore = useGuestNameStore() const settingsStore = useSettingsStore() const dialogHeaderId = `media-settings-header-${useId()}` + const token = useGetToken() const { devices, @@ -422,7 +423,7 @@ export default { tabContent: 'devices', audioOn: undefined, videoOn: undefined, - notifyCall: true, + notifyCall: false, updatedBackground: undefined, audioDeviceStateChanged: false, videoDeviceStateChanged: false, @@ -714,6 +715,10 @@ export default { if (!this.isDialog) { this.showMediaSettings() } + const silentCall = this.settingsStore.defaultCallMethodIsSilent + console.log('silentCall:', silentCall) + + BrowserStorage.setItem('silentCall_' + this.token, silentCall ? 'true' : 'false') }, beforeUnmount() { diff --git a/src/components/SettingsDialog/SettingsDialog.vue b/src/components/SettingsDialog/SettingsDialog.vue index 327c905b52b..4ee3e1168a2 100644 --- a/src/components/SettingsDialog/SettingsDialog.vue +++ b/src/components/SettingsDialog/SettingsDialog.vue @@ -39,6 +39,12 @@ :label="t('spreed', 'Skip device preview before joining a call')" :description="t('spreed', 'Camera will be turned off when joining. Always shown if recording consent is required.')" @update:modelValue="setHideMediaSettings" /> + @@ -142,7 +148,8 @@ - diff --git a/src/components/TopBar/CallButton.vue b/src/components/TopBar/CallButton.vue index 953a935b419..8613a968b89 100644 --- a/src/components/TopBar/CallButton.vue +++ b/src/components/TopBar/CallButton.vue @@ -15,7 +15,7 @@ - From c68a4d34daf1994e9e1de1afeb9cde634472bfd6 Mon Sep 17 00:00:00 2001 From: Peter Rogge Date: Wed, 5 Aug 2026 09:47:09 +0200 Subject: [PATCH 12/15] remove unnecessary silentCall flag creation resolves: https://github.com/nextcloud/spreed/pull/18909#discussion_r3710578844 --- src/components/MediaSettings/MediaSettings.vue | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/MediaSettings/MediaSettings.vue b/src/components/MediaSettings/MediaSettings.vue index abfe9dd3b91..b1aeba354eb 100644 --- a/src/components/MediaSettings/MediaSettings.vue +++ b/src/components/MediaSettings/MediaSettings.vue @@ -642,7 +642,11 @@ export default { this.audioOn = !BrowserStorage.getItem('audioDisabled_' + this.token) this.videoOn = !BrowserStorage.getItem('videoDisabled_' + this.token) } - this.notifyCall = BrowserStorage.getItem('silentCall_' + this.token) !== 'true' + //check if this call has a silent call flag in storage, otherwise use the default setting from the settings store + const hasSilentCallFlag = BrowserStorage.getItem('silentCall_' + this.token) + this.notifyCall = hasSilentCallFlag !== null + ? hasSilentCallFlag !== 'true' + : this.settingsStore.defaultCallMethodIsSilent // Set virtual background depending on BrowserStorage's settings if (BrowserStorage.getItem('virtualBackgroundEnabled') === 'true') { @@ -714,9 +718,6 @@ export default { if (!this.isDialog) { this.showMediaSettings() } - const silentCall = this.settingsStore.defaultCallMethodIsSilent - - BrowserStorage.setItem('silentCall_' + this.token, silentCall ? 'true' : 'false') }, beforeUnmount() { From 17d690faf74fcd07d8c607c7a6e62784397fe23d Mon Sep 17 00:00:00 2001 From: Peter Rogge Date: Wed, 5 Aug 2026 10:31:10 +0200 Subject: [PATCH 13/15] move silent call logic for CallButton resolves: https://github.com/nextcloud/spreed/pull/18909#discussion_r3712208782 --- src/components/MediaSettings/MediaSettings.vue | 3 ++- src/components/TopBar/CallButton.vue | 10 +++------- src/components/TopBar/TopBar.vue | 8 +++++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/components/MediaSettings/MediaSettings.vue b/src/components/MediaSettings/MediaSettings.vue index b1aeba354eb..e1c27398f48 100644 --- a/src/components/MediaSettings/MediaSettings.vue +++ b/src/components/MediaSettings/MediaSettings.vue @@ -644,9 +644,10 @@ export default { } //check if this call has a silent call flag in storage, otherwise use the default setting from the settings store const hasSilentCallFlag = BrowserStorage.getItem('silentCall_' + this.token) + console.log('hasSilentCallFlag', hasSilentCallFlag, 'defaultCallMethodIsSilent', this.settingsStore.defaultCallMethodIsSilent) this.notifyCall = hasSilentCallFlag !== null ? hasSilentCallFlag !== 'true' - : this.settingsStore.defaultCallMethodIsSilent + : !this.settingsStore.defaultCallMethodIsSilent // Set virtual background depending on BrowserStorage's settings if (BrowserStorage.getItem('virtualBackgroundEnabled') === 'true') { diff --git a/src/components/TopBar/CallButton.vue b/src/components/TopBar/CallButton.vue index 5fc28be337c..c83c152013e 100644 --- a/src/components/TopBar/CallButton.vue +++ b/src/components/TopBar/CallButton.vue @@ -15,7 +15,7 @@