FreeCalypso > hg > fc-tourmaline
comparison src/ui/bmi/mmiBookPhonebook.c @ 3:67bfe9f274f6
src/ui: import of src/ui3 from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:33:10 +0000 |
parents | |
children | c0052fe355d3 |
comparison
equal
deleted
inserted
replaced
2:3a14ee9a9843 | 3:67bfe9f274f6 |
---|---|
1 /******************************************************************************* | |
2 | |
3 CONDAT (UK) | |
4 | |
5 ******************************************************************************** | |
6 | |
7 This software product is the property of Condat (UK) Ltd and may not be | |
8 disclosed to any third party without the express permission of the owner. | |
9 | |
10 ******************************************************************************** | |
11 | |
12 $Project name: Basic MMI | |
13 $Project code: BMI (6349) | |
14 $Module: PhoneBook | |
15 $File: MmiBookPhoneBook.c | |
16 $Revision: 1.0 | |
17 | |
18 $Author: Condat(UK) | |
19 $Date: 25/10/00 | |
20 | |
21 ******************************************************************************** | |
22 | |
23 Description | |
24 | |
25 This module provides the basic phone book functionality | |
26 | |
27 | |
28 ******************************************************************************** | |
29 $History: MmiBookPhoneBook.c | |
30 CRR: 25302 - xpradipg 10 Nov 2004 | |
31 Description: Should be able to select the number fro the phonebook while | |
32 sending MMS/EMS. | |
33 Solution: The new feature to select the number from phonebook while sending | |
34 sending MMS/EMS. | |
35 Solution: The new feature to select the number from phonebook while sending | |
36 | |
37 Aug 16, 2004 REF: CRR 24323 Deepa M.D | |
38 Bug:Clenup of sprintf used for tracing | |
39 Fix:Replace the char buf[]; sprintf (buf, "...", ...); TRACE_EVENT (buf); statements by TRACE_EVENT_PX | |
40 | |
41 | |
42 Sep 29, 2004 REF: CRR 25041 xvilliva | |
43 Bug: add new entry in the FDN , phone gets rebooted. | |
44 Fix: The global variable "menuFDN" is reset while menu is destroyed. | |
45 | |
46 Jul 21, 2004 REF: CRR 13348 xvilliva | |
47 Bug: After selecting HPLMN manually, the idle screen is not shown. | |
48 Fix: After phonebook menu is created, we store the window handle in a | |
49 global. | |
50 | |
51 | |
52 25/10/00 Original Condat(UK) BMI version. | |
53 | |
54 $End | |
55 | |
56 *******************************************************************************/ | |
57 | |
58 | |
59 /****************************************************************************** | |
60 | |
61 Include Files | |
62 | |
63 *******************************************************************************/ | |
64 #define ENTITY_MFW | |
65 | |
66 /* includes */ | |
67 #include <string.h> | |
68 #include <stdio.h> | |
69 #include <stdlib.h> | |
70 | |
71 #if defined (NEW_FRAME) | |
72 | |
73 #include "typedefs.h" | |
74 #include "vsi.h" | |
75 #include "pei.h" | |
76 #include "custom.h" | |
77 #include "gsm.h" | |
78 | |
79 #else | |
80 | |
81 #include "STDDEFS.H" | |
82 #include "custom.h" | |
83 #include "gsm.h" | |
84 #include "vsi.h" | |
85 | |
86 #endif | |
87 | |
88 #include "mfw_sys.h" | |
89 | |
90 #include "mfw_mfw.h" | |
91 #include "mfw_win.h" | |
92 #include "mfw_kbd.h" | |
93 #include "mfw_lng.h" | |
94 /* SPR#1428 - SH - New Editor changes */ | |
95 #ifndef NEW_EDITOR | |
96 #include "mfw_edt.h" | |
97 #endif | |
98 #include "mfw_icn.h" | |
99 #include "mfw_mnu.h" | |
100 #include "mfw_tim.h" | |
101 | |
102 #include "mfw_sim.h" | |
103 #include "mfw_cm.h" | |
104 #include "mfw_nm.h" | |
105 #include "mfw_phb.h" | |
106 #include "mfw_mme.h" | |
107 #include "mfw_sat.h" | |
108 #include "mfw_sms.h" | |
109 | |
110 #include "dspl.h" | |
111 | |
112 #include "ksd.h" | |
113 #include "psa.h" | |
114 | |
115 #include "MmiMain.h" | |
116 #include "MmiBookController.h" | |
117 #include "MmiDummy.h" | |
118 #include "MmiDialogs.h" | |
119 #include "MmiLists.h" | |
120 | |
121 | |
122 | |
123 #include "MmiMenu.h" | |
124 #include "mmiCall.h" | |
125 #include "Mmiicons.h" | |
126 #include "MmiIdle.h" | |
127 | |
128 #include "MmiSoftKeys.h" | |
129 #include "MmiSounds.h" | |
130 #include "MmiIdle.h" | |
131 #include "MmiNetwork.h" | |
132 #include "mmiSat_i.h" | |
133 #include "MmiAoc.h" | |
134 | |
135 #include "gdi.h" | |
136 #include "audio.h" | |
137 | |
138 #include "cus_aci.h" | |
139 #include "mfw_ffs.h" | |
140 #include "MmiTimers.h" | |
141 | |
142 | |
143 | |
144 | |
145 #include "MmiBookShared.h" | |
146 #include "MmiBookController.h" | |
147 | |
148 #include "mmiColours.h" | |
149 | |
150 //Jul 21, 2004 REF: CRR 13348 xvilliva | |
151 //This is a global variable used to store the handle, when | |
152 //phonebook menu is created. | |
153 T_MFW_HND gPhbkMenu = NULL; | |
154 //Sep 29, 2004 REF: CRR 25041 xvilliva | |
155 extern int menuFDN; | |
156 | |
157 | |
158 /******************************************************************************* | |
159 | |
160 Private Methods | |
161 | |
162 *******************************************************************************/ | |
163 | |
164 /******************************************************************************* | |
165 | |
166 $Function: bookPhonebookDialog | |
167 | |
168 $Description: Dialog function for the phone book application | |
169 | |
170 $Returns: none | |
171 | |
172 $Arguments: win, window handle | |
173 event, event to be handled | |
174 value, not used | |
175 parameter, reason for call | |
176 | |
177 *******************************************************************************/ | |
178 | |
179 static void bookPhonebookDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter ) | |
180 { | |
181 T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; | |
182 T_phbk *data = (T_phbk *) win_data->user; | |
183 SHORT *reason = (SHORT *) parameter; | |
184 | |
185 TRACE_FUNCTION ("bookPhonebookDialog()"); | |
186 switch (event) | |
187 { | |
188 case PHBK_INIT: | |
189 { | |
190 /* Initialise the phone book application. | |
191 Note that we need to deal with a number of different | |
192 initialisation types, depending on the reason given | |
193 */ | |
194 memset( data->edt_buf_name, '\0', sizeof( data->edt_buf_name ) ); | |
195 memset( data->edt_buf_number, '\0', sizeof( data->edt_buf_number ) ); | |
196 | |
197 /* SPR#1428 - SH - New Editor changes */ | |
198 #ifndef NEW_EDITOR | |
199 /* No longer needed for NEW_EDITOR - attributes are initialised when editors created*/ | |
200 bookSetEditAttributes( PHONEBOOK_DLG_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, | |
201 (char *) data->edt_buf_name, MAX_ALPHA_LEN, &data->edt_attr_name ); | |
202 bookSetEditAttributes( PHONEBOOK_DLG_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, | |
203 (char *) data->edt_buf_number, MAX_ALPHA_LEN, &data->edt_attr_number ); | |
204 #endif | |
205 | |
206 /* deal with the different initialisation types | |
207 */ | |
208 if ((bookPhoneBookLoading()==BOOK_FAILURE)&&(( *reason )!=PhbkMainMenu)) | |
209 { | |
210 T_DISPLAY_DATA display_info; | |
211 | |
212 dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TxtPleaseWait, TxtNull , COLOUR_STATUS_WAIT); | |
213 dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)NULL, THREE_SECS, KEY_CLEAR ); | |
214 | |
215 /* Call Info Screen | |
216 */ | |
217 info_dialog( idle_get_window(), &display_info ); | |
218 | |
219 bookPhonebookDestroy(data->win); | |
220 return; | |
221 } | |
222 switch ( *reason ) | |
223 { | |
224 case PhbkNormal: | |
225 { | |
226 /* Normal initialisation | |
227 */ | |
228 data->current.status.book = bookActiveBook(READ); | |
229 data->current.index = 1; | |
230 data->menu_main_win = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason); | |
231 data->root_win = data->menu_main_win; | |
232 } | |
233 break; | |
234 | |
235 case PhbkMainMenu: | |
236 { | |
237 /* Normal initialisation | |
238 */ | |
239 data->current.status.book = bookActiveBook(READ); | |
240 data->current.index = 1; | |
241 data->menu_main_win = bookMenuStart( data->win, bookMainMenuAttributes(), *reason); | |
242 data->root_win = data->menu_main_win; | |
243 } | |
244 break; | |
245 | |
246 case PhbkReplyListNormal: | |
247 { | |
248 TRACE_EVENT ("PhbkReplyListNormal"); | |
249 | |
250 /* reply list | |
251 */ | |
252 bookCallListStart(win,PHB_LRN); | |
253 } | |
254 break; | |
255 case PhbkMissedCallsListNormal: | |
256 { | |
257 /* reply list | |
258 */ | |
259 bookCallListStart(win,PHB_LMN); | |
260 } | |
261 break; | |
262 | |
263 case PhbkRedialListNormal: | |
264 { | |
265 /* Redial list | |
266 */ | |
267 bookCallListStart(win,PHB_LDN); | |
268 } | |
269 break; | |
270 | |
271 case PhbkNameEnterIdle: | |
272 { | |
273 /* Normal initialisation | |
274 */ | |
275 data->current.status.book = bookActiveBook(READ); | |
276 data->current.index = 1; | |
277 data->menu_main_win = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason); | |
278 data->root_win = data->menu_main_win; | |
279 data->phbk->UpdateAction = ADD_FROM_IDLE; | |
280 } | |
281 break; | |
282 | |
283 case PhbkSearchNormal : | |
284 { | |
285 /* Search window | |
286 */ | |
287 data->root_win = data->phbk->search_win; | |
288 } | |
289 break; | |
290 | |
291 case PhbkFromSms : | |
292 { | |
293 /* Invoked from within SMS, need to remember this | |
294 */ | |
295 data->phbk->fromSMS = TRUE; | |
296 data->root_win = data->phbk->search_win; | |
297 data->phbk->current.KindOfSearch = SEARCH_BY_NAME; | |
298 data->phbk->current.status.book = bookActiveBook(READ); | |
299 data->phbk->search_win = bookSearchStart( data->phbk->win ); | |
300 | |
301 } | |
302 break; | |
303 //CRR: 25302 - xpradipg 10 Nov 2004 | |
304 //New case added to handle the retrival of number from MMS/EMS | |
305 case PhbkFromMms : | |
306 { | |
307 /* Invoked from within MMS/EMS, need to remember this | |
308 */ | |
309 data->phbk->fromMmsEms = TRUE; | |
310 data->root_win = data->phbk->search_win; | |
311 data->phbk->current.KindOfSearch = SEARCH_BY_NAME; | |
312 data->phbk->current.status.book = bookActiveBook(READ); | |
313 data->phbk->search_win = bookSearchStart( data->phbk->win ); | |
314 | |
315 } | |
316 break; | |
317 | |
318 /*SH*/ | |
319 case PhbkFromSmsSC : | |
320 { | |
321 /* Invoked from within SMS Service centre, need to remember this | |
322 */ | |
323 data->phbk->fromSMSSC = TRUE; | |
324 data->root_win = data->phbk->search_win; | |
325 data->phbk->current.KindOfSearch = SEARCH_BY_NAME; | |
326 data->phbk->current.status.book = bookActiveBook(READ); | |
327 data->phbk->search_win = bookSearchStart( data->phbk->win ); | |
328 | |
329 } | |
330 break; | |
331 | |
332 case PhbkFromDivert: | |
333 { | |
334 /* Invoked from within Divert, need to remember this | |
335 */ | |
336 data->phbk->fromDivert = TRUE; | |
337 data->root_win = data->phbk->search_win; | |
338 data->phbk->current.KindOfSearch = SEARCH_BY_NAME; | |
339 data->phbk->current.status.book = bookActiveBook(READ); | |
340 data->phbk->search_win = bookSearchStart( data->phbk->win ); | |
341 | |
342 } | |
343 | |
344 break; | |
345 /*SPR 1392, initialisation from call deflection*/ | |
346 case PhbkFromDeflect: | |
347 { | |
348 /* Invoked from within Divert, need to remember this | |
349 */ | |
350 data->phbk->fromDeflect = TRUE; | |
351 data->root_win = data->phbk->search_win; | |
352 data->phbk->current.KindOfSearch = SEARCH_BY_NAME; | |
353 data->phbk->current.status.book = bookActiveBook(READ); | |
354 data->phbk->search_win = bookSearchStart( data->phbk->win ); | |
355 | |
356 } | |
357 | |
358 break; | |
359 | |
360 default: | |
361 { | |
362 /* No default action required | |
363 */ | |
364 } | |
365 } | |
366 } | |
367 break; | |
368 case PHBK_SEND_NUMBER: | |
369 TRACE_EVENT ("PHBK_SEND_NUMBER"); | |
370 /***************************Go-lite Optimization changes Start***********************/ | |
371 //Aug 16, 2004 REF: CRR 24323 Deepa M.D | |
372 TRACE_EVENT_P3 ("win %p parameter %s data->phbk %p",win,(char*)parameter,data->phbk); | |
373 /***************************Go-lite Optimization changes end***********************/ | |
374 strncpy( data->phbk->edt_buf_number, (char*)parameter, PHB_MAX_LEN ); | |
375 break; | |
376 default: | |
377 { | |
378 /* No default action required | |
379 */ | |
380 } | |
381 } | |
382 } | |
383 | |
384 | |
385 | |
386 | |
387 | |
388 | |
389 | |
390 | |
391 | |
392 /******************************************************************************* | |
393 | |
394 $Function: bookPhonebookWindowCB | |
395 | |
396 $Description: Window call back for the phone book application | |
397 | |
398 $Returns: MFW_EVENT_CONSUMED if event is MfwWinVisible, otherwise | |
399 MFW_EVENT_PASSED | |
400 | |
401 $Arguments: e, event, w, window handle | |
402 | |
403 *******************************************************************************/ | |
404 | |
405 static int bookPhonebookWindowCB ( MfwEvt e, MfwWin *w ) | |
406 { | |
407 TRACE_FUNCTION ("bookPhonebookWindowCB()"); | |
408 return ( e == MfwWinVisible ) ? MFW_EVENT_CONSUMED : MFW_EVENT_PASSED; | |
409 } | |
410 | |
411 | |
412 | |
413 | |
414 | |
415 | |
416 | |
417 | |
418 /******************************************************************************* | |
419 | |
420 $Function: bookPhonebookCreate | |
421 | |
422 $Description: Create the phone book application | |
423 | |
424 $Returns: Handle of the newly created window or NULL if error | |
425 | |
426 $Arguments: parent, handle of parent window | |
427 | |
428 *******************************************************************************/ | |
429 | |
430 static T_MFW_HND bookPhonebookCreate( MfwHnd parent ) | |
431 { | |
432 T_MFW_WIN *win_data; | |
433 T_phbk *data; | |
434 | |
435 TRACE_FUNCTION ("bookPhonebookCreate()"); | |
436 | |
437 if ( ( data = (T_phbk *) ALLOC_MEMORY( sizeof( T_phbk ) ) ) == NULL ) | |
438 return NULL; | |
439 | |
440 if ( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookPhonebookWindowCB ) ) == NULL ) | |
441 { | |
442 FREE_MEMORY( (void *) data, sizeof( T_phbk ) ); | |
443 return NULL; | |
444 } | |
445 | |
446 /* Create window handler | |
447 */ | |
448 data->mmi_control.dialog = (T_DIALOG_FUNC) bookPhonebookDialog; | |
449 data->mmi_control.data = data; | |
450 win_data = ((T_MFW_HDR *)data->win)->data; | |
451 win_data->user = (void *)data; | |
452 winShow(data->win); | |
453 | |
454 /* initialise the options structure | |
455 */ | |
456 data->root_win = 0; | |
457 data->menu_main_win = 0; | |
458 data->calls_list_win = 0; | |
459 data->menu_options_win = 0; | |
460 data->menu_options_win_2 = 0; | |
461 data->menu_call_options_win = 0; | |
462 data->menu_call_options_win_2 = 0; | |
463 data->name_details_win = 0; | |
464 data->search_win = 0; | |
465 data->fromSMS = FALSE; | |
466 data->fromSMSSC = FALSE; | |
467 data->fromDivert = FALSE; | |
468 data->fromDeflect = FALSE;/*SPR 1392*/ | |
469 data->parent_win = parent; | |
470 data->phbk = data; | |
471 | |
472 /* return window handle | |
473 */ | |
474 return data->win; | |
475 } | |
476 | |
477 | |
478 | |
479 | |
480 | |
481 /******************************************************************************* | |
482 | |
483 Public methods | |
484 | |
485 *******************************************************************************/ | |
486 | |
487 /******************************************************************************* | |
488 | |
489 $Function: bookPhonebookStart | |
490 | |
491 $Description: Starts up the phone book application | |
492 | |
493 $Returns: Handle of window or NULL if error | |
494 | |
495 $Arguments: parent, window, reason, for invocation | |
496 | |
497 *******************************************************************************/ | |
498 | |
499 T_MFW_HND bookPhonebookStart( MfwHnd parent, int reason ) | |
500 { | |
501 T_MFW_HND win; | |
502 | |
503 if ( ( win = bookPhonebookCreate( parent ) ) != NULL ) | |
504 { | |
505 SEND_EVENT( win, PHBK_INIT, 0, (int *) &reason ); | |
506 if(reason == PhbkMainMenu) | |
507 gPhbkMenu = win;//Jul 21, 2004 REF: CRR 13348 xvilliva | |
508 } | |
509 return win; | |
510 } | |
511 | |
512 | |
513 | |
514 | |
515 | |
516 | |
517 /******************************************************************************* | |
518 | |
519 $Function: bookPhonebookDestroy | |
520 | |
521 $Description: Destroys the phone book application | |
522 | |
523 $Returns: none | |
524 | |
525 $Arguments: window, to be destroyed | |
526 | |
527 *******************************************************************************/ | |
528 | |
529 void bookPhonebookDestroy( MfwHnd window ) | |
530 { | |
531 T_MFW_WIN *win = ((T_MFW_HDR *)window)->data; | |
532 T_phbk *data = (T_phbk *) win->user; | |
533 | |
534 TRACE_FUNCTION ("bookPhonebookDestroy()"); | |
535 | |
536 if ( data ) | |
537 { | |
538 /* need to clean up all of the subordinate windows which | |
539 may have been created during the phone book application | |
540 */ | |
541 data->root_win = 0; | |
542 if (data->search_win) | |
543 bookSearchDestroy( data->search_win ); | |
544 | |
545 if (data->menu_main_win) | |
546 bookMenuDestroy(data->menu_main_win); | |
547 | |
548 if (data->calls_list_win) | |
549 bookCallListDestroy(data->calls_list_win); | |
550 | |
551 if (data->menu_options_win) | |
552 bookMenuDestroy(data->menu_options_win); | |
553 | |
554 if (data->menu_options_win_2) | |
555 bookMenuDestroy(data->menu_options_win_2); | |
556 | |
557 if (data->menu_call_options_win) | |
558 bookMenuDestroy(data->menu_call_options_win); | |
559 | |
560 if (data->menu_call_options_win_2) | |
561 { | |
562 menuFDN = 0 ;// Sep 29, 2004 REF: CRR 25041 xvilliva | |
563 bookMenuDestroy(data->menu_call_options_win_2); | |
564 } | |
565 | |
566 if (data->name_details_win) | |
567 bookDetailsDestroy(data->name_details_win); | |
568 | |
569 if (data->input_name_win) | |
570 bookInputDestroy(data->input_name_win); | |
571 | |
572 if (data->input_number_win) | |
573 bookInputDestroy(data->input_number_win); | |
574 | |
575 /* delete the window and free any allocated memory | |
576 */ | |
577 winDelete (data->win); | |
578 FREE_MEMORY( (void *) data, sizeof( T_phbk ) ); | |
579 } | |
580 //Jul 21, 2004 REF: CRR 13348 xvilliva | |
581 //While we destroy the menu assign the handle to NULL. | |
582 gPhbkMenu = NULL; | |
583 | |
584 } | |
585 | |
586 | |
587 /******************************************************************************* | |
588 | |
589 End Of File | |
590 | |
591 *******************************************************************************/ |