Fix for N_SE-53496 N_SE-53436 N_SE-53451
[apps/osp/Call.git] / src / CallConfCallerListForm.cpp
index 6159b6e..3dac607 100644 (file)
@@ -90,6 +90,7 @@ ConfCallerListForm::ConfCallerListForm(void)
        __pConfCallInfo = null;
        __pConfCallTimer = null;
        __isCallSplit = false;
+       __isConfCallStateInProgress = false;
        __pAddressbook = null;
 }
 
@@ -115,12 +116,7 @@ ConfCallerListForm::OnInitializing(void)
        //Add action listener to buttons
        AddActionListener(IDC_END_CONFCALL_BUTTON, IDA_END_CONF_CALL);
        AddActionListener(IDC_HOLD_CONFCALL_BUTTON, IDA_HOLD_CONF_CALL);
-
-       Footer* pFooter = GetFooter();
-       if(pFooter != null)
-       {
-               SetFormBackEventListener(this);
-       }
+       SetFormBackEventListener(this);
        Label* pTimerLbl = static_cast<Label*>(GetControl(IDC_CALL_TIME_LABEL));
        SetControlAlwaysOnTop(*pTimerLbl,true);
 
@@ -196,24 +192,18 @@ ConfCallerListForm::OnActionPerformed(const Control& source, int actionId)
                }
                bool success = true;
                bool isCallOnHold = __pConfCallInfo->IsOnHold();
-               if (isCallOnHold == false)
-               {
-                       success = __pCallPresentor->HoldConferenceCall();
-               }
-               else
+               if(IsConfCallStateInProgress() == false)
                {
-                       success = __pCallPresentor->ActivateConferenceCall();
-               }
-
-               //Check if request to Hold / UnHold call is successful.
-               if(success == true)
-               {
-                       //If success, then invert the Hold status in conference call
-                       isCallOnHold = !(isCallOnHold);
-                       __pConfCallInfo->SetOnHold(isCallOnHold);
-                       //update tableview
-                       __pList->UpdateTableView();
-                       SetHoldButtonStatus(isCallOnHold);
+                       if (isCallOnHold == false)
+                       {
+                               success = __pCallPresentor->HoldConferenceCall();
+                               SetConfCallStateInProgress(true);
+                       }
+                       else
+                       {
+                               success = __pCallPresentor->ActivateConferenceCall();
+                               SetConfCallStateInProgress(true);
+                       }
                }
        }
        break;
@@ -304,7 +294,7 @@ ConfCallerListForm::OnSceneActivatedN(const SceneId& previousSceneId, const Scen
        //set itself as listener
        __pCallPresentor->SetTelEventListener(this);
        __isCallSplit = false;
-
+       Tizen::System::SettingInfo::AddSettingEventListener(*this);
        AppLogDebug("Enter");
 
        //DisableAllControls();
@@ -365,6 +355,8 @@ ConfCallerListForm::OnSceneDeactivated(const SceneId& currentSceneId, const Scen
        {
                __pAddressbook->SetAddressbookChangeEventListener(null);
        }
+
+       Tizen::System::SettingInfo::RemoveSettingEventListener(*this);
 }
 
 result
@@ -434,6 +426,54 @@ ConfCallerListForm::HandleParticipantsChanged(void)
        __pList->SetEnabled(true);
 }
 
+
+void
+ConfCallerListForm::OnConfCallHoldTelephoneCallBackOccured(bool success)
+{
+       bool isCallOnHold = __pConfCallInfo->IsOnHold();
+       isCallOnHold = !(isCallOnHold);
+       __pConfCallInfo->SetOnHold(isCallOnHold);
+       __pList->UpdateTableView();
+       SetHoldButtonStatus(isCallOnHold);
+       SetConfCallStateInProgress(false);
+
+}
+
+bool
+ConfCallerListForm::IsConfCallStateInProgress(void)
+{
+       return __isConfCallStateInProgress;
+}
+
+void
+ConfCallerListForm::SetConfCallStateInProgress(bool progress)
+{
+       __isConfCallStateInProgress = progress;
+}
+
+
+void
+ConfCallerListForm::OnConfCallActiveTelephoneCallBackOccured(bool success)
+{
+       bool isCallOnHold = __pConfCallInfo->IsOnHold();
+       isCallOnHold = !(isCallOnHold);
+       __pConfCallInfo->SetOnHold(!success);
+       __pList->UpdateTableView();
+       SetHoldButtonStatus(!success);
+       SetConfCallStateInProgress(false);
+
+}
+
+/*void
+ConfCallerListForm::HandleHoldConferenceCallback(bool success)
+{
+       if(success == true)
+       {
+               __pList->UpdateTableView();
+               SetHoldButtonStatus(success);
+       }
+}*/
+
 void
 ConfCallerListForm::DisableAllControls(void)
 {
@@ -849,6 +889,15 @@ ConfCallerListForm::UpdateItem(int itemIndex, TableViewItem* pItem)
        return ;
 }
 
+void
+ConfCallerListForm::OnSettingChanged(Tizen::Base::String& key)
+{
+       if(key == L"http://tizen.org/setting/contacts.order.firstname")
+       {
+               __pList->UpdateTableView();
+       }
+}
+
 int
 ConfCallerListForm::GetDefaultItemHeight(void)
 {