fix: open device selection if it is the only available setting
Move logic to open device selection outside of SettingsMenu so it can be called independently by either SettingsMenu or by the settings button itself if no other settings but devices will be displayed.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/* globals APP */
|
||||
|
||||
import { openDialog } from '../base/dialog';
|
||||
import JitsiMeetJS from '../base/lib-jitsi-meet';
|
||||
|
||||
import { DeviceSelectionDialog } from './components';
|
||||
|
||||
/**
|
||||
* Open DeviceSelectionDialog with a configuration based on the environment's
|
||||
* supported abilities.
|
||||
*
|
||||
* @returns {Function}
|
||||
*/
|
||||
export function openDeviceSelectionDialog() {
|
||||
return (dispatch, getState) => {
|
||||
JitsiMeetJS.mediaDevices.isDeviceListAvailable()
|
||||
.then(isDeviceListAvailable => {
|
||||
const state = getState();
|
||||
const conference = state['features/base/conference'].conference;
|
||||
|
||||
dispatch(openDialog(DeviceSelectionDialog, {
|
||||
currentAudioOutputId: APP.settings.getAudioOutputDeviceId(),
|
||||
currentAudioTrack: conference.getLocalAudioTrack(),
|
||||
currentVideoTrack: conference.getLocalVideoTrack(),
|
||||
disableAudioInputChange:
|
||||
!JitsiMeetJS.isMultipleAudioInputSupported(),
|
||||
disableDeviceChange: !isDeviceListAvailable
|
||||
|| !JitsiMeetJS.mediaDevices.isDeviceChangeAvailable(),
|
||||
hasAudioPermission: JitsiMeetJS.mediaDevices
|
||||
.isDevicePermissionGranted('audio'),
|
||||
hasVideoPermission: JitsiMeetJS.mediaDevices
|
||||
.isDevicePermissionGranted('video'),
|
||||
hideAudioInputPreview:
|
||||
!JitsiMeetJS.isCollectingLocalStats(),
|
||||
hideAudioOutputSelect: !JitsiMeetJS.mediaDevices
|
||||
.isDeviceChangeAvailable('output')
|
||||
}));
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
export * from './actions';
|
||||
export * from './components';
|
||||
|
||||
Reference in New Issue
Block a user