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 PhnSettingsForwardToNumberForm.h
19 * @brief This is the header file for the %SettingsForwardToNumberForm class.
21 * This header file contains the declarations for %SettingsForwardToNumberForm class.
23 #ifndef _PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_
24 #define _PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_
28 #include "PhnSettingsConstants.h"
29 #include "PhnErrorMsgPopup.h"
31 class SettingsPresentationModel;
34 * @class SettingsForwardToNumberForm
35 * @brief This class presents a settings form based UI for saving forwarding call settings.
38 class SettingsForwardToNumberForm
39 : public IPopupClosedEventListener
40 , public ISettingsEventListener
41 , public Tizen::Ui::IActionEventListener
42 , public Tizen::Ui::IKeypadEventListener
43 , public Tizen::Ui::ITextEventListener
44 , public Tizen::Ui::Controls::Form
45 , public Tizen::Ui::Controls::IGroupedTableViewItemProvider
46 , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener
47 , public Tizen::Ui::Scenes::ISceneEventListener
48 , public Tizen::App::IAppControlResponseListener
54 FORWARDCONDITION_NOREPLY,
58 SettingsForwardToNumberForm(ForwardCondition forwardCondition);
59 virtual ~SettingsForwardToNumberForm(void);
60 bool Initialize(void);
63 virtual result OnInitializing(void);
64 virtual result OnTerminating(void);
65 virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
66 virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
67 virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
69 //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed.
70 virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){};
71 //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed.
72 virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
73 //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed.
74 virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){};
76 //From IGroupedTableViewItemProvider - Gets the total number of groups.
77 virtual int GetGroupCount(void);
78 //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group.
79 virtual int GetItemCount(int groupIndex);
80 //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider.
81 virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
82 //From IGroupedTableViewItemProvider - Deletes the specified group item.
83 virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
84 //From IGroupedTableViewItemProvider - Updates the specified group item.
85 virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
86 //From IGroupedTableViewItemProvider - Creates the specified item.
87 virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
88 //From IGroupedTableViewItemProvider - Deletes the specified item.
89 virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
90 //From IGroupedTableViewItemProvider - Updates the specified item.
91 virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
92 //From IGroupedTableViewItemProvider - Gets the default height of an group item.
93 virtual int GetDefaultGroupItemHeight(void);
94 //From IGroupedTableViewItemProvider - Gets the default height of an item.
95 virtual int GetDefaultItemHeight(void);
97 //From IKeypadEventListener
98 virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
99 virtual void OnKeypadOpened(Tizen::Ui::Control& source){};
100 virtual void OnKeypadClosed(Tizen::Ui::Control& source);
101 virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){};
102 virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source){};
104 //From ISettingsEventListener
105 virtual void HandleGetCallWaitingResponse(bool isCallSuccessful, bool callWaitingActivated){};
106 virtual void HandleSetCallWaitingResponse(bool isCallSuccessful, bool isCallWaitingEnabled){};
107 virtual void HandleGetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool callForwardActivated, int noReplyWaitTime);
108 virtual void HandleSetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime){};
109 virtual void HandleGetCallBarringResponse(bool isCallSuccessful, CallBarringType callBarringType, bool isBarringActivated){};
110 virtual void HandleSetCallBarringResponse(bool isCallSuccessful, CallBarringType callBarringType, bool isBarringActivated){};
112 //Event Listener method from IPopupClosedEventListener
113 virtual void HandlePopupClosed(void);
115 //Launches contacts app control for pick operation
116 void LaunchContactsAppControl(void);
117 //From IAppControlResponseListener
118 virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData);
119 // Called when a text is changed.
120 virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
121 // Called when a change made to the text is canceled.
122 virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source);
125 // This function is used to collapse selective groups while form initialization only.
126 void CollapseSelectiveGroups(Tizen::Ui::Controls::GroupedTableView* pMainMenuTableView);
127 // Function is used to initialise header and headerItems.
128 void InitializeHeader(void);
129 // Funtion is use dto initalise numeric edit field.
130 void InitializeNumberEditField(void);
131 // Function is used to initialise group table view and add item provider.
132 result InitializeGroupedTableView(void);
133 // Function is used to create list items which come under "GroupWaitTimeOptionsItems".
134 Tizen::Ui::Controls::TableViewItem* CreateWaitingTimeOptionsMenuItems(int itemIndex, int itemWidth);
135 // This function is used to create "SELECTWAITTIME_WAIT_TIME".
136 Tizen::Ui::Controls::TableViewItem* CreateExpandableWaitingItem(int itemWidth);
137 //Funtion is used to set or change expand icon based on item's state.
138 void SetExpandIconToItem(Tizen::Ui::Controls::TableViewItem* pItem, bool isExpanded);
139 // This function is used to handle selection of 'GroupSelectWaitTimeItems'.
140 void ToggleGroupExpansion(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex);
141 // This function is used to handle selection of waiting time.
142 void HandleSelectedWaitingTime(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);
143 Tizen::Base::String FetchTextForSelectedOption(int selectedWaitTimeOption);
144 void ShowErrorMessage(int errorCode);
147 //Main groups available in list view.
148 enum WaitingTimeGroupId
150 GROUP_SELECT_WAIT_TIME,
151 GROUP_WAIT_TIME_OPTIONS,
154 //Items for 'GROUP_SELECT_WAIT_TIME'
155 enum GroupSelectWaitTimeItems
157 SELECTWAITTIME_WAIT_TIME,
158 SELECTWAITTIME_TOTALCOUNT, //No of options in "GROUP_ENTER_WAIT" drop down menu
160 //Items for 'GROUP_WAIT_TIME_OPTIONS'
161 enum GroupWaitTimeOptionsItems
163 WAITTIMEOPTIONS_FIVE_SEC = 5,
164 WAITTIMEOPTIONS_TEN_SEC = 10,
165 WAITTIMEOPTIONS_FIFTEEN_SEC = 15,
166 WAITTIMEOPTIONS_TWENTY_SEC = 20,
167 WAITTIMEOPTIONS_TWENTYFIVE_SEC = 25,
168 WAITTIMEOPTIONS_THIRTY_SEC = 30,
171 ForwardCondition __forwardCondition;
172 //call forward condition to be set
173 CallForwardCondition __callForwardCondition;
174 SettingsPresentationModel* __pSettingsPresentor;
175 GroupWaitTimeOptionsItems __selectedWaitTime;
176 bool __isWaitTimeOptionsMenuExpanded;
178 ErrorMsgPopup* __pErrorMsgPopup;
181 #endif //_PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_