Prevent issue fix. Nabi issues fixed
[apps/osp/Call.git] / src / CallConfCallerListForm.cpp
index 6dd9a1c..ad5e8f8 100644 (file)
@@ -103,6 +103,7 @@ ConfCallerListForm::ConfCallerListForm(void)
 {
        __pConfCallInfo = null;
        __pConfCallTimer = null;
+       __isCallSplit = false;
 }
 
 ConfCallerListForm::~ConfCallerListForm(void)
@@ -224,8 +225,8 @@ ConfCallerListForm::OnActionPerformed(const Control& source, int actionId)
                        //If success, then invert the Hold status in conference call
                        isCallOnHold = !(isCallOnHold);
                        __pConfCallInfo->SetOnHold(isCallOnHold);
-                       //update panels and Hold button status
-                       ActivatePanels();
+                       //update tableview
+                       __pList->UpdateTableView();
                        SetHoldButtonStatus(isCallOnHold);
                }
        }
@@ -280,7 +281,11 @@ ConfCallerListForm::OnActionPerformed(const Control& source, int actionId)
                {
                        break;
                }
-               __pCallPresentor->SplitFromConference(SplitConfCallerCmdIds(actionId),__pConfCallInfo->GetCallerList());
+               __isCallSplit = __pCallPresentor->SplitFromConference(SplitConfCallerCmdIds(actionId),__pConfCallInfo->GetCallerList());
+               if(__isCallSplit == true)
+               {
+                       __pList->UpdateTableView();
+               }
        }
        break;
 
@@ -309,6 +314,7 @@ ConfCallerListForm::OnSceneActivatedN(const SceneId& previousSceneId, const Scen
 {
        //set itself as listener
        __pCallPresentor->SetTelEventListener(this);
+       __isCallSplit = false;
 
        AppLogDebug("Enter");
 
@@ -345,7 +351,6 @@ ConfCallerListForm::OnSceneActivatedN(const SceneId& previousSceneId, const Scen
 
        __pList->UpdateTableView();
        AddOrientationEventListener(*this);
-       //ActivatePanels();
 }
 
 void
@@ -423,9 +428,6 @@ ConfCallerListForm::HandleParticipantsChanged(void)
        }
        __pConfCallInfo = new (std::nothrow) AppCallInfo();
        *__pConfCallInfo = *pCallInfo;
-       //Disable all key panels and redraw with new caller list
-       //DisableAllControls();
-       //ActivatePanels();
        __pList->UpdateTableView();
 }
 
@@ -475,164 +477,6 @@ ConfCallerListForm::DisableAllControls(void)
 }
 
 void
-ConfCallerListForm::ActivatePanels(void)
-{
-       IListT<AppCallInfo>* pCallList = __pConfCallInfo->GetCallerList();
-       int confCallCount = pCallList->GetCount();
-
-       for (int index = 0; index < confCallCount; index++)
-       {
-               AppCallInfo callInfo;
-               String pContactNo;
-               result r = pCallList->GetAt(index, callInfo);
-               if(callInfo.GetContactNumber().IsEmpty() == false)
-               {
-                       pContactNo.Append(callInfo.GetContactNumber());
-               }
-               else
-               {
-                       pContactNo.Append(AppUtility::GetResourceString(IDS_NUMBER_UNKNOWN));
-               }
-
-               //fetch contact details based on phone number
-               String* pDisplayName = callInfo.FetchCallerNameN();
-
-               if ((pDisplayName->IsEmpty()) || r != E_SUCCESS)
-               {
-                       pDisplayName->Append(pContactNo);
-               }
-
-               switch (index)
-               {
-               case 0:
-               {
-                       ActivatePanelAndAddActionListener(IDC_CALLER1_PANEL,IDC__LINE_LABEL1,IDC_SPLIT_CALLER1,IDC_END_CALLER1
-                                       ,IDC_CALLER1_LABEL,IDA_SPLIT_CALLER1,IDA_END_CALLER1,*pDisplayName);
-               }
-               break;
-
-               case 1:
-               {
-                       ActivatePanelAndAddActionListener(IDC_CALLER2_PANEL,IDC__LINE_LABEL2,IDC_SPLIT_CALLER2,IDC_END_CALLER2
-                                       ,IDC_CALLER2_LABEL,IDA_SPLIT_CALLER2,IDA_END_CALLER2,*pDisplayName);
-               }
-               break;
-
-               case 2:
-               {
-                       ActivatePanelAndAddActionListener(IDC_CALLER3_PANEL,IDC__LINE_LABEL3,IDC_SPLIT_CALLER3,IDC_END_CALLER3
-                                       ,IDC_CALLER3_LABEL,IDA_SPLIT_CALLER3,IDA_END_CALLER3,*pDisplayName);
-               }
-               break;
-
-               case 3:
-               {
-                       ActivatePanelAndAddActionListener(IDC_CALLER4_PANEL,IDC__LINE_LABEL4,IDC_SPLIT_CALLER4,IDC_END_CALLER4
-                                       ,IDC_CALLER4_LABEL,IDA_SPLIT_CALLER4,IDA_END_CALLER4,*pDisplayName);
-               }
-               break;
-
-               case 4:
-               {
-                       ActivatePanelAndAddActionListener(IDC_CALLER5_PANEL,IDC__LINE_LABEL5,IDC_SPLIT_CALLER5,IDC_END_CALLER5
-                                       ,IDC_CALLER5_LABEL,IDA_SPLIT_CALLER5,IDA_END_CALLER5,*pDisplayName);
-               }
-               break;
-
-               default:
-                       break;
-               }
-
-               delete pDisplayName;
-               pDisplayName = null;
-       }
-}
-
-void
-ConfCallerListForm::ActivatePanelAndAddActionListener( const String& panelName, const String& lineLabelName, const String& splitButtonName,
-               const String& endButtonName, const String& callerLabelName, SplitConfCallerCmdIds splitCmdId,
-               EndConfCallerCmdIds EndCmdId, const String& displayName)
-{
-       Bitmap* pNormalSplitBitmap = null;
-       Bitmap* pPressSplitBitmap = null;
-
-
-       Bitmap* pNormalEndBitmap = null;
-       Bitmap* pPressEndBitmap = null;
-
-
-
-       pNormalSplitBitmap = AppUtility::GetBitmapFromResourcesN(IDB_SPLIT_NORMAL_BUTTON_ICON,
-                       W_SPLIT_BITMAP, H_SPLIT_BITMAP);
-       pPressSplitBitmap = AppUtility::GetBitmapFromResourcesN(IDB_SPLIT_PRESS_BUTTON_ICON,
-                       W_SPLIT_BITMAP, H_SPLIT_BITMAP);
-       pNormalEndBitmap = AppUtility::GetBitmapFromResourcesN(IDB_END_NORMAL_BUTTON_ICON,
-                       W_END_BITMAP, H_END_BITMAP);
-       pPressEndBitmap = AppUtility::GetBitmapFromResourcesN(IDB_END_PRESS_BUTTON_ICON,
-                       W_END_BITMAP, H_END_BITMAP);
-
-       bool isSplitAllowed = true;
-       if ((__pCallPresentor->IsSplitAllowed() == false) || (__pConfCallInfo->IsOnHold() == true))
-       {
-               isSplitAllowed = false;
-       }
-
-       Panel* pKeysPanel = static_cast<Panel*>(GetControl(panelName));
-       if (pKeysPanel != null)
-       {
-               Button* pButtonSplit = static_cast<Button*>(pKeysPanel->GetControl(splitButtonName));
-               if (pButtonSplit != null)
-               {
-                       pButtonSplit->SetActionId(splitCmdId);
-                       pButtonSplit->AddActionEventListener(*this);
-                       pButtonSplit->SetNormalBitmap(Point(0, 0), *pNormalSplitBitmap);
-                       pButtonSplit->SetPressedBitmap(Point(0, 0), *pPressSplitBitmap);
-               }
-               Button* pButtonEnd = static_cast<Button*>(pKeysPanel->GetControl(endButtonName));
-               if (pButtonEnd != null)
-               {
-                       pButtonEnd->SetActionId(EndCmdId);
-                       pButtonEnd->AddActionEventListener(*this);
-                       pButtonEnd->SetNormalBitmap(Point(0, 0), *pNormalEndBitmap);
-                       pButtonEnd->SetPressedBitmap(Point(0, 0), *pPressEndBitmap);
-               }
-               Label* pNameLabel = static_cast<Label*>(pKeysPanel->GetControl(callerLabelName));
-               if (pButtonSplit != null)
-               {
-                       if (isSplitAllowed == false)
-                       {
-                               pButtonSplit->SetShowState(false);
-                               pNameLabel->SetBounds(pButtonSplit->GetBounds().x, pNameLabel->GetBounds().y,
-                                               pNameLabel->GetBounds().width, pNameLabel->GetBounds().height);
-                       }
-                       else
-                       {
-                               pButtonSplit->SetShowState(true);
-                               pNameLabel->SetBounds((pButtonSplit->GetBounds().x + pButtonSplit->GetBounds().width), pNameLabel->GetBounds().y,
-                                               pNameLabel->GetBounds().width, pNameLabel->GetBounds().height);
-                       }
-               }
-               pNameLabel->SetText(displayName);
-
-               pKeysPanel->SetShowState(true);
-               Label* pLineLabel1 = static_cast<Label*>(GetControl(lineLabelName));
-               pLineLabel1->SetShowState(true);
-
-               pKeysPanel->Draw(true);
-               pKeysPanel->Show();
-       }
-
-       delete pNormalEndBitmap;
-       pNormalEndBitmap = null;
-       delete pPressEndBitmap;
-       pPressEndBitmap = null;
-       delete pNormalSplitBitmap;
-       pNormalSplitBitmap = null;
-       delete pPressSplitBitmap;
-       pPressSplitBitmap = null;
-}
-
-void
 ConfCallerListForm::ShowTimerInfo(const String& timerLblName, long long startTime)
 {
        Label* pTimerLbl = static_cast<Label*>(GetControl(timerLblName));
@@ -760,9 +604,15 @@ ConfCallerListForm::OnTimerExpired(Tizen::Base::Runtime::Timer& timer)
 void
 ConfCallerListForm::OnFormBackRequested(Form& source)
 {
+       //If the call is split then wait for it to automatically go back once it split is success
+       if(__isCallSplit == true)
+       {
+               return;
+       }
        SceneManager* pSceneManager = SceneManager::GetInstance();
        AppAssert(pSceneManager);
 
+
        ArrayListT<AppCallInfo>* pCallList  = static_cast<ArrayListT<AppCallInfo>*>(__pCallPresentor->GetCallListN());
        int noOfCalls = pCallList->GetCount();
 
@@ -819,7 +669,7 @@ ConfCallerListForm::CreateItemAndAddActionListener( Button& splitButton,
                        W_END_BITMAP, H_END_BITMAP);
 
        bool isSplitAllowed = true;
-       if ((__pCallPresentor->IsSplitAllowed() == false) || (__pConfCallInfo->IsOnHold() == true))
+       if ((__pCallPresentor->IsSplitAllowed() == false) || (__pConfCallInfo->IsOnHold() == true) || (__isCallSplit == true))
        {
                isSplitAllowed = false;
        }
@@ -832,7 +682,8 @@ ConfCallerListForm::CreateItemAndAddActionListener( Button& splitButton,
        splitButton.SetPressedBitmap(Point(0, 0), *pPressSplitBitmap);
 
 
-
+       bool isEnableEndButton = (__isCallSplit == false);
+       endButton.SetEnabled(isEnableEndButton);
        endButton.SetActionId(EndCmdId);
        endButton.AddActionEventListener(*this);
        endButton.SetNormalBitmap(Point(0, 0), *pNormalEndBitmap);
@@ -910,44 +761,47 @@ ConfCallerListForm::CreateItem(int itemIndex, int itemWidth)
        //fetch contact details based on phone number
        String* pDisplayName = callInfo.FetchCallerNameN();
 
-       if ((pDisplayName->IsEmpty()) || r != E_SUCCESS)
-       {
-               pDisplayName->Append(pContactNo);
-       }
-       switch (itemIndex)
+       if(pDisplayName != null)
        {
-               case 0:
-               {
-                       CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
-                                       IDA_SPLIT_CALLER1,IDA_END_CALLER1,*pDisplayName);
-               }
-               break;
-               case 1:
-               {
-                       CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
-                                       IDA_SPLIT_CALLER2,IDA_END_CALLER2,*pDisplayName);
-               }
-               break;
-               case 2:
-               {
-                       CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
-                                       IDA_SPLIT_CALLER3,IDA_END_CALLER3,*pDisplayName);
-               }
-               break;
-               case 3:
+               if ((pDisplayName->IsEmpty()) || r != E_SUCCESS)
                {
-                       CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
-                                       IDA_SPLIT_CALLER4,IDA_END_CALLER4,*pDisplayName);
+                       pDisplayName->Append(pContactNo);
                }
-               break;
-               case 4:
+               switch (itemIndex)
                {
-                       CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
-                                       IDA_SPLIT_CALLER5,IDA_END_CALLER5,*pDisplayName);
-               }
-               break;
-               default:
+                       case 0:
+                       {
+                               CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
+                                               IDA_SPLIT_CALLER1,IDA_END_CALLER1,*pDisplayName);
+                       }
                        break;
+                       case 1:
+                       {
+                               CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
+                                               IDA_SPLIT_CALLER2,IDA_END_CALLER2,*pDisplayName);
+                       }
+                       break;
+                       case 2:
+                       {
+                               CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
+                                               IDA_SPLIT_CALLER3,IDA_END_CALLER3,*pDisplayName);
+                       }
+                       break;
+                       case 3:
+                       {
+                               CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
+                                               IDA_SPLIT_CALLER4,IDA_END_CALLER4,*pDisplayName);
+                       }
+                       break;
+                       case 4:
+                       {
+                               CreateItemAndAddActionListener(*pSplitCallButton,*pEndCallButton,*pCallLabel,
+                                               IDA_SPLIT_CALLER5,IDA_END_CALLER5,*pDisplayName);
+                       }
+                       break;
+                       default:
+                               break;
+               }
        }
        pItem->AddControl(*pSplitCallButton);
        pItem->AddControl(*pCallLabel);
@@ -965,7 +819,9 @@ ConfCallerListForm::CreateItem(int itemIndex, int itemWidth)
 bool
 ConfCallerListForm::DeleteItem(int itemIndex, TableViewItem* pItem)
 {
-       return false;
+       delete pItem;
+       pItem = null;
+       return true;
 }
 
 void