2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file PhnDialerKeypad.cpp
19 * @brief Dial Contact Info class
21 #include "PhnDialerKeypad.h"
22 #include "PhnAppUtility.h"
23 #include "PhnCommonUtils.h"
24 #include "PhnPhoneApp.h"
25 #include "PhnTabDialer.h"
28 using namespace Tizen::App;
29 using namespace Tizen::Base;
30 using namespace Tizen::Ui;
31 using namespace Tizen::Graphics;
32 using namespace Tizen::Ui::Controls;
33 using namespace Tizen::Base::Collection;
36 const wchar_t* IDI_CANCEL_KEY_TXT = L"Cancel";
37 const wchar_t* IDC_VIDEOCALL_KEY_NAME = L"IDC_BUTTON13";
38 const wchar_t* IDC_CALL_KEY_NAME = L"IDC_BUTTON14";
39 const wchar_t* IDC_BUTTON_NAME = L"IDC_BUTTON";
40 static const wchar_t* IDC_PANEL_DISPLAY_DATA = L"IDC_PANEL_DISPLAY_DATA";
41 const int W_VOICEMAIL_ICON = 75;
42 const int H_VOICEMAIL_ICON = 75;
43 const int W_STAR_ICON = 75;
44 const int H_STAR_ICON = 75;
45 const int W_MUTE_ICON = 64;
46 const int H_MUTE_ICON = 64;
47 const int W_VIDEOCALL_ICON = 76;
48 const int H_VIDEOCALL_ICON = 76;
49 const int W_CALL_ICON = 76;
50 const int H_CALL_ICON = 76;
51 const int W_CLEAR_ICON = 76;
52 const int H_CLEAR_ICON = 44;
53 const int X_CALL_KEY = 12;
54 const int MAX_SLIDEDOWN_PIXELS = 110;
56 DialerKeypad::DialerKeypad(DialerState openedState) : Panel()
58 __openedState = openedState;
59 __pParentActionListener = null;
60 __pParentLongTapListener = null;
61 __pLongPressDetectors = null;
64 DialerKeypad::~DialerKeypad(void)
66 if(__pLongPressDetectors != null)
68 __pLongPressDetectors->RemoveAll();
69 delete __pLongPressDetectors;
71 //remove all child controls
76 DialerKeypad::ConstructPanel(IActionEventListener* pActionListener, ITouchLongPressGestureEventListener* pLongTapListener)
79 TryCatch(pActionListener != null,,"pActionListener is null");
80 TryCatch(pLongTapListener != null,,"pLongTapListener is null");
82 //set parent panel which acts as action listener
83 __pParentActionListener = pActionListener;
84 __pParentLongTapListener = pLongTapListener;
86 r = Construct(IDL_DIALER_KEYPAD_PANEL);
87 TryCatch(r == E_SUCCESS, , "Panel::Construct() failed");
89 if(__openedState == DIALER_STATE_EMERGENCY_APPCONTROL)
91 //no video call or cancel button is shown for Emergency Screen
92 Button* pVideoCallButton = static_cast<Button*>(GetControl(IDC_VIDEOCALL_KEY_NAME, true));
93 if (pVideoCallButton != null)
95 RemoveControl(*pVideoCallButton);
96 pVideoCallButton = null;
99 //Add action listener and long press gesture listeners.
100 AddListenersToButtons();
108 DialerKeypad::OnInitializing(void)
110 result r = E_SUCCESS;
111 if(__openedState == DIALER_STATE_EMERGENCY_APPCONTROL)
113 //reset size and position for emergency dial form
114 Rectangle rect = GetBounds();
115 rect.y = rect.y + MAX_SLIDEDOWN_PIXELS;
117 //reset position and size for call button
118 Button* pCallButton = static_cast<Button*>(GetControl(IDC_CALL_KEY_NAME, true));
119 Rectangle callRect = pCallButton->GetBounds();
120 callRect.x = X_CALL_KEY;
121 callRect.width += pCallButton->GetBounds().width + X_CALL_KEY;
122 r = pCallButton->SetBounds(callRect);
125 RelativeLayout* pRelativeLayout = dynamic_cast<RelativeLayout*>(GetParent()->GetLandscapeLayoutN());
126 Panel* pDisplayPanel = static_cast<Panel*>(GetParent()->GetControl(IDC_PANEL_DISPLAY_DATA, true));
127 if (pRelativeLayout != null)
129 pRelativeLayout->SetHorizontalFitPolicy(*this, FIT_POLICY_PARENT);
130 pRelativeLayout->SetRelation(*this, *pDisplayPanel, RECT_EDGE_RELATION_TOP_TO_BOTTOM);
131 pRelativeLayout->SetRelation(*this, *GetParent(), RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM);
132 delete pRelativeLayout;
135 pRelativeLayout = dynamic_cast<RelativeLayout*>(GetParent()->GetPortraitLayoutN());
136 if (pRelativeLayout != null)
138 pRelativeLayout->SetHorizontalFitPolicy(*this, FIT_POLICY_PARENT);
139 pRelativeLayout->SetRelation(*this, *pDisplayPanel, RECT_EDGE_RELATION_TOP_TO_BOTTOM);
140 pRelativeLayout->SetRelation(*this, *GetParent(), RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM);
141 delete pRelativeLayout;
145 SetBitmapToKeypadButtons();
152 DialerKeypad::AddListenersToButtons(void)
154 //Construct array to store LongPress touch detectors
155 __pLongPressDetectors = new (std::nothrow) ArrayList(SingleObjectDeleter);
156 __pLongPressDetectors->Construct(14);
157 for (int i = 1; i <= 15; i++)
159 //initialize buttons and add action listener
160 String buttonName(IDC_BUTTON_NAME);
161 buttonName.Append(i);
162 Button* pButton = static_cast<Button*>(GetControl(buttonName, true));
167 //check if cancel button is shown instead of video call button
168 if((i == VIDEOCALL_KEY) && (IsShowCancelButton() == true))
170 pButton->SetActionId(CANCEL_KEY);
174 pButton->SetActionId(i);
176 SetControlAlwaysOnTop(*pButton,true);
179 if(__pParentActionListener != null)
181 pButton->AddActionEventListener(*__pParentActionListener);
184 if(__pParentLongTapListener != null)
186 //If __openedState is Emergency Call AppControl then add LongPress detector for only 'CLEAR_KEY'.
187 if ( (i == NUM_KEY1 && (IsShowVoiceMailIcon() == true))
188 || ((i >= NUM_KEY2 && i <= HASH_KEY) && (__openedState != DIALER_STATE_EMERGENCY_APPCONTROL))
189 || (i == CLEAR_KEY) )
191 //Construct and Add gesture detector to "0-9,P,#,Clear" buttons
192 TouchLongPressGestureDetector* pLongPressDetector = new (std::nothrow) TouchLongPressGestureDetector();
193 pLongPressDetector->Construct();
194 pLongPressDetector->SetCancelTouchEventOnSuccessEnabled(true);
195 pLongPressDetector->AddLongPressGestureEventListener(*__pParentLongTapListener);
196 pButton->AddGestureDetector(*pLongPressDetector);
197 //stored in an array list
198 __pLongPressDetectors->Add(pLongPressDetector);
205 DialerKeypad::SetBitmapToKeypadButtons(void)
207 AppLogDebug("ENTER");
208 //Create the buttons of the keypad
209 for (int i = 1; i <= 15; i++)
211 //initialize buttons and add action listener
212 String buttonName(IDC_BUTTON_NAME);
213 buttonName.Append(i);
214 Button* pButton = static_cast<Button*>(GetControl(buttonName, true));
220 //Draw text/image and background in a canvas and add it to the button
221 Rectangle canvasRect(0, 0, pButton->GetBounds().width, pButton->GetBounds().height);
222 Canvas* pCanvasNormal = new (std::nothrow) Canvas();
223 pCanvasNormal->Construct(canvasRect);
224 Canvas* pCanvasPressed = new (std::nothrow) Canvas();
225 pCanvasPressed->Construct(canvasRect);
227 String number(DialUtil::ConvertDialedNumberToString(pButton->GetActionId()));
228 switch (pButton->GetActionId())
232 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE_ICON);
233 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
234 //Set canvas for pressed state of the button
235 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
236 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
237 if(IsShowVoiceMailIcon() == true)
239 DialUtil::DrawImageToCanvas(IDB_VOICEMAIL_BTN_ICON, Dimension(W_VOICEMAIL_ICON, H_VOICEMAIL_ICON), *pCanvasNormal, POSITION_RIGHT);
240 DialUtil::DrawImageToCanvas(IDB_VOICEMAIL_BTN_PRESS_ICON, Dimension(W_VOICEMAIL_ICON, H_VOICEMAIL_ICON), *pCanvasPressed, POSITION_RIGHT);
247 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE_ICON);
248 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
249 DialUtil::DrawTextToCanvas(IDI_KEY2_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
251 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
252 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
253 DialUtil::DrawTextToCanvas(IDI_KEY2_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
259 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE_ICON);
260 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
261 DialUtil::DrawTextToCanvas(IDI_KEY3_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
263 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
264 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
265 DialUtil::DrawTextToCanvas(IDI_KEY3_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
271 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE2_ICON);
272 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
273 DialUtil::DrawTextToCanvas(IDI_KEY4_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
275 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
276 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
277 DialUtil::DrawTextToCanvas(IDI_KEY4_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
283 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE2_ICON);
284 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
285 DialUtil::DrawTextToCanvas(IDI_KEY5_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
287 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
288 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
289 DialUtil::DrawTextToCanvas(IDI_KEY5_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
295 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE2_ICON);
296 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
297 DialUtil::DrawTextToCanvas(IDI_KEY6_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
299 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
300 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
301 DialUtil::DrawTextToCanvas(IDI_KEY6_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
307 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE3_ICON);
308 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
309 DialUtil::DrawTextToCanvas(IDI_KEY7_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
311 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
312 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
313 DialUtil::DrawTextToCanvas(IDI_KEY7_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
319 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE3_ICON);
320 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
321 DialUtil::DrawTextToCanvas(IDI_KEY8_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
323 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
324 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
325 DialUtil::DrawTextToCanvas(IDI_KEY8_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
331 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE3_ICON);
332 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
333 DialUtil::DrawTextToCanvas(IDI_KEY9_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
335 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
336 DialUtil::DrawTextToCanvas(number, FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
337 DialUtil::DrawTextToCanvas(IDI_KEY9_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
343 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE4_ICON);
344 DialUtil::DrawImageToCanvas(IDB_DIALER_STAR_ICON, Dimension(W_STAR_ICON, H_STAR_ICON), *pCanvasNormal, POSITION_LEFT);
345 DialUtil::DrawTextToCanvas(L"P", FONT_KEYPAD_P, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
347 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
348 DialUtil::DrawImageToCanvas(IDB_DIALER_STAR_ICON, Dimension(W_STAR_ICON, H_STAR_ICON), *pCanvasPressed, POSITION_LEFT);
349 DialUtil::DrawTextToCanvas(L"P", FONT_KEYPAD_P, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
355 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE4_ICON);
356 DialUtil::DrawTextToCanvas(L"0", FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
357 DialUtil::DrawTextToCanvas(L"+", FONT_KEYPAD_PLUS, *pCanvasNormal, POSITION_RIGHT, BUTTON_STATUS_NORMAL);
359 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
360 DialUtil::DrawTextToCanvas(L"0", FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
361 DialUtil::DrawTextToCanvas(L"+", FONT_KEYPAD_PLUS, *pCanvasPressed, POSITION_RIGHT, BUTTON_STATUS_PRESSED);
367 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE4_ICON);
368 DialUtil::DrawTextToCanvas(L"#", FONT_KEYPAD_NUMBER, *pCanvasNormal, POSITION_LEFT, BUTTON_STATUS_NORMAL);
369 DialUtil::DrawImageToCanvas(IDB_DIALER_MUTE_ICON, Dimension(W_MUTE_ICON, H_MUTE_ICON), *pCanvasNormal, POSITION_RIGHT);
371 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
372 DialUtil::DrawTextToCanvas(L"#", FONT_KEYPAD_NUMBER, *pCanvasPressed, POSITION_LEFT, BUTTON_STATUS_PRESSED);
373 DialUtil::DrawImageToCanvas(IDB_DIALER_MUTE_ICON, Dimension(W_MUTE_ICON, H_MUTE_ICON), *pCanvasPressed, POSITION_RIGHT);
379 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE5_ICON);
380 DialUtil::DrawImageToCanvas(IDB_DIALER_VIDEOCALL_ICON, Dimension(W_VIDEOCALL_ICON, H_VIDEOCALL_ICON), *pCanvasNormal, POSITION_CENTER);
382 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
383 DialUtil::DrawImageToCanvas(IDB_DIALER_VIDEOCALL_ICON, Dimension(W_VIDEOCALL_ICON, H_VIDEOCALL_ICON), *pCanvasPressed, POSITION_CENTER);
389 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE5_ICON);
390 DialUtil::DrawTextToCanvas(IDI_CANCEL_KEY_TXT, FONT_KEYPAD_CANCEL, *pCanvasNormal, POSITION_CENTER, BUTTON_STATUS_NORMAL);
392 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
393 DialUtil::DrawTextToCanvas(IDI_CANCEL_KEY_TXT, FONT_KEYPAD_CANCEL, *pCanvasPressed, POSITION_CENTER, BUTTON_STATUS_NORMAL);
399 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_CALL_BG_ICON);
400 DialUtil::DrawImageToCanvas(IDB_DIALER_CALL_ICON, Dimension(W_CALL_ICON, H_CALL_ICON), *pCanvasNormal, POSITION_CENTER);
402 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
403 DialUtil::DrawImageToCanvas(IDB_DIALER_CALL_ICON, Dimension(W_CALL_ICON, H_CALL_ICON), *pCanvasPressed, POSITION_CENTER);
409 DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE5_ICON);
410 DialUtil::DrawImageToCanvas(IDB_DIALER_CLEAR_ICON, Dimension(W_CLEAR_ICON, H_CLEAR_ICON), *pCanvasNormal, POSITION_CENTER);
412 DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON);
413 DialUtil::DrawImageToCanvas(IDB_DIALER_CLEAR_ICON, Dimension(W_CLEAR_ICON, H_CLEAR_ICON), *pCanvasPressed, POSITION_CENTER);
418 //Set the final Bitmap to Button
419 DialUtil::DrawCanvasToButton(pCanvasNormal, pCanvasPressed, pButton);
420 delete pCanvasNormal;
421 pCanvasNormal = null;
422 delete pCanvasPressed;
423 pCanvasPressed = null;
430 DialerKeypad::IsShowCancelButton(void)
432 //'Cancel' is shown instead of 'Video Call' when opened in 'DIALER_STATE_ADD_CALL'.
433 bool isShowCancel = false;
434 if (__openedState == DIALER_STATE_ADD_CALL)
442 DialerKeypad::IsShowVoiceMailIcon(void)
444 //voice mail icon is not shown when opened from any APPCONTROL or from DIALER_STATE_ADD_CALL.
445 bool isShowVoiceMail = false;
446 if (__openedState == DIALER_STATE_FIRST_SCENE)
448 isShowVoiceMail = true;
450 return isShowVoiceMail;
454 DialerKeypad::IsShowVideoCallButton(void)
456 //video call button is shown in 'DIALER_STATE_FIRST_SCENE' , 'DIALER_STATE_NORMAL_APPCONTROL'.
457 bool isShowVideoCall = true;
458 if ((__openedState == DIALER_STATE_EMERGENCY_APPCONTROL) || (__openedState == DIALER_STATE_ADD_CALL))
460 isShowVideoCall = false;
462 return isShowVideoCall;
466 DialerKeypad::OnTerminating(void)
468 for (int index = 0; index < __pLongPressDetectors->GetCount(); index++)
470 TouchLongPressGestureDetector* pLongPressDetector = static_cast<TouchLongPressGestureDetector*>(__pLongPressDetectors->GetAt(index));
471 Button* pButton = static_cast<Button*>(pLongPressDetector->GetControl());
472 pButton->RemoveGestureDetector(*pLongPressDetector);