|
|
|
@ -1,9 +1,10 @@ |
|
|
|
|
// @flow
|
|
|
|
|
|
|
|
|
|
import { getMultipleVideoSendingSupportFeatureFlag } from '../base/config/functions.any'; |
|
|
|
|
import { openDialog } from '../base/dialog'; |
|
|
|
|
import { JitsiConferenceEvents } from '../base/lib-jitsi-meet'; |
|
|
|
|
import { getParticipantDisplayName, getPinnedParticipant, pinParticipant } from '../base/participants'; |
|
|
|
|
import { getLocalVideoTrack } from '../base/tracks'; |
|
|
|
|
import { getLocalDesktopTrack, getLocalVideoTrack, toggleScreensharing } from '../base/tracks'; |
|
|
|
|
import { NOTIFICATION_TIMEOUT_TYPE, showNotification } from '../notifications'; |
|
|
|
|
|
|
|
|
|
import { |
|
|
|
@ -500,7 +501,9 @@ export function sendStartRequest() { |
|
|
|
|
return (dispatch: Function, getState: Function) => { |
|
|
|
|
const state = getState(); |
|
|
|
|
const tracks = state['features/base/tracks']; |
|
|
|
|
const track = getLocalVideoTrack(tracks); |
|
|
|
|
const track = getMultipleVideoSendingSupportFeatureFlag(state) |
|
|
|
|
? getLocalDesktopTrack(tracks) |
|
|
|
|
: getLocalVideoTrack(tracks); |
|
|
|
|
const { sourceId } = track?.jitsiTrack || {}; |
|
|
|
|
const { transport } = state['features/remote-control'].receiver; |
|
|
|
|
|
|
|
|
@ -530,12 +533,21 @@ export function grant(participantId: string) { |
|
|
|
|
let promise; |
|
|
|
|
const state = getState(); |
|
|
|
|
const tracks = state['features/base/tracks']; |
|
|
|
|
const track = getLocalVideoTrack(tracks); |
|
|
|
|
const isMultiStreamSupportEnabled = getMultipleVideoSendingSupportFeatureFlag(state); |
|
|
|
|
const track = isMultiStreamSupportEnabled ? getLocalDesktopTrack(tracks) : getLocalVideoTrack(tracks); |
|
|
|
|
const isScreenSharing = track?.videoType === 'desktop'; |
|
|
|
|
const { sourceType } = track?.jitsiTrack || {}; |
|
|
|
|
|
|
|
|
|
if (isScreenSharing && sourceType === 'screen') { |
|
|
|
|
promise = dispatch(sendStartRequest()); |
|
|
|
|
} else if (isMultiStreamSupportEnabled) { |
|
|
|
|
promise = dispatch(toggleScreensharing( |
|
|
|
|
true, |
|
|
|
|
false, |
|
|
|
|
true, |
|
|
|
|
{ desktopSharingSources: [ 'screen' ] } |
|
|
|
|
)) |
|
|
|
|
.then(() => dispatch(sendStartRequest())); |
|
|
|
|
} else { |
|
|
|
|
// FIXME: Use action here once toggleScreenSharing is moved to redux.
|
|
|
|
|
promise = APP.conference.toggleScreenSharing( |
|
|
|
|