diff --git a/SmartPanel.xaml.cpp b/SmartPanel.xaml.cpp index 0157695aba25c2a68454699ec7aef88820ca34b5..2ee06291e553d7b6afe6cf20f2a689ef4e5673b6 100644 --- a/SmartPanel.xaml.cpp +++ b/SmartPanel.xaml.cpp @@ -115,42 +115,7 @@ SmartPanel::SmartPanel() } }); - RingD::instance->stateChange += ref new StateChange([this](String^ callId, CallStatus state, int code) { - - auto item = SmartPanelItemsViewModel::instance->findItem(callId); - - if (!item) { - WNG_("item not found"); - return; - } - - switch (state) { - case CallStatus::NONE: - case CallStatus::ENDED: - { - auto callsList = DRing::getCallList(); - if (callsList.empty()) - _settingsMenuButton_->Visibility = VIS::Visible; - break; - } - case CallStatus::IN_PROGRESS: - { - SmartPanelItemsViewModel::instance->_selectedItem = item; - summonVideoPage(); - break; - } - case CallStatus::PEER_PAUSED: - case CallStatus::PAUSED: - { - SmartPanelItemsViewModel::instance->_selectedItem = item; - summonVideoPage(); - break; - } - default: - break; - } - - }); + RingD::instance->stateChange += ref new StateChange(this, &SmartPanel::OnstateChange); RingD::instance->devicesListRefreshed += ref new RingClientUWP::DevicesListRefreshed(this, &RingClientUWP::Views::SmartPanel::OndevicesListRefreshed); ContactsViewModel::instance->contactAdded += ref new ContactAdded([this](Contact^ contact) { @@ -174,6 +139,43 @@ SmartPanel::SmartPanel() selectMenu(MenuOpen::CONTACTS_LIST); } +void +SmartPanel::OnstateChange(Platform::String ^callId, RingClientUWP::CallStatus state, int code) +{ + auto item = SmartPanelItemsViewModel::instance->findItem(callId); + + if (!item) { + WNG_("item not found"); + return; + } + + switch (state) { + case CallStatus::NONE: + case CallStatus::ENDED: + { + auto callsList = DRing::getCallList(); + if (callsList.empty()) + _settingsMenuButton_->Visibility = VIS::Visible; + break; + } + case CallStatus::IN_PROGRESS: + { + SmartPanelItemsViewModel::instance->_selectedItem = item; + summonVideoPage(); + break; + } + case CallStatus::PEER_PAUSED: + case CallStatus::PAUSED: + { + SmartPanelItemsViewModel::instance->_selectedItem = item; + summonVideoPage(); + break; + } + default: + break; + } +} + void RingClientUWP::Views::SmartPanel::updatePageContent() { diff --git a/SmartPanel.xaml.h b/SmartPanel.xaml.h index deecd396a081f995f24106a3ef2f4edbcc1c05c3..437631b842f251befcc7a0ddeecfad132a32b10b 100644 --- a/SmartPanel.xaml.h +++ b/SmartPanel.xaml.h @@ -157,6 +157,7 @@ private: void checkStateEditionMenu(); void ringTxtBxPlaceHolderDelay(String^ placeHolderText, int delayInMilliSeconds); void showLinkThisDeviceStep1(); + void OnstateChange(Platform::String ^callId, RingClientUWP::CallStatus state, int code); /* members */ void _addDevice__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);