From de3b02eef25bb6af9983a473f72d8cf37063f99f Mon Sep 17 00:00:00 2001 From: atraczyk <andreastraczyk@gmail.com> Date: Tue, 20 Dec 2016 14:58:36 -0500 Subject: [PATCH] fix: use named function for StateChange delegate instead of lambda Change-Id: I99a2ebd575980523c22646a13390fcb5e3e5a872 Tuleap: #790 --- SmartPanel.xaml.cpp | 74 +++++++++++++++++++++++---------------------- SmartPanel.xaml.h | 1 + 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/SmartPanel.xaml.cpp b/SmartPanel.xaml.cpp index 0157695..2ee0629 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 deecd39..437631b 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); -- GitLab