#include "CallPresentationModel.h"
#include "CallSceneRegister.h"
#include "CallTypes.h"
+#include "CallApp.h"
using namespace Tizen::App;
using namespace Tizen::Base;
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;
static const wchar_t* IDC_CALLER_LABEL = L"IDC_CALLER_LABEL";
static const wchar_t* IDC_NUMBER_LABEL = L"IDC_NUMBER_LABEL";
static const wchar_t* IDC_BIG_PHOTO_LABEL = L"IDC_BIG_PHOTO_LABEL";
+static const wchar_t* IDC_CALLHANDEL_PANEL = L"IDC_CALLHANDEL_PANEL";
+static const wchar_t* IDC_ACCEPT_LABEL = L"IDC_ACCEPT_LABEL";
+static const wchar_t* IDC_REJECT_LEBEL = L"IDC_REJECT_LEBEL";
+static const wchar_t* IDC_ACCEPT_ARROW = L"IDC_ACCEPT_ARROW_";
+static const wchar_t* IDC_REJECT_ARROW = L"IDC_REJECT_ARROW_";
const wchar_t* IDS_REJECT_MESSAGE_BTN = L"IDS_REJECT_MESSAGE_BTN";
const wchar_t* IDS_LIST_SEND_BUTTON = L"IDS_LIST_SEND_BUTTON";
const wchar_t* IDS_NO_MESSAGE_STR = L"IDS_NO_MESSAGE_STR";
VisualElement* pFormVisElem = new (std::nothrow) VisualElement();
r = pFormVisElem->Construct();
- pFormVisElem->SetBounds(FloatRectangle(GetClientAreaBounds().x, GetClientAreaBounds().y, GetClientAreaBounds().width, GetClientAreaBounds().height));
+ pFormVisElem->SetBounds(FloatRectangle(GetBounds().x, GetBounds().y, GetBounds().width, GetBounds().height));
pFormVisElem->SetShowState(true);
pFormVisElem->SetOpacity(1.0f);
pFormVisElem->SetName(IDI_FORM_VISUAL_ELE_NAME);
pCanvas->Clear();
pCanvas->SetBackgroundColor(COLOR_SWIPE_PANEL);
pCanvas->SetForegroundColor(COLOR_SWIPE_PANEL);
- pCanvas->FillRectangle(COLOR_SWIPE_PANEL, Rectangle(GetClientAreaBounds().x, GetClientAreaBounds().y, GetClientAreaBounds().width, GetClientAreaBounds().height));
+ pCanvas->FillRectangle(COLOR_SWIPE_PANEL, Rectangle(GetBounds().x, GetBounds().y, GetBounds().width, GetBounds().height));
delete pCanvas;
pCanvas = null;
}
Label* pPhotoLbl = static_cast<Label*>(GetControl(IDC_BIG_PHOTO_LABEL, true));
int yPos = pPhotoLbl->GetX()+pPhotoLbl->GetHeight()+ Y_CALL_PANEL;
- __pCallHandlePanel = new (std::nothrow) Panel();
- r = __pCallHandlePanel->Construct(Rectangle(X_CALL_PANEL, yPos, GetClientAreaBounds().width - X_CALL_PANEL, H_CALL_PANEL), GROUP_STYLE_NONE);
+ __pCallHandlePanel = static_cast<Panel*>(GetControl(IDC_CALLHANDEL_PANEL, true));
__pCallHandlePanel->AddTouchEventListener(*this);
- AddControl(*__pCallHandlePanel);
__pCallHandlePanel->SetBackgroundColor(COLOR_SWIPE_PANEL);
VisualElement* pCallPanelVisElem = new (std::nothrow) VisualElement();
r = pCallPanelVisElem->Construct();
- pCallPanelVisElem->SetBounds(FloatRectangle(X_CALL_PANEL, yPos, GetClientAreaBounds().width, H_CALL_PANEL));
+ pCallPanelVisElem->SetBounds(FloatRectangle(__pCallHandlePanel->GetBoundsF()));
pCallPanelVisElem->SetShowState(true);
pCallPanelVisElem->SetOpacity(1.0f);
pCallPanelVisElem->SetName(IDI_PANEL_VISUAL_ELE_NAME);
pCanvas = null;
}
//Lock Label for animation
- __pAcceptLabel = new (std::nothrow) Label();
- r = __pAcceptLabel->Construct(Rectangle(0, 0, W_DIAL_LABEL, H_DIAL_LABEL), L"");
+ __pAcceptLabel = static_cast<Label*>(GetControl(IDC_ACCEPT_LABEL, true));
__pAcceptLabel->SetBackgroundColor(COLOR_SWIPE_PANEL);
__pAcceptLabel->AddTouchEventListener(*this);
- __pCallHandlePanel->AddControl(*__pAcceptLabel);
//left dial icon
__pAcceptVisElem = new (std::nothrow) VisualElement();
r = __pAcceptVisElem->Construct();
- __pAcceptVisElem->SetBounds(FloatRectangle(0, 0, W_DIAL_LABEL, H_DIAL_LABEL));
+ __pAcceptVisElem->SetBounds(FloatRectangle(0, 0, __pAcceptLabel->GetWidth(), __pAcceptLabel->GetHeight()));
__pAcceptVisElem->SetShowState(true);
__pAcceptVisElem->SetOpacity(1.0f);
__pAcceptVisElem->SetName(IDI_ACCEPT_VISUAL_ELE_NAME);
pCanvas = null;
}
//UnLock Label for animation
- __pRejectLabel = new (std::nothrow) Label();
- r = __pRejectLabel->Construct(Rectangle(REJECT_LABEL_X_OFFSET, 0, W_DIAL_LABEL, H_DIAL_LABEL), L"");
+ __pRejectLabel = static_cast<Label*>(GetControl(IDC_REJECT_LEBEL, true));
__pRejectLabel->AddTouchEventListener(*this);
- __pCallHandlePanel->AddControl(*__pRejectLabel);
__pRejectLabel->SetBackgroundColor(COLOR_SWIPE_PANEL);
SetControlAlwaysAtBottom(*__pCallHandlePanel, true);
int x = X_ARROW_LABEL_STARTPOS;
for (int index = 0; index < COUNT_ARROW_ELEMENTS; index++)
{
- __pAcceptArrowLabel = new (std::nothrow) Label();
- r = __pAcceptArrowLabel->Construct(Rectangle(x, Y_ARROW_LABEL, W_ARROW_LABEL, H_ARROW_LABEL), L"");
+ String LabelName(IDC_ACCEPT_ARROW);
+ LabelName.Append(index+1);
+ __pAcceptArrowLabel = static_cast<Label*>(GetControl(LabelName, true));
__pAcceptArrowLabel->AddTouchEventListener(*this);
- __pCallHandlePanel->AddControl(*__pAcceptArrowLabel);
__pAcceptArrowLabelsList->Add(*__pAcceptArrowLabel);
__pAcceptArrowVisElem = new (std::nothrow) VisualElement();
r = __pAcceptArrowVisElem->Construct();
x = X_ARROW_REJECT_LABEL_STARTPOS;
for (int index = 0; index < COUNT_ARROW_ELEMENTS; index++)
{
- __pRejectArrowLabel = new (std::nothrow) Label();
- r = __pRejectArrowLabel->Construct(Rectangle(x, Y_ARROW_LABEL, W_ARROW_LABEL, H_ARROW_LABEL), L"");
+ String LabelName(IDC_REJECT_ARROW);
+ LabelName.Append(index+1);
+ __pRejectArrowLabel = static_cast<Label*>(GetControl(LabelName, true));
__pRejectArrowLabel->AddTouchEventListener(*this);
- __pCallHandlePanel->AddControl(*__pRejectArrowLabel);
__pRejectArrowLabelsList->Add(*__pRejectArrowLabel);
__pRejectArrowVisElem = new (std::nothrow) VisualElement();
r = __pRejectArrowVisElem->Construct();
Footer* pFooter = GetFooter();
if(pFooter != null)
{
+ AppLogDebug("SetShowState");
pFooter->SetShowState(true);
}
}
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:
{
__pCallPresentor->RejectCall(__incomingCallHandle, true,*__pActiveContactNo);
- ArrayListT<CallInfo>* pCallList = static_cast<ArrayListT<CallInfo>*>(__pCallPresentor->GetCallListN());
+ ArrayListT<AppCallInfo>* pCallList = static_cast<ArrayListT<AppCallInfo>*>(__pCallPresentor->GetCallListN());
if(pCallList != null && pCallList->GetCount() > 0)
{
__pCallPresentor->HandleCallConnected(*pCallList);
case IDA_CANCEL_REJECT_CALL_MESSAGE_PANEL:
{
- HideRejectPanel();
- SetFocus();
- Button* pButtonRejectMessage = static_cast<Button*>(GetControl(IDC_REJECT_MESSAGE_BUTTON));
- if (pButtonRejectMessage)
- {
- pButtonRejectMessage->SetShowState(true);
- pButtonRejectMessage->Invalidate(true);
- pButtonRejectMessage->Draw();
- }
- RequestRedraw(true);
+ HideRejectMessagePanel();
+
}
break;
void
IncomingCallForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
{
+ AddOrientationEventListener(*this);
+ //listen to Foreground events
+ CallApp* pPhoneApp = static_cast<CallApp*>(CallApp::GetInstance());
+ pPhoneApp->AddAppStateChangeListener(*this);
if(__pCallPresentor == null)
{
__pCallPresentor = CallPresentationModel::GetInstance();
if (pArgs != null)
{
//get Call Info
- CallInfo* pIncomingCall = static_cast<CallInfo*>(pArgs->GetAt(0));
+ AppCallInfo* pIncomingCall = static_cast<AppCallInfo*>(pArgs->GetAt(0));
if (pIncomingCall != null)
{
//start alert with contact's custom ringtone
delete pArgs;
pArgs = null;
}
+ CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
+ pCallApp->SetTopMostWindow(true);
+
+
}
void
IncomingCallForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
{
+ RemoveOrientationEventListener(*this);
if (__pSmallPhotoLabel != null)
{
RemoveControl(*__pSmallPhotoLabel);
}
}
+ CallApp* pCallApp = static_cast<CallApp*>(CallApp::GetInstance());
+ pCallApp->SetTopMostWindow(false);
+ pCallApp->RemoveAppStateChangeListener(*this);
}
result
{
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)
pItem->AddControl(*pSendButton);
pItem->SetIndividualSelectionEnabled(pSendButton, true);
}
+ else
+ {
+ pItem->SetEnabled(false);
+ }
return pItem;
}
}
void
-IncomingCallForm::ShowPersonDetails(const String& phoneNumber, const String& contactLblName, const String& nameLblName, CallInfo* pCallInfo)
+IncomingCallForm::ShowPersonDetails(const String& phoneNumber, const String& contactLblName, const String& nameLblName, AppCallInfo* pCallInfo)
{
//call individual methods to show contact number, caller name & photo
SetTextToLabel(phoneNumber, contactLblName);
//set button name
String holdBtnName = AppUtility::GetResourceString(btnName);
- Dimension textDimension;
+ FloatDimension textDimension;
if (!holdBtnName.IsEmpty())
{
Font font;
void
IncomingCallForm::OnTouchReleased(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
{
+ AppLogDebug("%d",currentPosition.x);
if (__isAnswerCallStarted == true)
{
- if (currentPosition.x > REJECT_LABEL_X_OFFSET)
+ if (currentPosition.x > __pRejectLabel->GetBounds().x)
{
//Right reject icon
if(__pRejectFinalVisElem == null)
__pAcceptVisElem->SetOpacity(0.0f);
//fetch already active call list
- ArrayListT<CallInfo>* pCallList = static_cast<ArrayListT<CallInfo>*>(__pCallPresentor->GetCallListN());
+ ArrayListT<AppCallInfo>* pCallList = static_cast<ArrayListT<AppCallInfo>*>(__pCallPresentor->GetCallListN());
if (pCallList != null && pCallList->GetCount() > 0)
{
//then atleast 1 active call exist.
- CallInfo phnCallInfo;
+ AppCallInfo phnCallInfo;
pCallList->GetAt(0,phnCallInfo);
//Check if only 1 call exist and it is on Hold
if(pCallList->GetCount() == 1 && phnCallInfo.IsOnHold())
}
else if (__isRejectCallStarted == true)
{
- if (currentPosition.x < ACCEPT_LABEL_RELATIVE_POS)
+ if (currentPosition.x < ((__pAcceptLabel->GetBounds().x + __pAcceptLabel->GetWidth())- __pRejectLabel->GetBounds().x))
{
//left dial icon
if(__pAcceptFinalVisElem == null)
__pAcceptVisElem->SetOpacity(1.0f);
__pRejectVisElem->SetOpacity(1.00f);
- for (int i = 0; i < COUNT_ARROW_ELEMENTS; i++)
+ /*for (int i = 0; i < COUNT_ARROW_ELEMENTS; i++)
{
__pRejectArrowLabel = static_cast<Label*>(__pRejectArrowLabelsList->GetAt(i));
String RejectVisualEleName(IDI_REJECT_ARROW_VISUAL_ELE_NAME);
AcceptVisualEleName.Append(i);
__pAcceptArrowVisElem = __pAcceptArrowLabel->GetVisualElement()->GetChild(AcceptVisualEleName,true);
__pAcceptArrowVisElem->SetOpacity(0.0f);
- }
+ }*/
if (__pRejectFinalVisElem != null)
{
__pRejectFinalVisElem->Destroy();
__pOptionPopup = null;
}
//accept call
+ if(itemIndex != IDA_BUTTON_CANCEL_OPTIONS_POPUP)
+ {
__pCallPresentor->AcceptIncomingCall(CallAnsweringOptions(itemIndex),__incomingCallHandle);
+ }
}
void
RequestRedraw(true);
}
+
+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 != 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
+IncomingCallForm::OnForeground(void)
+{
+ __pCallPresentor->OnAppForeground();
+}