//
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Flora License, Version 1.1 (the License);
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
{
__pConfCallInfo = null;
__pConfCallTimer = null;
+ __isCallSplit = false;
}
ConfCallerListForm::~ConfCallerListForm(void)
SetFormBackEventListener(this);
pFooter->SetBackButton();
}
+ Label* pTimerLbl = static_cast<Label*>(GetControl(IDC_CALL_TIME_LABEL));
+ SetControlAlwaysOnTop(*pTimerLbl,true);
CreateTableView();
__pCallPresentor = CallPresentationModel::GetInstance();
{
__pList = static_cast <TableView*> (GetControl(IDC_CONF_CALL_LIST_TABLEVIEW));
__pList->SetItemProvider(this);
- AddControl(*__pList);
+ AddControl(__pList);
}
void
//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);
}
}
{
break;
}
- __pCallPresentor->SplitFromConference(SplitConfCallerCmdIds(actionId),__pConfCallInfo->GetCallerList());
+ __isCallSplit = __pCallPresentor->SplitFromConference(SplitConfCallerCmdIds(actionId),__pConfCallInfo->GetCallerList());
+ if(__isCallSplit == true)
+ {
+ __pList->UpdateTableView();
+ }
}
break;
{
//set itself as listener
__pCallPresentor->SetTelEventListener(this);
+ __isCallSplit = false;
- AddOrientationEventListener(*this);
+ AppLogDebug("Enter");
//DisableAllControls();
if (__pConfCallInfo != null)
//show 1st caller's info.
//Fetch Conference call info from telephony manager
__pConfCallInfo = __pCallPresentor->GetConferenceCallInfoN();
+ AppLogDebug("Enter %x",__pConfCallInfo);
//show active call timer
ShowTimerInfo(IDC_CALL_TIME_LABEL, __pConfCallInfo->GetCallConnectTime());
}
__pList->UpdateTableView();
- //ActivatePanels();
+ AddOrientationEventListener(*this);
}
void
ConfCallerListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
{
RemoveOrientationEventListener(*this);
- if (__pConfCallInfo != null)
- {
- delete __pConfCallInfo;
- __pConfCallInfo = null;
- }
if (__pConfCallTimer != null)
{
__pConfCallTimer->Cancel();
void
ConfCallerListForm::HandleParticipantsChanged(void)
{
+ AppLogDebug("Enter");
AppCallInfo* pCallInfo = __pCallPresentor->GetConferenceCallInfoN();
if (pCallInfo == null)
{
}
__pConfCallInfo = new (std::nothrow) AppCallInfo();
*__pConfCallInfo = *pCallInfo;
- //Disable all key panels and redraw with new caller list
- //DisableAllControls();
- //ActivatePanels();
__pList->UpdateTableView();
}
}
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));
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();
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;
}
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);
TableViewItem*
ConfCallerListForm::CreateItem(int itemIndex, int itemWidth)
{
+ AppLogDebug("%d %x",itemWidth,__pConfCallInfo);
IListT<AppCallInfo>* pCallList = __pConfCallInfo->GetCallerList();
TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
//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);
+ pItem->AddControl(pEndCallButton);
+ if(pDisplayName != null)
+ {
+ delete pDisplayName;
+ pDisplayName = null;
}
- pItem->AddControl(*pSplitCallButton);
- pItem->AddControl(*pCallLabel);
- pItem->AddControl(*pEndCallButton);
return pItem;
bool
ConfCallerListForm::DeleteItem(int itemIndex, TableViewItem* pItem)
{
- return false;
+ delete pItem;
+ pItem = null;
+ return true;
}
void