diff --git a/addons/mail/static/src/rtc/call_settings.js b/addons/mail/static/src/rtc/call_settings.js index 025e7fe4eba..cd2ce485516 100644 --- a/addons/mail/static/src/rtc/call_settings.js +++ b/addons/mail/static/src/rtc/call_settings.js @@ -4,12 +4,14 @@ import { Component, onWillStart, useExternalListener, useState } from "@odoo/owl import { useRtc } from "@mail/rtc/rtc_hook"; import { useService } from "@web/core/utils/hooks"; import { browser } from "@web/core/browser/browser"; +import { _t } from "@web/core/l10n/translation"; export class CallSettings extends Component { static template = "mail.CallSettings"; static props = ["thread", "className?"]; setup() { + this.notification = useService("notification"); this.userSettings = useState(useService("mail.user_settings")); this.rtc = useRtc(); this.state = useState({ @@ -18,6 +20,15 @@ export class CallSettings extends Component { useExternalListener(browser, "keydown", this._onKeyDown); useExternalListener(browser, "keyup", this._onKeyUp); onWillStart(async () => { + if (!browser.navigator.mediaDevices) { + // zxing-js: isMediaDevicesSuported or canEnumerateDevices is false. + this.notification.add( + _t("Media devices unobtainable. SSL might not be set up properly."), + { type: "warning" } + ); + console.warn("Media devices unobtainable. SSL might not be set up properly."); + return; + } this.state.userDevices = await browser.navigator.mediaDevices.enumerateDevices(); }); } diff --git a/doc/cla/individual/Armitxes.md b/doc/cla/individual/Armitxes.md new file mode 100644 index 00000000000..81375d13072 --- /dev/null +++ b/doc/cla/individual/Armitxes.md @@ -0,0 +1,11 @@ +Germany, 2023-02-15 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Jan Brodersen janbrodersen@armitxes.net https://github.com/Armitxes \ No newline at end of file