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