Fix for 45866
[apps/osp/Call.git] / src / CallActiveCallForm.cpp
index 13720a7..635a485 100644 (file)
@@ -110,7 +110,7 @@ ActiveCallForm::ActiveCallForm(FormType formType)
        __pActiveCallInfo = null;
        __pHeldCallInfo = null;
        __isSwapInProgress = false;
-       __pAddressbook == null;
+       __pAddressbook = null;
 }
 
 ActiveCallForm::~ActiveCallForm(void)
@@ -277,6 +277,7 @@ ActiveCallForm::OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui
                        {
                                //in Portrait mode it is hidden beneath DTMF Keypad.
                                SetShowStateOnKeypad(false);
+                               DestroyMoreOptionsMenuList();
                        }
                        if(__pDTMFKeypad->GetShowState() == true)
                        {
@@ -455,6 +456,7 @@ ActiveCallForm::SetHoldButtonStatus(bool toHoldCall)
                pHoldBtn->SetActionId(cmdId);
                pHoldBtn->SetNormalBitmap(Point(0, 0),*normalImg);
                pHoldBtn->SetPressedBitmap(Point(0, 0),*pressImg);
+               pHoldBtn->Invalidate(true);
        }
        if (pHoldLbl)
        {
@@ -579,6 +581,7 @@ ActiveCallForm::OnActionPerformed(const Control& source, int actionId)
                {
                        //hide only in portrait mode.
                        SetShowStateOnKeypad(false);
+                       DestroyMoreOptionsMenuList();
                }
                //Hide the hold button as it goes behind DTMF keypad
                SetHoldButtonShowState(false);
@@ -1025,6 +1028,11 @@ ActiveCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId&
                        __pCallButtonsPanel->EnableAddCallButton(true);
                }
 
+
+               //bring button on top
+               __pCallButtonsPanel->SetButtonPosition();
+
+
                //show call active time using Timer
                __activeCallStartTime = __pActiveCallInfo->GetCallConnectTime();
                ShowTimerInfo(IDC_CALLER1_TIME_LABEL, __pActiveCallInfo->IsOnHold(),__activeCallStartTime);
@@ -1078,6 +1086,10 @@ ActiveCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId&
                pArgs = null;
        }
 
+       //update position of call buttons panel
+       Label* pKeysBgLbl = static_cast<Label*>(GetControl(IDC_KEY_BG_LABEL, true));
+       __pCallButtonsPanel->SetBounds(pKeysBgLbl->GetBounds());
+
        CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
        pCallApp->SetTopMostWindow(false);
 }
@@ -1086,11 +1098,6 @@ void
 ActiveCallForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
 {
        RemoveOrientationEventListener(*this);
-       if (__pCallButtonsPanel != null)
-       {
-               RemoveControl(__pCallButtonsPanel);
-               __pCallButtonsPanel = null;
-       }
        if (__pActiveCallTimer != null)
        {
                __pActiveCallTimer->Cancel();
@@ -1196,11 +1203,6 @@ ActiveCallForm::OnContactsChanged(const Tizen::Base::Collection::IList& contactC
        switch (__formType)
        {
 
-       case FORMTYPE_EMERGENCYOUTGOINGCALL:
-       {
-       }
-       break;
-
        case FORMTYPE_OUTGOINGCALL:
        case FORMTYPE_ACTIVECALL:
        {
@@ -1236,78 +1238,57 @@ ActiveCallForm::OnContactsChanged(const Tizen::Base::Collection::IList& contactC
        {
 
                IListT<AppCallInfo>* pCallsList = __pCallPresentor->GetCallListN();
-               int listCount = pCallsList->GetCount();
-               for(int index = 0; index < listCount; index++)
+               if(pCallsList != null)
                {
-                       AppCallInfo callInfo;
-                       Contact* pContact;
-                       pCallsList->GetAt(index, callInfo);
-                       if(__pActiveCallInfo == null)
+                       int listCount = pCallsList->GetCount();
+                       for(int index = 0; index < listCount; index++)
                        {
-                               __pActiveCallInfo = new (std::nothrow) AppCallInfo();
-                       }
-                       *__pActiveCallInfo =  callInfo;
-                       String contactNumber;
-                       contactNumber.Append(__pActiveCallInfo->GetContactNumber());
-                       pContact = __pCallPresentor->GetContactN(__pActiveCallInfo->GetContactNumber());
-                       if(pContact == null)
-                       {
-                               __pActiveCallInfo->ResetContactNumber(null);
-                               __pActiveCallInfo->ResetContactInfo(null);
+                               AppCallInfo callInfo;
+                               Contact* pContact;
+                               pCallsList->GetAt(index, callInfo);
+                               if(__pActiveCallInfo == null)
+                               {
+                                       __pActiveCallInfo = new (std::nothrow) AppCallInfo();
+                               }
+                               *__pActiveCallInfo =  callInfo;
+                               String contactNumber;
+                               contactNumber.Append(__pActiveCallInfo->GetContactNumber());
+                               pContact = __pCallPresentor->GetContactN(__pActiveCallInfo->GetContactNumber());
+                               if(pContact == null)
+                               {
+                                       __pActiveCallInfo->ResetContactNumber(null);
+                                       __pActiveCallInfo->ResetContactInfo(null);
+
+                               }
+                               else
+                               {
+                                       __pActiveCallInfo->SetContactNumber(contactNumber);
+                                       __pActiveCallInfo->SetContactInfo(*pContact);
+                               }
+                               if(pContact != null)
+                               {
+                                       delete pContact;
+                                       pContact = null;
+                               }
+                               if(callInfo.IsOnHold() == false)
+                               {
+                                       ShowPersonDetails(contactNumber, IDC_NUMBER1_LABEL, IDC_CALLER1_LABEL, false,__pActiveCallInfo);
+                               }
+                               else
+                               {
+                                       ShowPersonDetails(contactNumber, IDC_NUMBER2_LABEL, IDC_CALLER2_LABEL, true,__pActiveCallInfo);
+                               }
 
-                       }
-                       else
-                       {
-                               __pActiveCallInfo->SetContactNumber(contactNumber);
-                               __pActiveCallInfo->SetContactInfo(*pContact);
-                       }
-                       if(pContact != null)
-                       {
-                               delete pContact;
-                               pContact = null;
-                       }
-                       if(callInfo.IsOnHold() == false)
-                       {
-                               ShowPersonDetails(contactNumber, IDC_NUMBER1_LABEL, IDC_CALLER1_LABEL, false,__pActiveCallInfo);
-                       }
-                       else
-                       {
-                               ShowPersonDetails(contactNumber, IDC_NUMBER2_LABEL, IDC_CALLER2_LABEL, true,__pActiveCallInfo);
                        }
 
-               }
-               if(pCallsList != null)
-               {
                        delete pCallsList;
                        pCallsList = null;
                }
-               //pCallsList = __pCallPresentor->GetCallListN();
-               //update calls state
-               //UpdateMultipleCallScreen(*pCallsList);
-               //delete pCallsList;
-               //pCallsList = null;
-       }
-       break;
-
-       case FORMTYPE_ACTIVECONFCALL:
-       {
-               int participantsCount = __pActiveCallInfo->GetCallerListCount();
-               IListT<AppCallInfo>* pParticipantListCallHandles = __pActiveCallInfo->GetCallerList();
-               for(int listCount = 0; listCount < participantsCount; listCount++)
-               {
-
-               }
-
        }
        break;
-
        default:
                break;
        }
-
-
-
-
        AppLog("Exit");
 }
 
@@ -1957,7 +1938,7 @@ ActiveCallForm::OnListViewItemStateChanged(ListView& listView, int index, int el
        //Goto conference call list form
        SceneManager* pSceneManager = SceneManager::GetInstance();
        pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CONFCALLLIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
-                        SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), null);
+                        SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_KEEP), null);
 }
 
 void