const int X_SEND_TEXT_ITEM = 484;
const int Y_SEND_TEXT_ITEM = 20;
const int W_SEND_TEXT_ITEM = 220;
+const int W_SEND_BUTTON_MARGIN = 14;
const int H_SEND_TEXT_ITEM = 72;
const int X_PHOTO_LBL = 166;
const int Y_PHOTO_LBL = 232;
}
HideRejectPanel();
- Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
- if (pButtonRejectMessage)
- {
- SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
- IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, false);
- SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
- IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, true);
- pButtonRejectMessage->SetActionId(IDA_SHOW_REJECT_CALL_MESSAGE_PANEL);
- pButtonRejectMessage->AddActionEventListener(*this);
- }
- //Get Reject list from Settings Manager
- IMapT<int,String>* pMsgMap = SettingsManager::GetInstance()->GetRejectMessageListN();
- if(pMsgMap != null)
- {
- __pRejectMessageList = pMsgMap->GetValuesN();
- delete pMsgMap;
- pMsgMap = null;
- }
InitializeTableView();
__pAcceptCircle = AppUtility::GetBitmapFromResourcesN(IDB_ACCEPT_CIRCLE_ICON, W_DIAL_LABEL, H_DIAL_LABEL);
}
void
-IncomingCallForm::OnActionPerformed(const Control& source, int actionId)
-{
- switch (actionId)
- {
- case IDA_SHOW_REJECT_CALL_MESSAGE_PANEL: // applicable in all form states
+IncomingCallForm::ShowRejectMessagePanel(void)
{
Panel* pKeysPanel = static_cast<Panel*>(GetControl(IDC_REJECT_PANEL));
if (pKeysPanel)
}
pMessageList->SetBounds(tmpRect.x, tmpRect.y, tmpRect.width, listHeight);
+ pMessageList->UpdateTableView();
tmpRect = pKeysPanel->GetBounds();
pKeysPanel->SetBounds(tmpRect.x, tmpRect.y, tmpRect.width, H_MESSAGE_BG_BITMAP /*+ H_REJECT_VIEW_FOOTER*/ + listHeight);
ShowRejectMessageFooter();
- /* pButtonReject = static_cast<Button*>(pKeysPanel->GetControl(IDC_BACK_BUTTON));
- pButtonReject->SetActionId(IDA_CANCEL_REJECT_CALL_MESSAGE_PANEL);
- pButtonReject->AddActionEventListener(*this);
- pButtonReject->SetEnabled(true);
- pButtonReject->SetFocus();
-
- Button* pButtonCreate = static_cast<Button*>(pKeysPanel->GetControl(IDC_CREATE_BUTTON));
- pButtonCreate->SetActionId(IDA_CREATE_REJECT_CALL_MESSAGE);
- pButtonCreate->AddActionEventListener(*this);
- pButtonCreate->SetEnabled(true);
- pButtonCreate->SetFocus();*/
pKeysPanel->SetFocus();
pKeysPanel->Draw();
pButtonRejectMessage->Draw();
}
}
+void
+IncomingCallForm::HideRejectMessagePanel(void)
+{
+ HideRejectPanel();
+ Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
+ if (pButtonRejectMessage)
+ {
+ pButtonRejectMessage->SetShowState(true);
+ RelativeLayout* pRelativeLayout = dynamic_cast<RelativeLayout*>(GetLandscapeLayoutN());
+ if (pRelativeLayout != null)
+ {
+ pRelativeLayout->SetRelation(*pButtonRejectMessage,*this,RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM);
+ pRelativeLayout->Update();
+ delete pRelativeLayout;
+ }
+ }
+}
+
+void
+IncomingCallForm::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_SHOW_REJECT_CALL_MESSAGE_PANEL: // applicable in all form states
+ {
+ ShowRejectMessagePanel();
+ }
break;
case IDA_CREATE_REJECT_CALL_MESSAGE:
case IDA_CANCEL_REJECT_CALL_MESSAGE_PANEL:
{
- HideRejectPanel();
- SetFocus();
- Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
- if (pButtonRejectMessage)
- {
- pButtonRejectMessage->SetShowState(true);
- RelativeLayout* pRelativeLayout = dynamic_cast<RelativeLayout*>(GetLandscapeLayoutN());
- if (pRelativeLayout != null)
- {
- pRelativeLayout->SetRelation(*pButtonRejectMessage,*this,RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM);
- pRelativeLayout->Update();
- delete pRelativeLayout;
- }
- }
-
+ HideRejectMessagePanel();
}
break;
IncomingCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
{
AddOrientationEventListener(*this);
+ //Get Reject list from Settings Manager
+ IMapT<int,String>* pMsgMap = SettingsManager::GetInstance()->GetRejectMessageListN();
+ if(pMsgMap != null)
+ {
+ if (__pRejectMessageList != null)
+ {
+ delete __pRejectMessageList;
+ __pRejectMessageList = null;
+ }
+ __pRejectMessageList = pMsgMap->GetValuesN();
+ delete pMsgMap;
+ pMsgMap = null;
+ }
+ //No reject messages
+ else
+ {
+ if (__pRejectMessageList != null)
+ {
+ delete __pRejectMessageList;
+ __pRejectMessageList = null;
+ }
+ }
//listen to Foreground events
CallApp* pPhoneApp = static_cast<CallApp*>(CallApp::GetInstance());
pPhoneApp->AddAppStateChangeListener(*this);
}
CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
pCallApp->SetTopMostWindow(true);
-
+ Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
+ if (pButtonRejectMessage)
+ {
+ SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
+ IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, false);
+ SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
+ IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, true);
+ pButtonRejectMessage->SetActionId(IDA_SHOW_REJECT_CALL_MESSAGE_PANEL);
+ pButtonRejectMessage->AddActionEventListener(*this);
+ }
}
}
CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
- pCallApp->SetTopMostWindow(false);
pCallApp->RemoveAppStateChangeListener(*this);
}
{
String sendText = AppUtility::GetResourceString(IDS_LIST_SEND_BUTTON);
Button* pSendButton = new (std::nothrow) Button();
- pSendButton->Construct(Rectangle(X_SEND_TEXT_ITEM, Y_SEND_TEXT_ITEM, W_SEND_TEXT_ITEM, H_SEND_TEXT_ITEM), sendText);
+ pSendButton->Construct(Rectangle(GetClientAreaBounds().width - W_SEND_BUTTON_MARGIN -W_SEND_TEXT_ITEM, Y_SEND_TEXT_ITEM, W_SEND_TEXT_ITEM, H_SEND_TEXT_ITEM), sendText);
//set action id and listener
int actionId = IDA_SEND_REJECT_MSG1;
switch(itemIndex)
//set button name
String holdBtnName = AppUtility::GetResourceString(btnName);
- Dimension textDimension;
+ FloatDimension textDimension;
if (!holdBtnName.IsEmpty())
{
Font font;
void
IncomingCallForm::OnTouchPressed(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
{
- __pCallPresentor->StopAlert();
+ //__pCallPresentor->StopAlert();
if (currentPosition.x < VALID_TOUCH_X_OFFSET && currentPosition.y < VALID_TOUCH_Y_OFFSET)
{
Rectangle rect = source.GetBounds();
if(__pRejectFinalVisElem == null)
{
__pRejectFinalVisElem = new (std::nothrow) VisualElement();
+ __pRejectFinalVisElem->Construct();
+ __pRejectFinalVisElem->SetName(IDI_REJECT_FINAL_VISUAL_ELE_NAME);
}
- __pRejectFinalVisElem->Construct();
__pRejectFinalVisElem->SetBounds(FloatRectangle(0, 0, W_DIAL_LABEL, H_DIAL_LABEL));
__pRejectFinalVisElem->SetShowState(true);
__pRejectFinalVisElem->SetOpacity(1.00f);
- __pRejectFinalVisElem->SetName(IDI_REJECT_FINAL_VISUAL_ELE_NAME);
if(__pRejectLabel->GetVisualElement()->GetChild(IDI_REJECT_FINAL_VISUAL_ELE_NAME,true) == null)
{
AppLogDebug("AttachChild __pRejectFinalVisElem");
if(__pAcceptFinalVisElem == null)
{
__pAcceptFinalVisElem = new (std::nothrow) VisualElement();
+ __pAcceptFinalVisElem->Construct();
+ __pAcceptFinalVisElem->SetName(IDI_ACCEPT_FINAL_VISUAL_ELE_NAME);
}
- __pAcceptFinalVisElem->Construct();
__pAcceptFinalVisElem->SetBounds(FloatRectangle(0, 0, W_DIAL_LABEL, H_DIAL_LABEL));
- __pAcceptFinalVisElem->SetShowState(true);
__pAcceptFinalVisElem->SetOpacity(1.0f);
- __pAcceptFinalVisElem->SetName(IDI_ACCEPT_FINAL_VISUAL_ELE_NAME);
+
+
if(__pAcceptLabel->GetVisualElement()->GetChild(IDI_ACCEPT_FINAL_VISUAL_ELE_NAME,true) == null)
{
AppLogDebug("AttachChild __pAcceptFinalVisElem");
void
IncomingCallForm::OnItemSelected(int itemIndex)
{
-
ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
pArgs->Construct();
Integer* argIndex = new (std::nothrow) Integer(itemIndex);
pArgs->Add(argIndex);
SendUserEvent(REQUEST_ITEM_SELECTED,pArgs);
-
}
void
__pAcceptVisElem->SetOpacity(1.0f);
__pRejectVisElem->SetOpacity(1.00f);
- for (int i = 0; i < COUNT_ARROW_ELEMENTS; i++)
- {
- __pRejectArrowLabel = static_cast<Label*>(__pRejectArrowLabelsList->GetAt(i));
- String RejectVisualEleName(IDI_REJECT_ARROW_VISUAL_ELE_NAME);
- RejectVisualEleName.Append(i);
- __pRejectArrowVisElem = __pRejectArrowLabel->GetVisualElement()->GetChild(RejectVisualEleName,true);
- __pRejectArrowVisElem->SetOpacity(0.0f);
- __pAcceptArrowLabel = static_cast<Label*>(__pAcceptArrowLabelsList->GetAt(i));
- String AcceptVisualEleName(IDI_ACCEPT_ARROW_VISUAL_ELE_NAME);
- AcceptVisualEleName.Append(i);
- __pAcceptArrowVisElem = __pAcceptArrowLabel->GetVisualElement()->GetChild(AcceptVisualEleName,true);
- __pAcceptArrowVisElem->SetOpacity(0.0f);
- }
if (__pRejectFinalVisElem != null)
{
__pRejectFinalVisElem->Destroy();
__pRejectFinalVisElem = null;
}
-
if (__pAcceptFinalVisElem != null)
{
__pAcceptFinalVisElem->Destroy();
__pAcceptFinalVisElem = null;
}
+
if (__pOptionPopup)
{
delete __pOptionPopup;
__pOptionPopup = null;
}
//accept call
- __pCallPresentor->AcceptIncomingCall(CallAnsweringOptions(itemIndex),__incomingCallHandle);
+ if(itemIndex != IDA_BUTTON_CANCEL_OPTIONS_POPUP)
+ {
+ __pCallPresentor->AcceptIncomingCall(CallAnsweringOptions(itemIndex),__incomingCallHandle);
+ }
}
void
void
IncomingCallForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
{
+ Panel* pKeysPanel = static_cast<Panel*>(GetControl(IDC_REJECT_PANEL));
+ if(pKeysPanel->GetShowState() == true)
+ {
+ HideRejectMessagePanel();
+ ShowRejectMessagePanel();
+ }
+
Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
- if (pButtonRejectMessage)
+ if (pButtonRejectMessage != null)
{
SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, false);
SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
IDB_REJECT_MESSAGE_UP_ARROW, IDB_REJECT_MESSAGE_ICON, false, true);
+ pButtonRejectMessage->Invalidate(true);
}
+ Button* pButtonReject = static_cast<Button*>(pKeysPanel->GetControl(IDC_REJECT_MESSAGE_CANCEL_BUTTON));
+ if (pButtonReject != null)
+ {
+ SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
+ IDB_REJECT_MESSAGE_DOWN_ARROW, IDB_REJECT_MESSAGE_ICON, true, false);
+ SetBitmapToRejectMessageButton(IDS_REJECT_MESSAGE_BTN,IDB_REJECT_MESSAGE_BG,
+ IDB_REJECT_MESSAGE_DOWN_ARROW, IDB_REJECT_MESSAGE_ICON, true, true);
+ pButtonReject->Invalidate(true);
+ }
}
void
{
__pCallPresentor->OnAppForeground();
}
+
+void
+IncomingCallForm::OnScreenOff(void)
+{
+ __pCallPresentor->StopAlert();
+}
+
+void
+IncomingCallForm::CallDisconnected(void)
+{
+ //check if no call option popup is shown, then remain on incoming call screen.
+ //As user has neither accepted nor rejected incoming call.
+ if (__pOptionPopup == null)
+ {
+ return;
+ }
+
+ //fetch already active call list and show updated option popup
+ ArrayListT<AppCallInfo>* pCallList = static_cast<ArrayListT<AppCallInfo>*>(__pCallPresentor->GetCallListN());
+ if (pCallList != null && pCallList->GetCount() > 0)
+ {
+ //then atleast 1 active call exist.
+ AppCallInfo phnCallInfo;
+ pCallList->GetAt(0,phnCallInfo);
+ //Check if only 1 call exist and it is on Hold
+ if(pCallList->GetCount() == 1 && phnCallInfo.IsOnHold())
+ {
+ //directly accept call
+ __pCallPresentor->AcceptIncomingCall(ANSERWING_OPTION_ACCEPT_CALL,__incomingCallHandle);
+ }
+ else
+ {
+ //Either 1 call exist and not "on Hold".
+ //Or 2 calls exist.
+ if(__pOptionPopup != null)
+ {
+ delete __pOptionPopup;
+ __pOptionPopup = null;
+ }
+ __pOptionPopup = new (std::nothrow) CallOptionPopup(*this,*(__pCallPresentor));
+ __pOptionPopup->Initialize();
+ __pOptionPopup->SetShowState(true);
+ __pOptionPopup->Draw();
+ __pOptionPopup->Show();
+ }
+ pCallList->RemoveAll();
+ }
+ else
+ {
+ //no active call - Accept the incoming call
+ __pCallPresentor->AcceptIncomingCall(ANSERWING_OPTION_ACCEPT_CALL,__incomingCallHandle);
+ }
+ delete pCallList;
+ pCallList = null;
+}