Tizen 2.0 Release
[apps/osp/Phone.git] / src / PhnPhoneFormFactory.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 /**
18  * @file    FormFactory.cpp
19  * @brief   Form factory class
20  */
21 #include "PhnPhoneFormFactory.h"
22 #include "PhnSceneRegister.h"
23 //Call forms
24 #include "PhnIncomingCallForm.h"
25 #include "PhnActiveCallForm.h"
26 #include "PhnConfCallerListForm.h"
27 #include "PhnEndCallForm.h"
28 //Settings Forms
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"
41 //Dial Forms
42 #include "PhnDialAppForm.h"
43 #include "PhnLogsDetailForm.h"
44 #include "PhnEmergencyDialForm.h"
45
46 using namespace Tizen::Base;
47 using namespace Tizen::Ui::Controls;
48 using namespace Tizen::Ui::Scenes;
49
50
51
52 FormFactory::FormFactory(void)
53 {
54 }
55
56 FormFactory::~FormFactory(void)
57 {
58 }
59
60 Form*
61 FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
62 {
63         Form* pNewForm = null;
64
65         SceneManager* pSceneManager = SceneManager::GetInstance();
66         AppAssert(pSceneManager != null);
67
68         if (formId == IDL_FORM_DIAL_APP) {
69                 DialAppForm* pForm = new (std::nothrow) DialAppForm();
70                 pForm->Initialize();
71                 //pSceneManager->AddSceneEventListener(sceneId, *pForm);
72                 pNewForm = pForm;
73         } else if (formId == IDL_FORM_CALL_LOG_DETAIL) {
74                 DlLogsDetailForm* pForm = new (std::nothrow) DlLogsDetailForm();
75                 pForm->Initialize();
76                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
77                 pNewForm = pForm;
78         } else if(formId == IDL_FORM_EMERGENCY_DIAL)
79         {
80                 EmergencyDialForm* pForm = new (std::nothrow) EmergencyDialForm();
81                 pForm->Initialize();
82                 //pSceneManager->AddSceneEventListener(sceneId, *pForm);
83                 pNewForm = pForm;
84         }
85         else if (formId.StartsWith(IDL_FORM_SETTINGS_PREFIX,0) == true)
86         {
87                 pNewForm = CreateCallSettingsForm(formId, sceneId);
88         }
89         else
90         {
91                 pNewForm = CreateVoiceCallForm(formId, sceneId);
92         }
93
94         return pNewForm;
95 }
96
97 Form*
98 FormFactory::CreateVoiceCallForm(const String& formId, const SceneId& sceneId)
99 {
100         SceneManager* pSceneManager = SceneManager::GetInstance();
101         AppAssert(pSceneManager != null);
102
103         BaseForm* pNewForm = null;
104
105         if (formId == IDL_FORM_OUTCALL)
106         {
107                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_OUTGOINGCALL);
108                 pForm->Initialize();
109                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
110                 pNewForm = pForm;
111         }
112         else if (formId == IDL_FORM_OUT_EMERGENCYCALL)
113         {
114                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_EMERGENCYOUTGOINGCALL);
115                 pForm->Initialize();
116                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
117                 pNewForm = pForm;
118         }
119         else if (formId == IDL_FORM_ACTIVECALL)
120         {
121                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_ACTIVECALL);
122                 pForm->Initialize();
123                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
124                 pNewForm = pForm;
125         }
126         else if (formId == IDL_FORM_ACTIVE_EMERGENCYCALL)
127         {
128                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_EMERGENCYACTIVECALL);
129                 pForm->Initialize();
130                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
131                 pNewForm = pForm;
132         }
133         else if (formId == IDL_FORM_INCOMINGCALL)
134         {
135                 IncomingCallForm* pForm = new (std::nothrow) IncomingCallForm();
136                 pForm->Initialize();
137                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
138                 pNewForm = pForm;
139         }
140         else if (formId == IDL_FORM_ENDCALL)
141         {
142                 EndCallForm* pForm = new (std::nothrow) EndCallForm();
143                 pForm->Initialize();
144                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
145                 pNewForm = pForm;
146         }
147         else if (formId == IDL_FORM_CONFCALLLIST)
148         {
149                 ConfCallerListForm* pForm = new (std::nothrow) ConfCallerListForm();
150                 pForm->Initialize();
151                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
152                 pNewForm = pForm;
153         }
154         else if (formId == IDL_FORM_MULTIPLEACTIVECALL)
155         {
156                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_MULTIPLECALLS);
157                 pForm->Initialize();
158                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
159                 pNewForm = pForm;
160         }
161         else if (formId == IDL_FORM_CONFCALL)
162         {
163                 ActiveCallForm* pForm = new (std::nothrow) ActiveCallForm(FORMTYPE_ACTIVECONFCALL);
164                 pForm->Initialize();
165                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
166                 pNewForm = pForm;
167         }
168
169         return pNewForm;
170 }
171
172 Form*
173 FormFactory::CreateCallSettingsForm(const String& formId, const SceneId& sceneId)
174 {
175         SceneManager* pSceneManager = SceneManager::GetInstance();
176         AppAssert(pSceneManager != null);
177
178         Form* pNewForm = null;
179
180         if (formId == IDL_FORM_MAIN_SETTING_MENU)
181         {
182                 SettingsMainMenuForm* pForm = new (std::nothrow) SettingsMainMenuForm();
183                 pForm->Initialize();
184                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
185                 pNewForm = pForm;
186         }
187         else if (formId == IDL_FORM_CALL_REJECTLIST_MENU)
188         {
189                 SettingsRejectListForm* pForm = new (std::nothrow) SettingsRejectListForm();
190                 pForm->Initialize();
191                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
192                 pNewForm = pForm;
193         }
194         else if (formId == IDL_FORM_CALL_REJECTMSGS_MENU)
195         {
196                 SettingsRejectMsgsForm* pForm = new (std::nothrow) SettingsRejectMsgsForm();
197                 pForm->Initialize();
198                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
199                 pNewForm = pForm;
200         }
201         else if (formId == IDL_FORM_SPEED_DIAL)
202         {
203                 SettingsSpeedDialForm* pForm = new (std::nothrow) SettingsSpeedDialForm();
204                 pForm->Initialize();
205                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
206                 pNewForm = pForm;
207         }
208         else if (formId == IDL_FORM_MORE_OPTIONS)
209         {
210                 SettingsMoreOptionsForm* pForm = new (std::nothrow) SettingsMoreOptionsForm();
211                 pForm->Initialize();
212                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
213                 pNewForm = pForm;
214         }
215         else if (formId == IDL_FORM_CALL_STATUSTONES)
216         {
217                 SettingsCallStatusTonesForm* pForm = new (std::nothrow) SettingsCallStatusTonesForm();
218                 pForm->Initialize();
219                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
220                 pNewForm = pForm;
221         }
222         else if (formId == IDL_FORM_CALLTYPE_FORWARD)
223         {
224                 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
225                         SettingsCallForwardWaitBarrForm::FORMTYPE_CALLFORWARDING_TYPE);
226                 pForm->Initialize();
227                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
228                 pNewForm = pForm;
229         }
230         else if (formId == IDL_FORM_CALL_FORWARD_OPTIONS)
231         {
232                 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
233                         SettingsCallForwardWaitBarrForm::FORMTYPE_VOICE_CALLFORWARDING);
234                 pForm->Initialize();
235                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
236                 pNewForm = pForm;
237         }
238         else if (formId == IDL_FORM_CALLTYPE_BARRING)
239         {
240                 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
241                         SettingsCallForwardWaitBarrForm::FORMTYPE_CALLBARRING_TYPE);
242                 pForm->Initialize();
243                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
244                 pNewForm = pForm;
245         }
246         else if (formId == IDL_FORM_CALL_BARRING_OPTIONS)
247         {
248                 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
249                         SettingsCallForwardWaitBarrForm::FORMTYPE_VOICE_CALLBARRING);
250                 pForm->Initialize();
251                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
252                 pNewForm = pForm;
253         }
254         else if (formId == IDL_FORM_CALL_WAITING_OPTIONS)
255         {
256                 SettingsCallForwardWaitBarrForm* pForm = new (std::nothrow) SettingsCallForwardWaitBarrForm(
257                         SettingsCallForwardWaitBarrForm::FORMTYPE_CALL_WAITING);
258                 pForm->Initialize();
259                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
260                 pNewForm = pForm;
261         }
262         else if (formId == IDL_FORM_ADD_REJECT_NUMBER)
263         {
264                 SettingsAddNumberForm* pForm = new (std::nothrow) SettingsAddNumberForm(SettingsAddNumberForm::FORMTYPE_NUMBER_TO_REJECT);
265                 pForm->Initialize();
266                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
267                 pNewForm = pForm;
268         }
269         else if (formId == IDL_FORM_AUTO_AREA_CODE)
270         {
271                 SettingsAddNumberForm* pForm = new (std::nothrow) SettingsAddNumberForm(SettingsAddNumberForm::FORMTYPE_AUTO_AREA_CODE);
272                 pForm->Initialize();
273                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
274                 pNewForm = pForm;
275         }
276         else if (formId == IDL_FORM_ADD_REJECT_MSG)
277         {
278                 SettingsEditRejectMsgForm* pForm = new (std::nothrow) SettingsEditRejectMsgForm(SettingsEditRejectMsgForm::FORMMODE_NEW_MESSAGE);
279                 pForm->Initialize();
280                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
281                 pNewForm = pForm;
282         }
283         else if (formId == IDL_FORM_EDIT_REJECT_MSG)
284         {
285                 SettingsEditRejectMsgForm* pForm = new (std::nothrow) SettingsEditRejectMsgForm(SettingsEditRejectMsgForm::FORMMODE_EDIT_MESSAGE);
286                 pForm->Initialize();
287                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
288                 pNewForm = pForm;
289         }
290         else if (formId == IDL_FORM_FORWARD_TO_NUMBER)
291         {
292                 SettingsForwardToNumberForm* pForm = new (std::nothrow) SettingsForwardToNumberForm(SettingsForwardToNumberForm::FORWARDCONDITION);
293                 pForm->Initialize();
294                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
295                 pNewForm = pForm;
296         }
297         else if (formId == IDL_FORM_NOREPLY_FORWARD_TO_NUMBER)
298         {
299                 SettingsForwardToNumberForm* pForm = new (std::nothrow) SettingsForwardToNumberForm(SettingsForwardToNumberForm::FORWARDCONDITION_NOREPLY);
300                 pForm->Initialize();
301                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
302                 pNewForm = pForm;
303         }
304         else if (formId == IDL_FORM_SCENE_SET_BARRING_PWD)
305         {
306                 SettingsBarringPwdForm* pForm = new (std::nothrow) SettingsBarringPwdForm();
307                 pForm->Initialize();
308                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
309                 pNewForm = pForm;
310         }
311         else if (formId == IDL_FORM_DEL_NUMBER)
312         {
313                 SettingsDeleteListForm* pForm = new (std::nothrow) SettingsDeleteListForm(SettingsDeleteListForm::LISTOF_NUMBERS);
314                 pForm->Initialize();
315                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
316                 pNewForm = pForm;
317         }
318         else if (formId == IDL_FORM_DEL_MESSAGE)
319         {
320                 SettingsDeleteListForm* pForm = new (std::nothrow) SettingsDeleteListForm(SettingsDeleteListForm::LISTOF_MESSAGES);
321                 pForm->Initialize();
322                 pSceneManager->AddSceneEventListener(sceneId, *pForm);
323                 pNewForm = pForm;
324         }
325
326         return pNewForm;
327 }