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 FormFactory.cpp
19 * @brief Form factory class
21 #include "PhnPhoneFormFactory.h"
22 #include "PhnSceneRegister.h"
24 #include "PhnIncomingCallForm.h"
25 #include "PhnActiveCallForm.h"
26 #include "PhnConfCallerListForm.h"
27 #include "PhnEndCallForm.h"
29 #include "PhnSettingsMainMenuForm.h"
30 #include "PhnSettingsRejectListForm.h"
31 #include "PhnSettingsRejectMsgsForm.h"
32 #include "PhnSettingsSpeedDialForm.h"
33 #include "PhnSettingsMoreOptionsForm.h"
34 #include "PhnSettingsCallStatusTonesForm.h"
35 #include "PhnSettingsCallForwardWaitBarrForm.h"
36 #include "PhnSettingsAddNumberForm.h"
37 #include "PhnSettingsEditRejectMsgForm.h"
38 #include "PhnSettingsForwardToNumberForm.h"
39 #include "PhnSettingsBarringPwdForm.h"
40 #include "PhnSettingsDeleteListForm.h"
42 #include "PhnDialAppForm.h"
43 #include "PhnLogsDetailForm.h"
44 #include "PhnEmergencyDialForm.h"
46 using namespace Tizen::Base;
47 using namespace Tizen::Ui::Controls;
48 using namespace Tizen::Ui::Scenes;
52 FormFactory::FormFactory(void)
56 FormFactory::~FormFactory(void)
61 FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
63 Form* pNewForm = null;
65 SceneManager* pSceneManager = SceneManager::GetInstance();
66 AppAssert(pSceneManager != null);
68 if (formId == IDL_FORM_DIAL_APP) {
69 DialAppForm* pForm = new (std::nothrow) DialAppForm();
71 //pSceneManager->AddSceneEventListener(sceneId, *pForm);
73 } else if (formId == IDL_FORM_CALL_LOG_DETAIL) {
74 DlLogsDetailForm* pForm = new (std::nothrow) DlLogsDetailForm();
76 pSceneManager->AddSceneEventListener(sceneId, *pForm);
78 } else if(formId == IDL_FORM_EMERGENCY_DIAL)
80 EmergencyDialForm* pForm = new (std::nothrow) EmergencyDialForm();
82 //pSceneManager->AddSceneEventListener(sceneId, *pForm);
85 else if (formId.StartsWith(IDL_FORM_SETTINGS_PREFIX,0) == true)
87 pNewForm = CreateCallSettingsForm(formId, sceneId);
91 pNewForm = CreateVoiceCallForm(formId, sceneId);
98 FormFactory::CreateVoiceCallForm(const String& formId, const SceneId& sceneId)
100 SceneManager* pSceneManager = SceneManager::GetInstance();
101 AppAssert(pSceneManager != null);
103 BaseForm* pNewForm = null;
105 if (formId == IDL_FORM_OUTCALL)
107 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_OUTGOINGCALL);
109 pSceneManager->AddSceneEventListener(sceneId, *pForm);
112 else if (formId == IDL_FORM_OUT_EMERGENCYCALL)
114 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_EMERGENCYOUTGOINGCALL);
116 pSceneManager->AddSceneEventListener(sceneId, *pForm);
119 else if (formId == IDL_FORM_ACTIVECALL)
121 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_ACTIVECALL);
123 pSceneManager->AddSceneEventListener(sceneId, *pForm);
126 else if (formId == IDL_FORM_ACTIVE_EMERGENCYCALL)
128 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_EMERGENCYACTIVECALL);
130 pSceneManager->AddSceneEventListener(sceneId, *pForm);
133 else if (formId == IDL_FORM_INCOMINGCALL)
135 IncomingCallForm* pForm = new (std::nothrow) IncomingCallForm();
137 pSceneManager->AddSceneEventListener(sceneId, *pForm);
140 else if (formId == IDL_FORM_ENDCALL)
142 EndCallForm* pForm = new (std::nothrow) EndCallForm();
144 pSceneManager->AddSceneEventListener(sceneId, *pForm);
147 else if (formId == IDL_FORM_CONFCALLLIST)
149 ConfCallerListForm* pForm = new (std::nothrow) ConfCallerListForm();
151 pSceneManager->AddSceneEventListener(sceneId, *pForm);
154 else if (formId == IDL_FORM_MULTIPLEACTIVECALL)
156 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_MULTIPLECALLS);
158 pSceneManager->AddSceneEventListener(sceneId, *pForm);
161 else if (formId == IDL_FORM_CONFCALL)
163 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_ACTIVECONFCALL);
165 pSceneManager->AddSceneEventListener(sceneId, *pForm);
173 FormFactory::CreateCallSettingsForm(const String& formId, const SceneId& sceneId)
175 SceneManager* pSceneManager = SceneManager::GetInstance();
176 AppAssert(pSceneManager != null);
178 Form* pNewForm = null;
180 if (formId == IDL_FORM_MAIN_SETTING_MENU)
182 SettingsMainMenuForm* pForm = new (std::nothrow) SettingsMainMenuForm();
184 pSceneManager->AddSceneEventListener(sceneId, *pForm);
187 else if (formId == IDL_FORM_CALL_REJECTLIST_MENU)
189 SettingsRejectListForm* pForm = new (std::nothrow) SettingsRejectListForm();
191 pSceneManager->AddSceneEventListener(sceneId, *pForm);
194 else if (formId == IDL_FORM_CALL_REJECTMSGS_MENU)
196 SettingsRejectMsgsForm* pForm = new (std::nothrow) SettingsRejectMsgsForm();
198 pSceneManager->AddSceneEventListener(sceneId, *pForm);
201 else if (formId == IDL_FORM_SPEED_DIAL)
203 SettingsSpeedDialForm* pForm = new (std::nothrow) SettingsSpeedDialForm();
205 pSceneManager->AddSceneEventListener(sceneId, *pForm);
208 else if (formId == IDL_FORM_MORE_OPTIONS)
210 SettingsMoreOptionsForm* pForm = new (std::nothrow) SettingsMoreOptionsForm();
212 pSceneManager->AddSceneEventListener(sceneId, *pForm);
215 else if (formId == IDL_FORM_CALL_STATUSTONES)
217 SettingsCallStatusTonesForm* pForm = new (std::nothrow) SettingsCallStatusTonesForm();
219 pSceneManager->AddSceneEventListener(sceneId, *pForm);
222 else if (formId == IDL_FORM_CALLTYPE_FORWARD)
224 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
225 SettingsCallForwardWaitBarrForm::FORMTYPE_CALLFORWARDING_TYPE);
227 pSceneManager->AddSceneEventListener(sceneId, *pForm);
230 else if (formId == IDL_FORM_CALL_FORWARD_OPTIONS)
232 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
233 SettingsCallForwardWaitBarrForm::FORMTYPE_VOICE_CALLFORWARDING);
235 pSceneManager->AddSceneEventListener(sceneId, *pForm);
238 else if (formId == IDL_FORM_CALLTYPE_BARRING)
240 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
241 SettingsCallForwardWaitBarrForm::FORMTYPE_CALLBARRING_TYPE);
243 pSceneManager->AddSceneEventListener(sceneId, *pForm);
246 else if (formId == IDL_FORM_CALL_BARRING_OPTIONS)
248 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
249 SettingsCallForwardWaitBarrForm::FORMTYPE_VOICE_CALLBARRING);
251 pSceneManager->AddSceneEventListener(sceneId, *pForm);
254 else if (formId == IDL_FORM_CALL_WAITING_OPTIONS)
256 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
257 SettingsCallForwardWaitBarrForm::FORMTYPE_CALL_WAITING);
259 pSceneManager->AddSceneEventListener(sceneId, *pForm);
262 else if (formId == IDL_FORM_ADD_REJECT_NUMBER)
264 SettingsAddNumberForm* pForm = new (std::nothrow) SettingsAddNumberForm(SettingsAddNumberForm::FORMTYPE_NUMBER_TO_REJECT);
266 pSceneManager->AddSceneEventListener(sceneId, *pForm);
269 else if (formId == IDL_FORM_AUTO_AREA_CODE)
271 SettingsAddNumberForm* pForm = new (std::nothrow) SettingsAddNumberForm(SettingsAddNumberForm::FORMTYPE_AUTO_AREA_CODE);
273 pSceneManager->AddSceneEventListener(sceneId, *pForm);
276 else if (formId == IDL_FORM_ADD_REJECT_MSG)
278 SettingsEditRejectMsgForm* pForm = new (std::nothrow) SettingsEditRejectMsgForm(SettingsEditRejectMsgForm::FORMMODE_NEW_MESSAGE);
280 pSceneManager->AddSceneEventListener(sceneId, *pForm);
283 else if (formId == IDL_FORM_EDIT_REJECT_MSG)
285 SettingsEditRejectMsgForm* pForm = new (std::nothrow) SettingsEditRejectMsgForm(SettingsEditRejectMsgForm::FORMMODE_EDIT_MESSAGE);
287 pSceneManager->AddSceneEventListener(sceneId, *pForm);
290 else if (formId == IDL_FORM_FORWARD_TO_NUMBER)
292 SettingsForwardToNumberForm* pForm = new (std::nothrow) SettingsForwardToNumberForm(SettingsForwardToNumberForm::FORWARDCONDITION);
294 pSceneManager->AddSceneEventListener(sceneId, *pForm);
297 else if (formId == IDL_FORM_NOREPLY_FORWARD_TO_NUMBER)
299 SettingsForwardToNumberForm* pForm = new (std::nothrow) SettingsForwardToNumberForm(SettingsForwardToNumberForm::FORWARDCONDITION_NOREPLY);
301 pSceneManager->AddSceneEventListener(sceneId, *pForm);
304 else if (formId == IDL_FORM_SCENE_SET_BARRING_PWD)
306 SettingsBarringPwdForm* pForm = new (std::nothrow) SettingsBarringPwdForm();
308 pSceneManager->AddSceneEventListener(sceneId, *pForm);
311 else if (formId == IDL_FORM_DEL_NUMBER)
313 SettingsDeleteListForm* pForm = new (std::nothrow) SettingsDeleteListForm(SettingsDeleteListForm::LISTOF_NUMBERS);
315 pSceneManager->AddSceneEventListener(sceneId, *pForm);
318 else if (formId == IDL_FORM_DEL_MESSAGE)
320 SettingsDeleteListForm* pForm = new (std::nothrow) SettingsDeleteListForm(SettingsDeleteListForm::LISTOF_MESSAGES);
322 pSceneManager->AddSceneEventListener(sceneId, *pForm);