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 PhnSettingsAddNumberForm.cpp
19 * @brief Add Number form
22 #include "PhnAppUtility.h"
24 #include "PhnSettingsAddNumberForm.h"
25 #include "PhnSettingsConstants.h"
26 #include "PhnSettingsPresentationModel.h"
27 #include "PhnSceneRegister.h"
29 using namespace Tizen::App;
30 using namespace Tizen::Base;
31 using namespace Tizen::Base::Collection;
32 using namespace Tizen::Graphics;
33 using namespace Tizen::Ui;
34 using namespace Tizen::Ui::Controls;
35 using namespace Tizen::Ui::Scenes;
36 using namespace Tizen::Social;
38 static const wchar_t* IDL_SETTINGS_ADD_NUMBER_FORM = L"IDL_SETTINGS_ADD_NUMBER_FORM";
39 static const wchar_t* IDL_SETTINGS_AUTO_AREA_CODE_FORM = L"IDL_SETTINGS_AUTO_AREA_CODE_FORM";
40 static const wchar_t* IDS_ALREADY_USED_MSG = L"IDS_ALREADY_USED_MSG";
42 SettingsAddNumberForm::SettingsAddNumberForm(FormType formType)
43 : __formType(formType)
44 , __selectedCriteria(CRITERIAOPTIONS_EXACT)
45 , __isCriteriaOptionsMenuExpanded(false)
46 , __activePrefixDialingNumber(L"")
47 , __isContactAppControlLaunched(false)
51 SettingsAddNumberForm::~SettingsAddNumberForm(void)
56 SettingsAddNumberForm::Initialize(void)
60 case FORMTYPE_NUMBER_TO_REJECT:
62 Construct(IDL_SETTINGS_ADD_NUMBER_FORM);
66 case FORMTYPE_AUTO_AREA_CODE:
68 Construct(IDL_SETTINGS_AUTO_AREA_CODE_FORM);
75 SettingsAddNumberForm::OnInitializing(void)
80 //Initialize table view
81 r = InitializeGroupedTableView();
82 TryReturn(r == E_SUCCESS,r,"GroupedTableView initialization failed");
83 //Initialize numeric edit field
84 InitializeNumberEditField();
89 SettingsAddNumberForm::InitializeHeader(void)
91 Header* pHeader = GetHeader();
96 saveItemName.Append(AppUtility::GetResourceString(IDS_SETTING_SAVE_HEADER_ITEM));
97 ButtonItem saveHeaderItem;
98 saveHeaderItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SAVE_HEADER_ITEMID);
99 saveHeaderItem.SetText(saveItemName);
100 pHeader->SetButton(BUTTON_POSITION_LEFT, saveHeaderItem);
101 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
104 ButtonItem cancelHeaderItem;
105 cancelHeaderItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_CANCEL_HEADER_ITEMID);
106 Bitmap* pNormalBmp = AppUtility::GetBitmapFromResourcesN(IDB_BACK_HEADER_ITEM);
107 Bitmap* pPressBmp = AppUtility::GetBitmapFromResourcesN(IDB_BACK_HEADER_ITEM_PRESSED);
108 cancelHeaderItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pNormalBmp);
109 cancelHeaderItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pPressBmp);
110 pHeader->SetButton(BUTTON_POSITION_RIGHT, cancelHeaderItem);
114 pHeader->AddActionEventListener(*this);
119 SettingsAddNumberForm::OnTerminating(void)
121 result r = E_SUCCESS;
126 SettingsAddNumberForm::OnActionPerformed(const Control& source, int actionId)
130 case IDA_CANCEL_HEADER_ITEMID:
132 GoBackToPreviousForm();
136 case IDA_SAVE_HEADER_ITEMID:
138 SettingsPresentationModel* pSettingsPresentor = SettingsPresentationModel::GetInstance();
139 String editFieldNumber;
140 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
141 if ((pEditFieldNumber != null) && (pEditFieldNumber->GetTextLength() != 0))
143 editFieldNumber.Append(pEditFieldNumber->GetText());
148 case FORMTYPE_NUMBER_TO_REJECT:
150 if(editFieldNumber.IsEmpty() == false)
152 CallRejectMatchCondition matchCondition = (CallRejectMatchCondition)(__selectedCriteria + 1);
153 //todo: call update if in edit mode
154 result r = pSettingsPresentor->AddToCallRejectList(editFieldNumber, matchCondition);
155 if(r == E_OBJ_ALREADY_EXIST)
157 //Show error message box and go back to previous screen
159 msg.Append(editFieldNumber);
161 msg.Append(FetchTextForCriteria(__selectedCriteria));
163 msg.Append(AppUtility::GetResourceString(IDS_ALREADY_USED_MSG));
164 ShowDuplicateErrorMessageBox(msg);
166 GoBackToPreviousForm();
171 case FORMTYPE_AUTO_AREA_CODE:
173 if(editFieldNumber.IsEmpty() == false)
175 result r = pSettingsPresentor->SetPrefixDialNumber(0, editFieldNumber);
178 pSettingsPresentor->SetActivePrefixDialingValue(0);
179 pSettingsPresentor->SetPrefixDialingStatus(true);
184 pSettingsPresentor->SetPrefixDialingStatus(false);
186 GoBackToPreviousForm();
193 case IDA_SELECT_CONTACT:
195 LaunchContactsAppControl();
205 SettingsAddNumberForm::ShowDuplicateErrorMessageBox(String& message)
207 // Creates an instance of MessageBox
208 MessageBox duplicateMsgBox;
209 duplicateMsgBox.Construct(L"", message, MSGBOX_STYLE_NONE, 2000);
212 // Calls ShowAndWait() : Draws and Shows itself and processes events
213 duplicateMsgBox.ShowAndWait(modalResult);
217 SettingsAddNumberForm::LaunchContactsAppControl(void)
219 if (__isContactAppControlLaunched == true)
221 //app control already launched.
225 __isContactAppControlLaunched = true;
226 result r = E_SUCCESS;
228 extraData.Construct();
230 extraData.Add(new (std::nothrow) String(SELECTION_MODE), new (std::nothrow) String(SELECTION_MODE_SINGLE));
231 extraData.Add(new (std::nothrow) String(RETURN_TYPE), new (std::nothrow) String(RETURN_TYPE_PHONE));
233 AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_CONTACTS, OPERATION_ID_PICK);
236 r = pAc->Start(null, null, &extraData, this);
239 //app control request failed.
240 __isContactAppControlLaunched = false;
244 extraData.RemoveAll(true);
248 SettingsAddNumberForm::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId, AppCtrlResult appControlResult, const IMap* pExtraData)
250 if (appId.Equals(String(PROVIDER_ID_CONTACTS)) && operationId.Equals(String(OPERATION_ID_PICK)))
252 //app control request completed.
253 __isContactAppControlLaunched = false;
254 //check if request was successful.
255 if (appControlResult == APP_CTRL_RESULT_SUCCEEDED)
257 const String* rettype = static_cast<const String *>(pExtraData->GetValue( String(RETURN_TYPE)));
258 if (rettype->Equals(String(RETURN_TYPE_PHONE),false))
260 const String* pPickResult = static_cast<const String *>(pExtraData->GetValue( String(RETURN_KEY_VALUE)));
261 if (pPickResult != null && pPickResult->IsEmpty() == false)
263 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
264 Header* pHeader = GetHeader();
265 if (pEditFieldNumber != null && pHeader != null)
267 pEditFieldNumber->SetText(*pPickResult);
268 pEditFieldNumber->Invalidate(true);
269 //enable "save" button
270 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
271 pHeader->Invalidate(true);
280 SettingsAddNumberForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
282 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
283 if (pEditFieldNumber != null)
286 pEditFieldNumber->Clear();
287 pEditFieldNumber->SetFocus();
289 __isContactAppControlLaunched = false;
291 //disable "save" button
292 Header* pHeader = GetHeader();
295 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
300 case FORMTYPE_NUMBER_TO_REJECT:
302 __selectedCriteria = CRITERIAOPTIONS_EXACT;
303 //set default item as checked
304 GroupedTableView* pMainMenuTableView = static_cast<GroupedTableView*>(GetControl(IDC_GROUPEDTABLEVIEW));
305 if (pMainMenuTableView != null)
307 //by default, "exact match" option is selected
308 pMainMenuTableView->SetItemChecked(GROUP_CRITERIA_OPTIONS, __selectedCriteria, true);
309 //un-check all other items
310 pMainMenuTableView->SetItemChecked(GROUP_CRITERIA_OPTIONS, CRITERIAOPTIONS_STARTSWITH, false);
311 pMainMenuTableView->SetItemChecked(GROUP_CRITERIA_OPTIONS, CRITERIAOPTIONS_ENDSWITH, false);
312 pMainMenuTableView->SetItemChecked(GROUP_CRITERIA_OPTIONS, CRITERIAOPTIONS_INCLUDE, false);
314 pMainMenuTableView->RefreshItem(GROUP_SELECT_CRITERIA, SELECTCRITERIA_MATCH_CRITERIA, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
315 pMainMenuTableView->Invalidate(true);
320 case FORMTYPE_AUTO_AREA_CODE:
322 __activePrefixDialingNumber.Clear();
323 //Fetch active prefix
324 SettingsPresentationModel* pSettingsPresentor = SettingsPresentationModel::GetInstance();
325 if(pSettingsPresentor != null)
327 result r = pSettingsPresentor->GetActivePrefixDialNumber(__activePrefixDialingNumber);
328 if(r == E_SUCCESS && __activePrefixDialingNumber.IsEmpty() == false && pEditFieldNumber != null)
330 pEditFieldNumber->SetText(__activePrefixDialingNumber);
339 SettingsAddNumberForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
341 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
342 if (pEditFieldNumber != null)
344 pEditFieldNumber->HideKeypad();
346 GroupedTableView* pMainMenuTableView = static_cast<GroupedTableView*>(GetControl(IDC_GROUPEDTABLEVIEW));
347 if (pMainMenuTableView != null && pMainMenuTableView->IsGroupExpanded(GROUP_CRITERIA_OPTIONS) == true)
349 pMainMenuTableView->CollapseGroup(GROUP_CRITERIA_OPTIONS);
350 __isCriteriaOptionsMenuExpanded = false;
355 SettingsAddNumberForm::InitializeNumberEditField(void)
357 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
358 if (pEditFieldNumber != null)
360 pEditFieldNumber->AddKeypadEventListener(*this);
361 pEditFieldNumber->AddTextEventListener(*this);
362 pEditFieldNumber->SetOverlayKeypadCommandButtonVisible(false);
365 Button* pContactBtn = static_cast<Button*>(GetControl(IDC_SELECT_CONTACT_BUTTON));
366 if (pContactBtn != null)
368 pContactBtn->SetActionId(IDA_SELECT_CONTACT);
369 pContactBtn->AddActionEventListener(*this);
374 SettingsAddNumberForm::GoBackToPreviousForm(void)
376 SceneManager* pSceneManager = SceneManager::GetInstance();
377 AppAssert(pSceneManager != null);
381 case FORMTYPE_NUMBER_TO_REJECT:
383 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_CALL_REJECTLIST_MENU), null);
387 case FORMTYPE_AUTO_AREA_CODE:
389 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_MORE_OPTIONS), null);
399 SettingsAddNumberForm::InitializeGroupedTableView(void)
401 result r = E_SUCCESS;
402 GroupedTableView* pMainMenuTableView = static_cast<GroupedTableView*>(GetControl(IDC_GROUPEDTABLEVIEW));
403 if (pMainMenuTableView != null)
405 pMainMenuTableView->SetGroupedLookEnabled(true);
406 pMainMenuTableView->SetItemProvider(this);
407 r = pMainMenuTableView->AddGroupedTableViewItemEventListener(*this);
408 pMainMenuTableView->UpdateTableView();
409 CollapseSelectiveGroups(pMainMenuTableView);
415 SettingsAddNumberForm::CollapseSelectiveGroups(GroupedTableView* pMainMenuTableView)
417 //This function should be called only from "InitializeGroupedTableView()".
418 //since collapsing individual groups while GroupTableView construction causes flicker.
419 pMainMenuTableView->CollapseAllGroup();
420 //Expand other groups
421 pMainMenuTableView->ExpandGroup(GROUP_SELECT_CRITERIA);
422 pMainMenuTableView->UpdateTableView();
427 SettingsAddNumberForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
431 case GROUP_SELECT_CRITERIA:
433 ToggleGroupExpansion(tableView, groupIndex, itemIndex);
437 case GROUP_CRITERIA_OPTIONS:
439 HandleMatchingCriteriaSelected(tableView, itemIndex, status);
449 SettingsAddNumberForm::GetGroupCount(void)
451 return GROUP_TOTALCOUNT;
455 SettingsAddNumberForm::GetItemCount(int groupIndex)
460 case GROUP_SELECT_CRITERIA:
462 itemCount = SELECTCRITERIA_TOTALCOUNT;
466 case GROUP_CRITERIA_OPTIONS:
468 itemCount = CRITERIAOPTIONS_TOTALCOUNT;
479 SettingsAddNumberForm::CreateGroupItem(int groupIndex, int itemWidth)
481 TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
482 pItem->Construct(Dimension(itemWidth, H_LIST_HIDDENGROUP_ITEM));
483 pItem->SetBackgroundColor(COLOR_GROUP_ITEM_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
488 SettingsAddNumberForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
496 SettingsAddNumberForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
502 SettingsAddNumberForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
504 TableViewItem* pItem = null;
508 case GROUP_SELECT_CRITERIA:
510 pItem = CreateExpandableCriteriaItem(itemWidth);
514 case GROUP_CRITERIA_OPTIONS:
516 pItem = CreateCriteriaOptionsMenuItem(itemIndex, itemWidth);
527 SettingsAddNumberForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
535 SettingsAddNumberForm::UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
537 if(groupIndex == GROUP_SELECT_CRITERIA && itemIndex == SELECTCRITERIA_MATCH_CRITERIA)
539 String subText = FetchTextForCriteria(__selectedCriteria);
541 Label* pSubTxtLbl = static_cast<Label*>(pItem->GetControl(IDC_SELECTEDOPTION_SUBTEXT_LABEL, true));
542 if(pSubTxtLbl != null)
544 pSubTxtLbl->SetText(subText);
546 //set Drop-down icon to item
547 SetExpandIconToItem(pItem, __isCriteriaOptionsMenuExpanded);
552 SettingsAddNumberForm::GetDefaultGroupItemHeight(void)
554 return H_LIST_HIDDENGROUP_ITEM;
558 SettingsAddNumberForm::GetDefaultItemHeight(void)
560 return H_LIST_NORMAL_MENU_ITEM;
564 SettingsAddNumberForm::CreateExpandableCriteriaItem(int itemWidth)
567 Rectangle mainItemRect(X_LIST_MENU_TEXT_ITEM, Y_LIST_MENU_TEXT_ITEM, (itemWidth - (2 * X_LIST_MENU_TEXT_ITEM) - W_EXPAND_ICON),
568 H_LIST_DROPDOWN_TXT_ITEM);
569 String mainText = AppUtility::GetResourceString(IDS_SETTINGS_MATCHCRITERIA_STRING);
571 Rectangle subItemRect(X_LIST_MENU_TEXT_ITEM, (Y_LIST_MENU_TEXT_ITEM + H_LIST_DROPDOWN_TXT_ITEM),
572 (itemWidth - (2 * X_LIST_MENU_TEXT_ITEM) - W_EXPAND_ICON), H_LIST_DROPDOWN_TXT_ITEM);
573 String subText = FetchTextForCriteria(__selectedCriteria);
575 TableViewItem* pItem = new (std::nothrow) TableViewItem();
576 pItem->Construct(Dimension(itemWidth, H_LIST_DROPDOWN_MENU_ITEM), TABLE_VIEW_ANNEX_STYLE_NORMAL);
578 Label* pMainTxtLbl = new (std::nothrow) Label();
579 pMainTxtLbl->Construct(mainItemRect, mainText);
580 pMainTxtLbl->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
581 pMainTxtLbl->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
582 pMainTxtLbl->SetTextConfig(FONT_SIZE_MAIN_TXT, LABEL_TEXT_STYLE_NORMAL);
583 pMainTxtLbl->SetTextColor(COLOR_NORMAL_MAIN_TXT);
584 pItem->AddControl(*pMainTxtLbl);
586 Label* pSubTxtLbl = new (std::nothrow) Label();
587 pSubTxtLbl->Construct(subItemRect, subText);
588 pSubTxtLbl->SetName(IDC_SELECTEDOPTION_SUBTEXT_LABEL);
589 pSubTxtLbl->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
590 pSubTxtLbl->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
591 pSubTxtLbl->SetTextConfig(FONT_SIZE_SUB_TXT, LABEL_TEXT_STYLE_NORMAL);
592 pSubTxtLbl->SetTextColor(COLOR_NORMAL_SUB_TXT);
593 pItem->AddControl(*pSubTxtLbl);
595 pItem->SetBackgroundColor(COLOR_LIST_MENU_ITEM, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
596 //set Drop-down icon to item
597 SetExpandIconToItem(pItem, __isCriteriaOptionsMenuExpanded);
602 SettingsAddNumberForm::FetchTextForCriteria(int itemIndex)
605 String subText = AppUtility::GetResourceString(IDS_MATCHCRITERIA_EXACT);
608 case CRITERIAOPTIONS_EXACT:
609 subText = AppUtility::GetResourceString(IDS_MATCHCRITERIA_EXACT);
612 case CRITERIAOPTIONS_STARTSWITH:
613 subText = AppUtility::GetResourceString(IDS_MATCHCRITERIA_START);
616 case CRITERIAOPTIONS_ENDSWITH:
617 subText = AppUtility::GetResourceString(IDS_MATCHCRITERIA_END);
620 case CRITERIAOPTIONS_INCLUDE:
621 subText = AppUtility::GetResourceString(IDS_MATCHCRITERIA_INCLUDE);
632 SettingsAddNumberForm::SetExpandIconToItem(TableViewItem* pItem, bool isExpanded)
634 Bitmap* pNormalIcon = null;
635 Bitmap* pPressIcon = null;
639 pNormalIcon = AppUtility::GetBitmapFromResourcesN(IDB_LIST_EXPAND, W_EXPAND_ICON, H_EXPAND_ICON);
640 pPressIcon = AppUtility::GetBitmapFromResourcesN(IDB_LIST_EXPAND_PRESSED, W_EXPAND_ICON, H_EXPAND_ICON);
644 pNormalIcon = AppUtility::GetBitmapFromResourcesN(IDB_LIST_OPENED, W_EXPAND_ICON, H_EXPAND_ICON);
645 pPressIcon = AppUtility::GetBitmapFromResourcesN(IDB_LIST_OPENED_PRESSED, W_EXPAND_ICON, H_EXPAND_ICON);
648 int itemWidth = pItem->GetWidth();
650 Rectangle iconRect((itemWidth - W_EXPAND_ICON - X_LIST_MENU_TEXT_ITEM),
651 ((H_LIST_DROPDOWN_MENU_ITEM - H_EXPAND_ICON) / 2), W_EXPAND_ICON, H_EXPAND_ICON);
653 //for drawing blue bg header rectangle on left side.
654 Rectangle blueHeaderRect(0,0,W_LEFT_HEADER_EXPAND_ITEMS,pItem->GetHeight());
656 Canvas* pBgCanvas = new (std::nothrow) Canvas();
657 pBgCanvas->Construct(Rectangle(0,0, pItem->GetBounds().width, pItem->GetBounds().height));
658 pBgCanvas->DrawBitmap(iconRect, *pNormalIcon);
659 pBgCanvas->FillRectangle(COLOR_LEFT_HEADER_EXPAND_ITEMS, blueHeaderRect);
660 Bitmap* pActualBgBmp = new (std::nothrow) Bitmap();
661 pActualBgBmp->Construct(*pBgCanvas,pBgCanvas->GetBounds());
662 pItem->SetBackgroundBitmap(pActualBgBmp, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
667 pBgCanvas = new (std::nothrow) Canvas();
668 pBgCanvas->Construct(Rectangle(0,0, pItem->GetBounds().width, pItem->GetBounds().height));
669 pBgCanvas->DrawBitmap(iconRect, *pPressIcon);
670 pBgCanvas->FillRectangle(COLOR_LEFT_HEADER_EXPAND_ITEMS, blueHeaderRect);
671 pActualBgBmp = new (std::nothrow) Bitmap();
672 pActualBgBmp->Construct(*pBgCanvas,pBgCanvas->GetBounds());
673 pItem->SetBackgroundBitmap(pActualBgBmp, TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);
684 SettingsAddNumberForm::ToggleGroupExpansion(GroupedTableView& tableView, int groupIndex, int itemIndex)
688 case SELECTCRITERIA_MATCH_CRITERIA:
690 if (tableView.IsGroupExpanded(GROUP_CRITERIA_OPTIONS) == true)
692 tableView.CollapseGroup(GROUP_CRITERIA_OPTIONS);
693 __isCriteriaOptionsMenuExpanded = false;
697 tableView.ExpandGroup(GROUP_CRITERIA_OPTIONS);
698 __isCriteriaOptionsMenuExpanded = true;
701 tableView.RefreshItem(GROUP_SELECT_CRITERIA, SELECTCRITERIA_MATCH_CRITERIA, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
709 //close overlay keypad
710 EditField* pEditFieldNumber = static_cast<EditField*>(GetControl(IDC_NUMBER_EDITFIELD));
711 if (pEditFieldNumber != null && pEditFieldNumber->HasFocus() == true)
713 pEditFieldNumber->HideKeypad();
718 SettingsAddNumberForm::CreateCriteriaOptionsMenuItem(int itemIndex, int itemWidth)
721 TableViewItem* pItem = new (std::nothrow) TableViewItem();
722 pItem->Construct(Dimension(itemWidth, H_LIST_NORMAL_MENU_ITEM), TABLE_VIEW_ANNEX_STYLE_RADIO);
723 pItem->SetBackgroundColor(COLOR_SECONDDEPTH_ITEM_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
725 //text item rectangle
726 Rectangle itemRect(X_LIST_MENU_TEXT_ITEM, 0, (itemWidth - X_LIST_MENU_TEXT_ITEM), H_LIST_NORMAL_MENU_ITEM);
728 String itemName(L"");
729 itemName.Append(FetchTextForCriteria(itemIndex));
731 Label* pItemLbl = new (std::nothrow) Label();
732 pItemLbl->Construct(itemRect, itemName);
733 pItemLbl->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
734 pItemLbl->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
735 pItemLbl->SetTextConfig(FONT_SIZE_MAIN_TXT, LABEL_TEXT_STYLE_NORMAL);
736 pItemLbl->SetTextColor(COLOR_NORMAL_MAIN_TXT);//COLOR_PRESS_MAIN_TXT
737 pItem->AddControl(*pItemLbl);
743 SettingsAddNumberForm::HandleMatchingCriteriaSelected(GroupedTableView& tableView, int itemIndex, TableViewItemStatus status)
745 //check if already checked item is selected
746 if (status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)
748 tableView.SetItemChecked(GROUP_CRITERIA_OPTIONS, itemIndex, true);
749 __selectedCriteria = (GroupCriteriaOptionsItems) itemIndex;
752 //un-check previous selected options
753 if(__selectedCriteria != (GroupCriteriaOptionsItems(itemIndex)))
755 tableView.SetItemChecked(GROUP_CRITERIA_OPTIONS, __selectedCriteria, false);
756 tableView.RefreshItem(GROUP_CRITERIA_OPTIONS, __selectedCriteria, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
758 //update selected criteria to latest checked itemIndex
759 __selectedCriteria = (GroupCriteriaOptionsItems) itemIndex;
760 //change sub text for criteria options menu
761 tableView.RefreshItem(GROUP_SELECT_CRITERIA, SELECTCRITERIA_MATCH_CRITERIA, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
762 tableView.Invalidate(true);
766 SettingsAddNumberForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
768 GroupedTableView* pMainMenuTableView = static_cast<GroupedTableView*>(GetControl(IDC_GROUPEDTABLEVIEW));
769 if (pMainMenuTableView != null && __isCriteriaOptionsMenuExpanded == true)
771 pMainMenuTableView->CollapseGroup(GROUP_CRITERIA_OPTIONS);
772 __isCriteriaOptionsMenuExpanded = false;
774 pMainMenuTableView->RefreshItem(GROUP_SELECT_CRITERIA, SELECTCRITERIA_MATCH_CRITERIA, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
779 SettingsAddNumberForm::OnTextValueChanged(const Control& source)
781 //enable or disable save button
782 const EditField* pEditFieldNumber = static_cast<const EditField*>(&source);
783 Header* pHeader = GetHeader();
784 if (pEditFieldNumber != null && pHeader != null)
786 bool activateSave = false;
789 case FORMTYPE_AUTO_AREA_CODE:
791 if (__activePrefixDialingNumber.Equals(pEditFieldNumber->GetText()) == false)
798 case FORMTYPE_NUMBER_TO_REJECT:
800 if(pEditFieldNumber->GetText().IsEmpty() == false)
807 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, activateSave);
808 pHeader->Invalidate(true);
813 SettingsAddNumberForm::OnTextValueChangeCanceled(const Control& source)
815 //text change canceled, disable save button
816 const EditField* pEditFieldNumber = static_cast<const EditField*>(&source);
817 Header* pHeader = GetHeader();
818 if (pEditFieldNumber != null && pHeader != null)
820 pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
821 pHeader->Invalidate(true);