feat(settings): split default camera and microphone settings into separate toggles - #19034
feat(settings): split default camera and microphone settings into separate toggles#19034max65482 wants to merge 2 commits into
Conversation
1b53244 to
8d37e88
Compare
…les, Assisted-by: Copilot:gpt-5.6-luna Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
8d37e88 to
8bffb12
Compare
Antreesy
left a comment
There was a problem hiding this comment.
Thanks for the contribution!
Needs a backender to review it before continue.
From a quick glance - we can't just drop a config option from v20.1, it needs to be deprecated as minimum; existing values set on server can be migrated to maintain behaviour (previous: true -> audio: true + video: true), client should check if server supports new options, otherwise fall back to pre-existing one (e.g. if new client used with old server)
|
Thanks for the hint! Added backward and forward compatibility. |
50ee006 to
b2fa3c8
Compare
…luna Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
b2fa3c8 to
ad59add
Compare
| } | ||
|
|
||
| $legacyAppSetting = $this->appConfig->getAppValue(self::CALLS_START_WITHOUT_MEDIA); | ||
| if ($legacyAppSetting !== '') { |
There was a problem hiding this comment.
Use hasAppKey instead, then you can still use getAppValueBool?
| // If the legacy setting is not set, check the new settings for audio and video separately. | ||
| $audioAppSetting = $this->appConfig->getAppValue(self::CALLS_START_WITHOUT_AUDIO); | ||
| $videoAppSetting = $this->appConfig->getAppValue(self::CALLS_START_WITHOUT_VIDEO); | ||
| if ($audioAppSetting !== '' || $videoAppSetting !== '') { |
| * start-without-audio: bool, | ||
| * start-without-video: bool, |
| @@ -793,6 +793,8 @@ | |||
| * can-enable-sip: bool, | |||
| * // Whether calls start without media by default | |||
There was a problem hiding this comment.
Should mention the deprecation and what to check instead
| new Entry(Config::EXTERNAL_CALL_SERVICE_FRAME_ORIGINS, ValueType::ARRAY, [], definition: 'JSON array of scheme+host(+port) origins that may be loaded in the iframe.' . PHP_EOL . 'Added to `Content-Security-Policy: frame-src` and the `Permissions-Policy` for camera/microphone'), | ||
| new Entry(Config::EXTERNAL_CALL_SERVICE_IFRAME_FIELD, ValueType::STRING, '', definition: 'JSON field name in the external service response that contains the iframe URL'), | ||
| new Entry(Config::CALLS_START_WITHOUT_MEDIA, ValueType::BOOL, false, definition: 'Whether participants start with enabled or disabled audio and video by default'), | ||
| new Entry(Config::CALLS_START_WITHOUT_MEDIA, ValueType::BOOL, false, definition: 'Deprecated: whether participants start with audio and video disabled by default', deprecated: true), |
There was a problem hiding this comment.
Should mention what to check instead
| public const BLUR_VIRTUAL_BACKGROUND = 'blur_virtual_background'; | ||
| public const CALLS_START_WITHOUT_AUDIO = 'calls_start_without_audio'; | ||
| public const CALLS_START_WITHOUT_VIDEO = 'calls_start_without_video'; | ||
| /** @deprecated Kept as fallback for existing installations. */ |
There was a problem hiding this comment.
| /** @deprecated Kept as fallback for existing installations. */ | |
| #[\Deprecated(message: 'Check individual configs for audio and video instead', since: '26.0.0')] |
| $event->getConfigValue(), | ||
| )); | ||
| if ($event->isValid()) { | ||
| $this->synchronizeMediaPreferences($event->getUserId(), $event->getConfigKey(), $event->getConfigValue()); |
There was a problem hiding this comment.
this should happen in … oh there is no post-event
| * `email-csv-import` - Whether the endpoint to import a CSV email list as participants exists | ||
| * `config => chat => summary-threshold` (local) - Number of unread messages that should exist to show a "Generate summary" option | ||
| * `config => call => start-without-media` (local) - Boolean, whether media should be disabled when starting or joining a conversation | ||
| * `config => call => start-without-media` (local, deprecated) - Boolean, whether media should be disabled when starting or joining a conversation |
There was a problem hiding this comment.
Should mention what should be checked instead
|
Thanks for your review @nickvergessen! |
☑️ Resolves
AI (if applicable)
🖌️ UI Checklist
🖼️ Screenshots / Screencasts
🚧 Tasks
🏁 Checklist
🛠️ API Checklist
🚧 Tasks
🏁 Checklist
docs/has been updated or is not required