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 *******************************************************************************/ |
