FreeCalypso > hg > fc-tourmaline
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ui/bmi/mmiBookPhonebook.c Fri Oct 16 06:33:10 2020 +0000 @@ -0,0 +1,591 @@ +/******************************************************************************* + + CONDAT (UK) + +******************************************************************************** + + This software product is the property of Condat (UK) Ltd and may not be + disclosed to any third party without the express permission of the owner. + +******************************************************************************** + + $Project name: Basic MMI + $Project code: BMI (6349) + $Module: PhoneBook + $File: MmiBookPhoneBook.c + $Revision: 1.0 + + $Author: Condat(UK) + $Date: 25/10/00 + +******************************************************************************** + + Description + + This module provides the basic phone book functionality + + +******************************************************************************** + $History: MmiBookPhoneBook.c + CRR: 25302 - xpradipg 10 Nov 2004 + Description: Should be able to select the number fro the phonebook while + sending MMS/EMS. + Solution: The new feature to select the number from phonebook while sending + sending MMS/EMS. + Solution: The new feature to select the number from phonebook while sending + + Aug 16, 2004 REF: CRR 24323 Deepa M.D + Bug:Clenup of sprintf used for tracing + Fix:Replace the char buf[]; sprintf (buf, "...", ...); TRACE_EVENT (buf); statements by TRACE_EVENT_PX + + + Sep 29, 2004 REF: CRR 25041 xvilliva + Bug: add new entry in the FDN , phone gets rebooted. + Fix: The global variable "menuFDN" is reset while menu is destroyed. + + Jul 21, 2004 REF: CRR 13348 xvilliva + Bug: After selecting HPLMN manually, the idle screen is not shown. + Fix: After phonebook menu is created, we store the window handle in a + global. + + + 25/10/00 Original Condat(UK) BMI version. + + $End + +*******************************************************************************/ + + +/****************************************************************************** + + Include Files + +*******************************************************************************/ +#define ENTITY_MFW + +/* includes */ +#include <string.h> +#include <stdio.h> +#include <stdlib.h> + +#if defined (NEW_FRAME) + +#include "typedefs.h" +#include "vsi.h" +#include "pei.h" +#include "custom.h" +#include "gsm.h" + +#else + +#include "STDDEFS.H" +#include "custom.h" +#include "gsm.h" +#include "vsi.h" + +#endif + +#include "mfw_sys.h" + +#include "mfw_mfw.h" +#include "mfw_win.h" +#include "mfw_kbd.h" +#include "mfw_lng.h" +/* SPR#1428 - SH - New Editor changes */ +#ifndef NEW_EDITOR +#include "mfw_edt.h" +#endif +#include "mfw_icn.h" +#include "mfw_mnu.h" +#include "mfw_tim.h" + +#include "mfw_sim.h" +#include "mfw_cm.h" +#include "mfw_nm.h" +#include "mfw_phb.h" +#include "mfw_mme.h" +#include "mfw_sat.h" +#include "mfw_sms.h" + +#include "dspl.h" + +#include "ksd.h" +#include "psa.h" + +#include "MmiMain.h" +#include "MmiBookController.h" +#include "MmiDummy.h" +#include "MmiDialogs.h" +#include "MmiLists.h" + + + +#include "MmiMenu.h" +#include "mmiCall.h" +#include "Mmiicons.h" +#include "MmiIdle.h" + +#include "MmiSoftKeys.h" +#include "MmiSounds.h" +#include "MmiIdle.h" +#include "MmiNetwork.h" +#include "mmiSat_i.h" +#include "MmiAoc.h" + +#include "gdi.h" +#include "audio.h" + +#include "cus_aci.h" +#include "mfw_ffs.h" +#include "MmiTimers.h" + + + + +#include "MmiBookShared.h" +#include "MmiBookController.h" + +#include "mmiColours.h" + +//Jul 21, 2004 REF: CRR 13348 xvilliva +//This is a global variable used to store the handle, when +//phonebook menu is created. +T_MFW_HND gPhbkMenu = NULL; +//Sep 29, 2004 REF: CRR 25041 xvilliva +extern int menuFDN; + + +/******************************************************************************* + + Private Methods + +*******************************************************************************/ + +/******************************************************************************* + + $Function: bookPhonebookDialog + + $Description: Dialog function for the phone book application + + $Returns: none + + $Arguments: win, window handle + event, event to be handled + value, not used + parameter, reason for call + +*******************************************************************************/ + +static void bookPhonebookDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter ) +{ + T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; + T_phbk *data = (T_phbk *) win_data->user; + SHORT *reason = (SHORT *) parameter; + + TRACE_FUNCTION ("bookPhonebookDialog()"); + switch (event) + { + case PHBK_INIT: + { + /* Initialise the phone book application. + Note that we need to deal with a number of different + initialisation types, depending on the reason given + */ + memset( data->edt_buf_name, '\0', sizeof( data->edt_buf_name ) ); + memset( data->edt_buf_number, '\0', sizeof( data->edt_buf_number ) ); + +/* SPR#1428 - SH - New Editor changes */ +#ifndef NEW_EDITOR + /* No longer needed for NEW_EDITOR - attributes are initialised when editors created*/ + bookSetEditAttributes( PHONEBOOK_DLG_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, + (char *) data->edt_buf_name, MAX_ALPHA_LEN, &data->edt_attr_name ); + bookSetEditAttributes( PHONEBOOK_DLG_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, + (char *) data->edt_buf_number, MAX_ALPHA_LEN, &data->edt_attr_number ); +#endif + + /* deal with the different initialisation types + */ + if ((bookPhoneBookLoading()==BOOK_FAILURE)&&(( *reason )!=PhbkMainMenu)) + { + T_DISPLAY_DATA display_info; + + dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TxtPleaseWait, TxtNull , COLOUR_STATUS_WAIT); + dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)NULL, THREE_SECS, KEY_CLEAR ); + + /* Call Info Screen + */ + info_dialog( idle_get_window(), &display_info ); + + bookPhonebookDestroy(data->win); + return; + } + switch ( *reason ) + { + case PhbkNormal: + { + /* Normal initialisation + */ + data->current.status.book = bookActiveBook(READ); + data->current.index = 1; + data->menu_main_win = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason); + data->root_win = data->menu_main_win; + } + break; + + case PhbkMainMenu: + { + /* Normal initialisation + */ + data->current.status.book = bookActiveBook(READ); + data->current.index = 1; + data->menu_main_win = bookMenuStart( data->win, bookMainMenuAttributes(), *reason); + data->root_win = data->menu_main_win; + } + break; + + case PhbkReplyListNormal: + { + TRACE_EVENT ("PhbkReplyListNormal"); + + /* reply list + */ + bookCallListStart(win,PHB_LRN); + } + break; + case PhbkMissedCallsListNormal: + { + /* reply list + */ + bookCallListStart(win,PHB_LMN); + } + break; + + case PhbkRedialListNormal: + { + /* Redial list + */ + bookCallListStart(win,PHB_LDN); + } + break; + + case PhbkNameEnterIdle: + { + /* Normal initialisation + */ + data->current.status.book = bookActiveBook(READ); + data->current.index = 1; + data->menu_main_win = bookMenuStart( data->win, bookPhonebookMenuAttributes(), *reason); + data->root_win = data->menu_main_win; + data->phbk->UpdateAction = ADD_FROM_IDLE; + } + break; + + case PhbkSearchNormal : + { + /* Search window + */ + data->root_win = data->phbk->search_win; + } + break; + + case PhbkFromSms : + { + /* Invoked from within SMS, need to remember this + */ + data->phbk->fromSMS = TRUE; + data->root_win = data->phbk->search_win; + data->phbk->current.KindOfSearch = SEARCH_BY_NAME; + data->phbk->current.status.book = bookActiveBook(READ); + data->phbk->search_win = bookSearchStart( data->phbk->win ); + + } + break; + //CRR: 25302 - xpradipg 10 Nov 2004 + //New case added to handle the retrival of number from MMS/EMS + case PhbkFromMms : + { + /* Invoked from within MMS/EMS, need to remember this + */ + data->phbk->fromMmsEms = TRUE; + data->root_win = data->phbk->search_win; + data->phbk->current.KindOfSearch = SEARCH_BY_NAME; + data->phbk->current.status.book = bookActiveBook(READ); + data->phbk->search_win = bookSearchStart( data->phbk->win ); + + } + break; + + /*SH*/ + case PhbkFromSmsSC : + { + /* Invoked from within SMS Service centre, need to remember this + */ + data->phbk->fromSMSSC = TRUE; + data->root_win = data->phbk->search_win; + data->phbk->current.KindOfSearch = SEARCH_BY_NAME; + data->phbk->current.status.book = bookActiveBook(READ); + data->phbk->search_win = bookSearchStart( data->phbk->win ); + + } + break; + + case PhbkFromDivert: + { + /* Invoked from within Divert, need to remember this + */ + data->phbk->fromDivert = TRUE; + data->root_win = data->phbk->search_win; + data->phbk->current.KindOfSearch = SEARCH_BY_NAME; + data->phbk->current.status.book = bookActiveBook(READ); + data->phbk->search_win = bookSearchStart( data->phbk->win ); + + } + + break; + /*SPR 1392, initialisation from call deflection*/ + case PhbkFromDeflect: + { + /* Invoked from within Divert, need to remember this + */ + data->phbk->fromDeflect = TRUE; + data->root_win = data->phbk->search_win; + data->phbk->current.KindOfSearch = SEARCH_BY_NAME; + data->phbk->current.status.book = bookActiveBook(READ); + data->phbk->search_win = bookSearchStart( data->phbk->win ); + + } + + break; + + default: + { + /* No default action required + */ + } + } + } + break; + case PHBK_SEND_NUMBER: + TRACE_EVENT ("PHBK_SEND_NUMBER"); + /***************************Go-lite Optimization changes Start***********************/ + //Aug 16, 2004 REF: CRR 24323 Deepa M.D + TRACE_EVENT_P3 ("win %p parameter %s data->phbk %p",win,(char*)parameter,data->phbk); + /***************************Go-lite Optimization changes end***********************/ + strncpy( data->phbk->edt_buf_number, (char*)parameter, PHB_MAX_LEN ); + break; + default: + { + /* No default action required + */ + } + } +} + + + + + + + + + +/******************************************************************************* + + $Function: bookPhonebookWindowCB + + $Description: Window call back for the phone book application + + $Returns: MFW_EVENT_CONSUMED if event is MfwWinVisible, otherwise + MFW_EVENT_PASSED + + $Arguments: e, event, w, window handle + +*******************************************************************************/ + +static int bookPhonebookWindowCB ( MfwEvt e, MfwWin *w ) +{ + TRACE_FUNCTION ("bookPhonebookWindowCB()"); + return ( e == MfwWinVisible ) ? MFW_EVENT_CONSUMED : MFW_EVENT_PASSED; +} + + + + + + + + +/******************************************************************************* + + $Function: bookPhonebookCreate + + $Description: Create the phone book application + + $Returns: Handle of the newly created window or NULL if error + + $Arguments: parent, handle of parent window + +*******************************************************************************/ + +static T_MFW_HND bookPhonebookCreate( MfwHnd parent ) +{ + T_MFW_WIN *win_data; + T_phbk *data; + + TRACE_FUNCTION ("bookPhonebookCreate()"); + + if ( ( data = (T_phbk *) ALLOC_MEMORY( sizeof( T_phbk ) ) ) == NULL ) + return NULL; + + if ( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookPhonebookWindowCB ) ) == NULL ) + { + FREE_MEMORY( (void *) data, sizeof( T_phbk ) ); + return NULL; + } + + /* Create window handler + */ + data->mmi_control.dialog = (T_DIALOG_FUNC) bookPhonebookDialog; + data->mmi_control.data = data; + win_data = ((T_MFW_HDR *)data->win)->data; + win_data->user = (void *)data; + winShow(data->win); + + /* initialise the options structure + */ + data->root_win = 0; + data->menu_main_win = 0; + data->calls_list_win = 0; + data->menu_options_win = 0; + data->menu_options_win_2 = 0; + data->menu_call_options_win = 0; + data->menu_call_options_win_2 = 0; + data->name_details_win = 0; + data->search_win = 0; + data->fromSMS = FALSE; + data->fromSMSSC = FALSE; + data->fromDivert = FALSE; + data->fromDeflect = FALSE;/*SPR 1392*/ + data->parent_win = parent; + data->phbk = data; + + /* return window handle + */ + return data->win; +} + + + + + +/******************************************************************************* + + Public methods + +*******************************************************************************/ + +/******************************************************************************* + + $Function: bookPhonebookStart + + $Description: Starts up the phone book application + + $Returns: Handle of window or NULL if error + + $Arguments: parent, window, reason, for invocation + +*******************************************************************************/ + +T_MFW_HND bookPhonebookStart( MfwHnd parent, int reason ) +{ + T_MFW_HND win; + + if ( ( win = bookPhonebookCreate( parent ) ) != NULL ) + { + SEND_EVENT( win, PHBK_INIT, 0, (int *) &reason ); + if(reason == PhbkMainMenu) + gPhbkMenu = win;//Jul 21, 2004 REF: CRR 13348 xvilliva + } + return win; +} + + + + + + +/******************************************************************************* + + $Function: bookPhonebookDestroy + + $Description: Destroys the phone book application + + $Returns: none + + $Arguments: window, to be destroyed + +*******************************************************************************/ + +void bookPhonebookDestroy( MfwHnd window ) +{ + T_MFW_WIN *win = ((T_MFW_HDR *)window)->data; + T_phbk *data = (T_phbk *) win->user; + + TRACE_FUNCTION ("bookPhonebookDestroy()"); + + if ( data ) + { + /* need to clean up all of the subordinate windows which + may have been created during the phone book application + */ + data->root_win = 0; + if (data->search_win) + bookSearchDestroy( data->search_win ); + + if (data->menu_main_win) + bookMenuDestroy(data->menu_main_win); + + if (data->calls_list_win) + bookCallListDestroy(data->calls_list_win); + + if (data->menu_options_win) + bookMenuDestroy(data->menu_options_win); + + if (data->menu_options_win_2) + bookMenuDestroy(data->menu_options_win_2); + + if (data->menu_call_options_win) + bookMenuDestroy(data->menu_call_options_win); + + if (data->menu_call_options_win_2) + { + menuFDN = 0 ;// Sep 29, 2004 REF: CRR 25041 xvilliva + bookMenuDestroy(data->menu_call_options_win_2); + } + + if (data->name_details_win) + bookDetailsDestroy(data->name_details_win); + + if (data->input_name_win) + bookInputDestroy(data->input_name_win); + + if (data->input_number_win) + bookInputDestroy(data->input_number_win); + + /* delete the window and free any allocated memory + */ + winDelete (data->win); + FREE_MEMORY( (void *) data, sizeof( T_phbk ) ); + } + //Jul 21, 2004 REF: CRR 13348 xvilliva + //While we destroy the menu assign the handle to NULL. + gPhbkMenu = NULL; + +} + + +/******************************************************************************* + + End Of File + +*******************************************************************************/