public ConversationViewModel(IClientChannel clientChannel,
IForegroundUpdateService foregroundUpdateService,
IVoipChannel voipChannel)
{
_clientChannel = clientChannel;
_voipChannel = voipChannel;
_foregroundUpdateService = foregroundUpdateService;
foregroundUpdateService.OnRelayMessagesUpdated += OnRelayMessagesUpdated;
foregroundUpdateService.OnVoipStateUpdate += OnVoipStateUpdate;
foregroundUpdateService.OnFrameFormatUpdate += OnFrameFormatUpdate;
foregroundUpdateService.OnFrameRateUpdate += OnFrameRateUpdate;
SendInstantMessageCommand = new DelegateCommand(OnSendInstantMessageCommandExecute,
OnSendInstantMessageCommandCanExecute);
AudioCallCommand = new DelegateCommand(OnCallCommandExecute, OnCallCommandCanExecute);
VideoCallCommand = new DelegateCommand(OnVideoCallCommandExecute, OnVideoCallCommandCanExecute);
HangupCommand = new DelegateCommand(OnHangupCommandExecute, OnHangupCommandCanExecute);
AnswerCommand = new DelegateCommand(OnAnswerCommandExecute, OnAnswerCommandCanExecute);
RejectCommand = new DelegateCommand(OnRejectCommandExecute, OnRejectCommandCanExecute);
CloseConversationCommand = new DelegateCommand(OnCloseConversationCommandExecute, () => _canCloseConversation);
MuteMicrophoneCommand = new DelegateCommand(MuteMicCommandExecute, MicCommandCanExecute);
UnMuteMicrophoneCommand = new DelegateCommand(UnMuteCommandExecute, MicCommandCanExecute);
SwitchVideoCommand = new DelegateCommand(SwitchVideoCommandExecute, SwitchVideoCommandCanExecute);
LayoutService.Instance.LayoutChanged += LayoutChanged;
LayoutChanged(LayoutService.Instance.LayoutType);
SetVideoPresenters();
}