From 7d99c54ec8af05ae6d3137a7a47aa9c9fa7eae08 Mon Sep 17 00:00:00 2001 From: bbaldino Date: Fri, 14 Jul 2017 18:45:32 +0000 Subject: [PATCH] fix an error when testing a result from a method that returns a promise --- conference.js | 59 ++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/conference.js b/conference.js index 8b46a51d9..20e5d10be 100644 --- a/conference.js +++ b/conference.js @@ -1977,35 +1977,42 @@ export default { * @private */ _initDeviceList() { - if (JitsiMeetJS.mediaDevices.isDeviceListAvailable() && - JitsiMeetJS.mediaDevices.isDeviceChangeAvailable()) { - JitsiMeetJS.mediaDevices.enumerateDevices(devices => { - // Ugly way to synchronize real device IDs with local - // storage and settings menu. This is a workaround until - // getConstraints() method will be implemented in browsers. - if (localAudio) { - APP.settings.setMicDeviceId( - localAudio.getDeviceId(), false); - } + JitsiMeetJS.mediaDevices.isDeviceListAvailable() + .then(isDeviceListAvailable => { + if (isDeviceListAvailable + && JitsiMeetJS.mediaDevices.isDeviceChangeAvailable()) { + JitsiMeetJS.mediaDevices.enumerateDevices(devices => { + // Ugly way to synchronize real device IDs with local + // storage and settings menu. This is a workaround until + // getConstraints() method will be implemented + // in browsers. + if (localAudio) { + APP.settings.setMicDeviceId( + localAudio.getDeviceId(), false); + } - if (localVideo) { - APP.settings.setCameraDeviceId( - localVideo.getDeviceId(), false); - } + if (localVideo) { + APP.settings.setCameraDeviceId( + localVideo.getDeviceId(), false); + } - mediaDeviceHelper.setCurrentMediaDevices(devices); - APP.UI.onAvailableDevicesChanged(devices); - APP.store.dispatch(updateDeviceList(devices)); - this.updateVideoIconEnabled(); + mediaDeviceHelper.setCurrentMediaDevices(devices); + APP.UI.onAvailableDevicesChanged(devices); + APP.store.dispatch(updateDeviceList(devices)); + this.updateVideoIconEnabled(); + }); + + this.deviceChangeListener = (devices) => + window.setTimeout( + () => this._onDeviceListChanged(devices), 0); + JitsiMeetJS.mediaDevices.addEventListener( + JitsiMeetJS.events.mediaDevices.DEVICE_LIST_CHANGED, + this.deviceChangeListener); + } + }) + .catch((error) => { + logger.warn(`Error getting device list: ${error}`); }); - - this.deviceChangeListener = (devices) => - window.setTimeout( - () => this._onDeviceListChanged(devices), 0); - JitsiMeetJS.mediaDevices.addEventListener( - JitsiMeetJS.events.mediaDevices.DEVICE_LIST_CHANGED, - this.deviceChangeListener); - } }, /** * Event listener for JitsiMediaDevicesEvents.DEVICE_LIST_CHANGED to