FreeCalypso > hg > tcs211-fcmodem
diff g23m/condat/ms/src/bmi/MmiSettings.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/g23m/condat/ms/src/bmi/MmiSettings.c Mon Jun 01 03:24:05 2015 +0000 @@ -0,0 +1,1453 @@ +/******************************************************************************* + + 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: Settings + $File: MmiSettings.c + $Revision: 1.0 + + $Author: Condat(UK) + $Date: 25/10/00 + +******************************************************************************** + + Description: + + +******************************************************************************** + $History: MmiSettings.c + + May 04, 2005 REF: CRR 30285 x0021334 + Description: SMS Status Request in idle and dedicated mode (using Menu) setting does not work + Solution: status of sms status request is read and focus is set accrodingly. + + March 2, 2005 REF: CRR 11536 x0018858 + Description: Reply path not supported while sending a reply. + Solution: Added menu option for the reply path. + + Aug 25, 2004 REF: CRR 24904 Deepa M.D + Bug:cleanup compile switches used for Go-lite + Fix:COLOURDISPLAY compiler switch has been added to the functions which are + used only for the normal color build. + + xrashmic 7 Dec, 2004 MMI-SPR-23965 + Description: Not able to extract the objects in EMS message + Solution: Extract and store the objects in the Object Manager + + xrashmic 29 Nov, 2004 MMI-SPR-26161 + Description: The downloaded object through wap was not visible to the MMI + Solution: The downloaded wap object is available in the object manager + and can be used by the MMS + + Jul 28, 2004 REF: CRR 20899 xkundadu + Description: No identification for user whether 'Any-key-Answer' is On/Off + Solution: The menu focus will be on the 'On' menu if the 'Any key + answer' is enabled, otherwise focus will be on 'Off' menu item. + Changed "submenu" to "menuItem" to call a function, to set focus to + the selected option.Added function settingsFocusCurSelAnyKeyAns() + to set the focus to selected item. + + + Jul 29, 2004 REF: CRR 20898 xkundadu + Description: No identification for user whether 'Auto-Answer' is On/Off + Solution: The menu focus will be on the 'On' menu if the 'Auto + answer' is enabled, otherwise focus will be on 'Off' menu item. + Changed 'submenu' to 'menuItem' to call a function, which sets the + focus to the selected option. Added the function + settingsFocusCurSelAutoAns() to set the focus to selected item. + + + Jul 22,2004 CRR:20896 xrashmic - SASKEN + Description: The current time format is not highlighted + Fix: Instead of providing the submenu directly we call a function + where we set the menu and also higlight the previously selected menu item + +// Issue Number : SPR#12822 on 31/03/04 by vvadiraj + May 10, 2004 REF: CRR 15753 Deepa M.D + Menuitem provided to set the validity period to maximum. +$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 "prim.h" + +#include "mfw_mfw.h" +#include "mfw_win.h" +#include "mfw_kbd.h" +/* SPR#1428 - SH - New Editor changes */ +#ifndef NEW_EDITOR +#include "mfw_edt.h" +#endif +#include "mfw_lng.h" +#include "mfw_tim.h" +#include "mfw_icn.h" +#include "mfw_mnu.h" +#include "mfw_phb.h" +#include "mfw_cm.h" +#include "mfw_sim.h" +#include "mfw_nm.h" +#include "mfw_sat.h" +#include "mfw_phb.h" +#include "ksd.h" +#include "psa.h" +#include "mfw_sms.h" +#include "mfw_cphs.h" +#include "mfw_sat.h" +#include "Mfw_td.h" + +#include "dspl.h" + +#include "MmiMmi.h" +#include "MmiDummy.h" +#include "MmiDialogs.h" +#include "MmiLists.h" +#include "MmiIdle.h" +#include "MmiSoftKeys.h" +#include "Mmiicons.h" +#include "MmiSounds.h" +#include "MmiMenu.h" +#include "MmiMain.h" +#include "MmiStart.h" +#include "MmiPins.h" +#include "MmiSettings.h" +#include "MmiVoiceMemo.h" +#include "mfw_ffs.h" +#include "MmiTimers.h" +#include "MmiResources.h" + +#include "cus_aci.h" + + +#include "mmiColours.h" + +#define CLEAR_BOTTOM_ZONE dspl_Clear( KEY_AREA ); +T_MFW_SMS_INFO SmsConfigData; + +//ADDED BY RAVI - 28-11-2005 +extern UBYTE SmsSend_get_config_data (T_MFW_SMS_INFO *config_data); +// END ADD BY RAVI + +static int winEvent (MfwEvt e, MfwWin *w); + +void confirm (T_MFW_HND win, USHORT event, SHORT value, void * parameter); +void confirm_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason); +static void confirm_dialog(void); +static int confirm_win_cb (T_MFW_EVENT event, T_MFW_WIN * win); +void confirm_destroy (T_MFW_HND own_window); +T_MFW_HND confirm_create (T_MFW_HND parent_window); +void confirm_Exit (T_MFW_HND own_window); +T_MFW_HND confirm_Init (T_MFW_HND parent_window); +void setUserSettings2Default (void); + + +static void (*show) (void); + +static MfwHnd win; /* our window */ +static MmiState nextState; /* next state when finished */ +static DisplayData DisplayInfo; + + + +#define SHOW_CONFIRM 3 +#define ACTIVATE_CONFIRM 4 +#define DEACTIVATE_CONFIRM 5 +#define FACTORY_RESET 6 + +UBYTE reply_path_bit =0; + +typedef struct +{ + T_MMI_CONTROL mmi_control; + T_MFW_HND confirm_win; /* MFW win handler */ + UBYTE local_status; +} T_confirm; + +T_confirm confirm_data; + + +/* + * Settings menu subs: + */ + + + + +#define ON 0 +#define OFF 1 +#define CLEAR 2 + + +typedef struct +{ + UBYTE setting; + UBYTE status; +} T_settings; + +//GW Added for settings not stored in FFS +static int BMIsettings=0; + +typedef enum +{ + ENGLISH = 0, + GERMAN, + AUTOREDIAL, + AUTOANSWER, + ANYKEYANSWER, + CALLTIMERS, + KEYPAD_CLICK, + KEYPAD_DTMF, + KEYPAD_SILENT, + VOICE_MEMO, + MAX +}T_FACTORY_RESET_LIST; + + + +T_settings DEFAULT_SETTINGS[] = +{ + {ENGLISH, ON}, //select the Language:English as a default + {GERMAN, OFF}, + {AUTOREDIAL, OFF}, + {AUTOANSWER, OFF}, + {ANYKEYANSWER, OFF}, + {CALLTIMERS, CLEAR}, + {KEYPAD_CLICK, ON}, //only one of the Keypads are eligible + {KEYPAD_DTMF, OFF}, + {KEYPAD_SILENT, OFF}, + {VOICE_MEMO, CLEAR}, + {MAX, 0xFF} +}; + +/******************************************************************************* + + $Function: SmsValidityPeriod + + $Description: Store the validity period information, selected by the user. + + + $Returns: Execution status + + $Arguments: m - menu handler + i - Menu item selected + +*******************************************************************************/ +int SmsValidityPeriod(MfwMnu* m, MfwMnuItem* i) +{ + T_MFW_SMS_INFO sms_parameter; + UBYTE index = 0; // RAVI - Assigned 0. + T_DISPLAY_DATA DisplayInfo; + int txtId = 0; // RAVI - Assigned 0. + + T_MFW_HND win = mfwParent(mfw_header()); + + TRACE_FUNCTION(">>>> SmsValidityPeriod()"); + + /*SPR#1952 - DS - Show the new period setting on pop-up dialog */ + switch (m->lCursor[m->level]) + { + case 0: + txtId = Txt1Hour; + index = VP_REL_1_HOUR; + break; + case 1: + txtId = Txt12Hours; + index = VP_REL_12_HOURS; + break; + case 2: + txtId = Txt24Hours; + index = VP_REL_24_HOURS; + break; + case 3: + txtId = Txt1Week; + index = VP_REL_1_WEEK; + break; + case 4: + txtId = TxtMaxTime; + index = VP_REL_MAXIMUM; // May 10, 2004 REF: CRR 15753 Deepa M.D + break; + + } + + /* API - 28/07/03 - CQ10203 - Read the Data and then set the REL VP identifier*/ + SmsSend_get_config_data(&sms_parameter); + + FFS_flashData.vp_rel = index; + flash_write(); + + sms_parameter.vp_rel = FFS_flashData.vp_rel; + TRACE_EVENT_P1("sms_parameter.vp_rel = %d", sms_parameter.vp_rel); + /*API - CQ10203 END*/ + + if (sms_set_val_period(&sms_parameter) == MFW_SMS_OK) + dlg_initDisplayData_TextId( &DisplayInfo, TxtNull, TxtCancel,TxtSmsValidityPeriodSet, txtId /*SPR#1952*/, COLOUR_STATUS); + else + dlg_initDisplayData_TextId( &DisplayInfo, TxtNull, TxtCancel,TxtFailed, TxtNull, COLOUR_STATUS); + + dlg_initDisplayData_events( &DisplayInfo, (T_VOID_FUNC)NULL, THREE_SECS, KEY_RIGHT|KEY_CLEAR ); + + // Display confirmation screen. + info_dialog(win,&DisplayInfo); + + return 1; +} + + +/* Marcus: Issue 1170: 30/09/2002: Start */ +/******************************************************************************* + + $Function: SmsStatusReportRequest + + $Description: Activate/Deactivate SRR, selected by the user. + + $Returns: Execution status + + $Arguments: m - menu handler + i - Menu item selected + +*******************************************************************************/ +int SmsStatusReportRequest(MfwMnu* m, MfwMnuItem* i) +{ + int index = m->lCursor[m->level]; + T_DISPLAY_DATA DisplayInfo; + T_MFW_SMS_INFO sms_info; + T_MFW_HND win = mfwParent(mfw_header()); + int TextId2; + TRACE_FUNCTION(">>>> SmsStatusReportRequest()"); + + if (sms_parameter(&sms_info, TRUE) == MFW_SMS_OK) + { + if (index == 0) + sms_info.srr = SMS_NOT_REQUESTED_SRR; + else + sms_info.srr = SMS_REQUESTED_SRR; + + if (sms_parameter(&sms_info, FALSE) == MFW_SMS_OK) + { + + if (index == 0) + TextId2 = TxtOff; + else + TextId2 = TxtOn; + + dlg_initDisplayData_TextId( &DisplayInfo, TxtSoftOK, TxtNull,TxtSRR, TextId2, COLOUR_POPUP); + dlg_initDisplayData_events( &DisplayInfo, (T_VOID_FUNC)NULL, THREE_SECS, KEY_RIGHT | KEY_LEFT ); + + info_dialog(win,&DisplayInfo); + } + } + return 1; +} +/* Marcus: Issue 1170: 30/09/2002: End */ + +/* +March 2, 2005 REF: CRR 11536 x0018858 +Added a function to set the Reply path +*/ +//begin -11536 +/******************************************************************************* + + $Function: SmsReplyPathRequest + + $Description: Activate/Deactivate reply path, selected by the user. + + $Returns: Execution status + + $Arguments: m - menu handler + i - Menu item selected + + +*******************************************************************************/ + +int SmsReplyPathRequest(MfwMnu* m, MfwMnuItem* i) +{ + int index = m->lCursor[m->level]; + T_DISPLAY_DATA DisplayInfo; + T_MFW_SMS_INFO sms_info; + T_MFW_HND win = mfwParent(mfw_header()); + int TextId2; + TRACE_FUNCTION(">>>> SmsReplyPathRequest()"); + + if (sms_parameter(&sms_info, TRUE) == MFW_SMS_OK) + { + if (index == 0) + reply_path_bit= SMS_UNSET_RP; + else + reply_path_bit= SMS_SET_RP; + + TRACE_EVENT_P1("The reply paTH BIT IS = %d", reply_path_bit); + + if (index == 0) + TextId2 = TxtOff; + else + TextId2 = TxtOn; + + dlg_initDisplayData_TextId( &DisplayInfo, TxtSoftOK, TxtNull,TxtRP, TextId2, COLOUR_POPUP); + dlg_initDisplayData_events( &DisplayInfo, (T_VOID_FUNC)NULL, THREE_SECS, KEY_RIGHT | KEY_LEFT ); + + info_dialog(win,&DisplayInfo); + + } + return 1; +} +// End --11536 + + +/******************************************************************************* + + $Function: settingsVoiceMail + + $Description: menu entry function + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsVoiceMail(MfwMnu* m, MfwMnuItem* i) + +{ + + cphs_get_mailbox (); + + + return 0; +} + +/******************************************************************************* + + $Function: settingsVoiceMail + + $Description: menu entry function + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsScNumber(MfwMnu* m, MfwMnuItem* i) +{ + + return 0; +} +/******************************************************************************* + + $Function: settingsInit + + $Description: init settings handling + + $Returns: + + $Arguments: + +*******************************************************************************/ +void settingsInit (void) +{ + + TRACE_EVENT ("settingsInit()"); + + nextState = 0; + + win = winCreate(0,0,MfwWinVisible,(MfwCb)winEvent); + winShow(win); +} + +/******************************************************************************* + + $Function: settingsExit + + $Description: exit settings handling + + $Returns: + + $Arguments: + +*******************************************************************************/ +void settingsExit (void) +{ + TRACE_FUNCTION ("settingsExit()"); + + nextState = 0; + winDelete(win); win = 0; +} + + +/******************************************************************************* + + $Function: winEvent + + $Description: window event handler + + $Returns: + + $Arguments: + +*******************************************************************************/ +static int winEvent (MfwEvt e, MfwWin *w) +{ + TRACE_EVENT ("MmiSettings :: winEvent()"); + + switch (e) + { + case MfwWinVisible: + if (w->flags & MfwWinVisible) + show(); + break; + default: + return 0; + } + + return 1; +} +/******************************************************************************* + + $Function: settingsGetStatus + + $Description: Function to return the status of various BMI settings + + $Returns: Non-zero number if setting is ON + Zero if the setting is OFF + + $Arguments: flagBit - value indicating which setting is to be changed. + +*******************************************************************************/ +int settingsGetStatus(int flagBit) +{ + if (flagBit & SettingsKeyPadLockOn) + { + return(BMIsettings & flagBit); + } + else + { + return(FFS_flashData.settings_status & flagBit); + } +} +/******************************************************************************* + + $Function: settingsSetStatus + + $Description: Function to set or clear the status of various BMI settings + + $Returns: None. + + $Arguments: flagBit - value indicating which setting is to be changed. + state - SET_SETTING - set the value + - CLEAR_SETTING - clear the value. +GW SPR#2470 Created +*******************************************************************************/ +void settingsSetStatus(int flagBit, int value) +{ + if (flagBit & SettingsKeyPadLockOn) + { + if (value == SET_SETTING) + BMIsettings = BMIsettings | flagBit; + else + BMIsettings = BMIsettings & (~flagBit); + } + else + { + if (value == SET_SETTING) + FFS_flashData.settings_status = FFS_flashData.settings_status | flagBit; + else + FFS_flashData.settings_status = FFS_flashData.settings_status & (~flagBit); + } + flash_write(); +} +/******************************************************************************* + + $Function: settingsAutoRedialOn + + $Description: auto redial switch on + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAutoRedialOn(MfwMnu* m, MfwMnuItem* i) +{ + + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + cm_set_redial(CM_REDIAL_AUTO); + + + confirm_data.local_status = ACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + + return 0; +} +/******************************************************************************* + + $Function: settingsAutoRedialOff + + $Description: auto redial switch off + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAutoRedialOff(MfwMnu* m, MfwMnuItem* i) +{ + T_MFW_HND win = mfw_parent(mfw_header()); + confirm_Init(win); + + cm_set_redial(CM_REDIAL_OFF); + + confirm_data.local_status = DEACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + + + + return 0; +} +/******************************************************************************* + + $Function: settingsSilentModeOn + + $Description: Activate the silent Mode + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsSilentModeOn(void) +{ + TRACE_FUNCTION(">> settingsSilentModeOn()"); + FFS_flashData.settings_status |= SettingsSilentMode; + flash_write(); + setSilentModeVolume(); + iconsSetState(iconIdSilRin); + return 0; +} +/******************************************************************************* + + $Function: settingsSilentModeOff + + $Description: Deactivate the silent Mode + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsSilentModeOff(void) +{ + TRACE_EVENT(">> settingsSilentModeOff()"); + FFS_flashData.settings_status &= ~SettingsSilentMode; + flash_write(); + restoreSilentModeVolume(); + iconsDeleteState(iconIdSilRin); + return 0; +} + +/******************************************************************************* + + $Function: settingsKeyPadLockOn + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsKeyPadLockOn(void) +{ + BMIsettings = BMIsettings | SettingsKeyPadLockOn; + iconsSetState(iconIdKeyplock); + idleEvent(IdleActiveKeyPadLocked); + return 0; +} +/******************************************************************************* + + $Function: settingsKeyPadLockOff + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsKeyPadLockOff(void) +{ + BMIsettings = BMIsettings & ~SettingsKeyPadLockOn; + iconsDeleteState(iconIdKeyplock); + + return 0; +} +/******************************************************************************* + + $Function: settingsAutoAnswerOn + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAutoAnswerOn(MfwMnu* m, MfwMnuItem* i) +{ + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + FFS_flashData.settings_status |= SettingsAutoAnswerOn; + flash_write(); + confirm_data.local_status = ACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + + return 0; +} +/******************************************************************************* + + $Function: settingsAutoAnswerOff + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAutoAnswerOff(MfwMnu* m, MfwMnuItem* i) +{ + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + FFS_flashData.settings_status &= ~SettingsAutoAnswerOn; + flash_write(); + confirm_data.local_status = DEACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + + + + return 0; +} + + +/******************************************************************************* + + $Function: settingsAnyKeyAnswerOn + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAnyKeyAnswerOn(MfwMnu* m, MfwMnuItem* i) +{ + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + FFS_flashData.settings_status |= SettingsAnyKeyAnswerOn; + flash_write(); + confirm_data.local_status = ACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + return 0; +} +/******************************************************************************* + + $Function: settingsAnyKeyAnswerOff + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +int settingsAnyKeyAnswerOff(MfwMnu* m, MfwMnuItem* i) +{ + + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + FFS_flashData.settings_status &= ~SettingsAnyKeyAnswerOn; + flash_write(); + confirm_data.local_status = DEACTIVATE_CONFIRM; + + SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0); + + return 0; +} + +/******************************************************************************* + + $Function: factoryReset + + $Description: Reset all the user-settings, + At first it show up a confirmation screen + $Returns: + + $Arguments: + +*******************************************************************************/ +int factoryReset(MfwMnu* m, MfwMnuItem* i) +{ + + T_MFW_HND win = mfw_parent(mfw_header()); + + confirm_Init(win); + + confirm_data.local_status = FACTORY_RESET; + + SEND_EVENT (confirm_data.confirm_win, FACTORY_RESET, 0, 0); + return 0; +} + + + +/******************************************************************************* + + $Function: setUserSettings2Default + + $Description: The user confirm to delete the user-settings. + + $Returns: + + $Arguments: + +*******************************************************************************/ +void setUserSettings2Default (void) +{ + //char buf[30]; // RAVI + + + + if (DEFAULT_SETTINGS[ENGLISH].status EQ ON) + { + // set the language :ENGLISH + MmiRsrcSetLang(ENGLISH_LANGUAGE);/*MC, SPR 1242 - changed to new function*/ + } + + + if (DEFAULT_SETTINGS[GERMAN].status EQ ON) + { + // set the language :GERMAN + MmiRsrcSetLang(GERMAN_LANGUAGE); /*MC, SPR 1242 - changed to new function*/ + } + + + if (DEFAULT_SETTINGS[AUTOREDIAL].status EQ ON) + { + // set the Auto-redial + cm_set_redial(CM_REDIAL_AUTO); + } + else + { + cm_set_redial(CM_REDIAL_OFF); + } + + + if (DEFAULT_SETTINGS[AUTOANSWER].status EQ ON) + { + // set the Autoanswer + FFS_flashData.settings_status |= SettingsAutoAnswerOn; + } + else + { + //switch off the Autoanswer + FFS_flashData.settings_status &= ~SettingsAutoAnswerOn; + } + + + if (DEFAULT_SETTINGS[ANYKEYANSWER].status EQ ON) + { + // set the Anykeyanswer + FFS_flashData.settings_status |= SettingsAnyKeyAnswerOn; + } + else + { + //switch off the Anykeyanswer + FFS_flashData.settings_status &= ~SettingsAnyKeyAnswerOn; + } + + if (DEFAULT_SETTINGS[CALLTIMERS].status EQ CLEAR) + { + //reset here the call timers + //incoming, outgoing & last calls + } + + + if (DEFAULT_SETTINGS[KEYPAD_CLICK].status EQ ON) + { + // set the Keypad click + + if (FFS_flashData.settings_status & SettingsKeypadDTMF) + { + FFS_flashData.settings_status &= ~SettingsKeypadDTMF; + } + + FFS_flashData.settings_status |= SettingsKeypadClick; + } + + + if (DEFAULT_SETTINGS[KEYPAD_DTMF].status EQ ON) + { + // set the Keypad DTMF + + if (FFS_flashData.settings_status & SettingsKeypadClick) + { + FFS_flashData.settings_status &= ~SettingsKeypadClick; + } + + FFS_flashData.settings_status |= SettingsKeypadDTMF; + } + + + if (DEFAULT_SETTINGS[KEYPAD_SILENT].status EQ ON) + { + // set the Keypad silence + + if (FFS_flashData.settings_status & SettingsKeypadClick) + { + FFS_flashData.settings_status &= ~SettingsKeypadClick; + } + else if (FFS_flashData.settings_status & SettingsKeypadDTMF) + { + FFS_flashData.settings_status &= ~SettingsKeypadDTMF; + } + + } + + //GW-SPR#1018- Trace is too big for the buffer and is causing a crash. + // sprintf (buf, " FFS_flashData.settings_status %d", FFS_flashData.settings_status); + // TRACE_EVENT (buf); + + //xrashmic 7 Dec, 2004 MMI-SPR-26161 and MMI-SPR-23965 + // Resetting the downloaded and extracted wap objects + FFS_flashData.image_usr_obj=0; + FFS_flashData.audio_usr_obj =0; + + if (DEFAULT_SETTINGS[VOICE_MEMO].status EQ CLEAR) + { + // clear the voice memo + FFS_flashData.voice_memo_position = 0; + + } + //reset the call timers + setLastCallDuration(0, MFW_CM_INV_DIR); + resetIncomingCallsDuration(); + resetOutgoingCallsDuration(); + //set clock format to twenty-four hour + setClockFormat(MFW_TIME_FORMAT_24HOUR);/*SPR 1725, changed macro*/ + + // API/GW - On factory reset save the original colours to the flash. + resetFactoryColour(); + //API - 1550 - Added code to reset the backgrounds to defaults + resetFactoryBackground(); + + /*API - 28/07/03 - CQ10203 - Add a call to set the validity period to default on Factory Reset*/ + resetSMSValidityPeriod(); + /*API - CQ10203 - END*/ + + // PCM + // here should also update the user-data-settings !! + // in PCM + flash_write(); + + +} + +/******************************************************************************* + + $Function: confirm_Init + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +T_MFW_HND confirm_Init (T_MFW_HND parent_window) +{ + return (confirm_create (parent_window)); +} +/******************************************************************************* + + $Function: confirm_Exit + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +void confirm_Exit (T_MFW_HND own_window) +{ + + T_MFW_WIN * win_data = ((T_MFW_HDR *)own_window)->data; + T_confirm * data = (T_confirm *)win_data->user; + + confirm_destroy (data->confirm_win); +} + +/******************************************************************************* + + $Function: confirm_create + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +T_MFW_HND confirm_create (T_MFW_HND parent_window) +{ + T_confirm * data = &confirm_data; + T_MFW_WIN * win; + + TRACE_FUNCTION ("confirm_create()"); + + data->confirm_win = win_create (parent_window, 0, 0, (T_MFW_CB)confirm_win_cb); + + if (data->confirm_win EQ 0) + return 0; + + /* + * Create window handler + */ + data->mmi_control.dialog = (T_DIALOG_FUNC)confirm; + data->mmi_control.data = data; + win = ((T_MFW_HDR *)data->confirm_win)->data; + win->user = (void *) data; + + + winShow(data->confirm_win); + /* + * return window handle + */ + return data->confirm_win; +} + +/******************************************************************************* + + $Function: confirm_destroy + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +void confirm_destroy (T_MFW_HND own_window) +{ + T_MFW_WIN * win; + T_confirm * data; + + TRACE_FUNCTION ("confirm_destroy()"); + + if (own_window) + { + win = ((T_MFW_HDR *)own_window)->data; + data = (T_confirm *)win->user; + + if (data) + { + + /* + * Delete WIN handler + */ + win_delete (data->confirm_win); + data->confirm_win = 0; + } + } +} +/******************************************************************************* + + $Function: confirm_win_cb + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +static int confirm_win_cb (T_MFW_EVENT event, T_MFW_WIN * win) +{ + /* + * Top Window has no output + */ + return 1; +} + + +/******************************************************************************* + + $Function: confirm_dialog + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +static void confirm_dialog(void) +{ + T_DISPLAY_DATA display_info; + + TRACE_FUNCTION ("confirm_dialog()"); + + + dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull,TxtNull, TxtNull , COLOUR_STATUS); + dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)confirm_dialog_cb, THREE_SECS, KEY_CLEAR | KEY_RIGHT | KEY_LEFT ); + + if (confirm_data.local_status EQ ACTIVATE_CONFIRM) + { + display_info.TextId = TxtActivated; + } + else if (confirm_data.local_status EQ DEACTIVATE_CONFIRM) + { + display_info.TextId = TxtDeActivated; + } + else if (confirm_data.local_status EQ FACTORY_RESET) + { + display_info.TextId = TxtPressOk; + display_info.TextId2 = TxtReset; + display_info.Time = TEN_SECS; + display_info.LeftSoftKey = TxtSoftOK; + display_info.RightSoftKey = TxtSoftBack; + + } + + /* + * Call Info Screen + */ + info_dialog (confirm_data.confirm_win, &display_info); + +} +/******************************************************************************* + + $Function: confirm_dialog_cb + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +void confirm_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) +{ + TRACE_FUNCTION ("confirm_dialog_cb()"); + + switch (reason) + { + case INFO_KCD_LEFT: + // user confirm to reset all the user settings ! + setUserSettings2Default (); + confirm_Exit(win); + break; + + case INFO_TIMEOUT: + /* no break; */ + case INFO_KCD_HUP: + /* no break; */ + case INFO_KCD_RIGHT: + /* no break; */ + case INFO_KCD_CLEAR: + confirm_Exit(win); + break; + } +} + +/******************************************************************************* + + $Function: confirm + + $Description: + + $Returns: + + $Arguments: + +*******************************************************************************/ +void confirm (T_MFW_HND win, USHORT event, SHORT value, void * parameter) +{ + // T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; // RAVI + // T_confirm * data = (T_confirm *)win_data->user; // RAVI + + TRACE_FUNCTION("confirm()"); + + switch (event) + { + case SHOW_CONFIRM: + confirm_dialog(); + break; + case FACTORY_RESET: + confirm_dialog(); + break; + + } + +} +static void showSet (void) +{ + + T_DISPLAY_DATA display_info; + + dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtActivated, TxtNull, COLOUR_STATUS); + dlg_initDisplayData_events( &display_info, NULL, THREE_SECS, KEY_HUP| KEY_LEFT ); + + info_dialog ( NULL, &display_info); +} + +static void showClear (void) +{ + + T_DISPLAY_DATA display_info; + + dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtDeActivated, TxtNull, COLOUR_STATUS); + dlg_initDisplayData_events( &display_info, NULL, THREE_SECS, KEY_HUP| KEY_LEFT ); + + info_dialog ( NULL, &display_info); +} + +// MENU_ITEM ( TxtCheckStatus, servicesDivertCheck, item_flag_none ), +void settingsShowStateAnykeyAnswer (void) +{ + if (settingsGetStatus(SettingsAnyKeyAnswerOn)) + showSet(); + else + showClear(); +} +void settingsShowStateAutoAnswer (void) +{ + if (settingsGetStatus(SettingsAutoAnswerOn)) + showSet(); + else + showClear(); +} +void settingsShowStateAutoRedial(void) +{ + if (FFS_flashData.redial_mode == CM_REDIAL_AUTO) + showSet(); + else + showClear(); +} +/*GW SPR#2470 Created*/ +void settingsShowStateCBDisable(void) +{ + if (settingsGetStatus(SettingsCBDisable)) + showClear(); + else + showSet(); +} + +// change by Sasken (VVADIRAJ) on March 31th 2004 +// Issue Number : MMI-SPR-12822 +// Subject: Highlighting the previously selected menu item. +// Bug : Not highlighting the previously selected menu item.Selecting first item always. +// Solution: Instead of providing the submenu directly we call this function +// where we set the menu and also higlight the previously selected menu item. + +/***************************Go-lite Optimization changes Start***********************/ +//Aug 25, 2004 REF: CRR 24904 Deepa M.D +//This function is used only for the Color build.Hence it is put under the +//COLOURDISPLAY compiler switch +#ifdef COLOURDISPLAY +void settingsFocusNwIconCurSel(void) +{ + UBYTE SaveNwIcon; + T_MFW_HND setting_win; + T_MFW_HND win = mfw_parent(mfw_header()); + + setting_win= bookMenuStart(win, NWIconAttributes(), 0); + SaveNwIcon=(FFS_flashData.ProviderNetworkShow == TRUE)?0:1; + SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &SaveNwIcon); +} +#endif +/***************************Go-lite Optimization changes Start***********************/ +//SPR 12822:VVADIRAJ + +// Jul 29, 2004 REF = CRR 20898 xkundadu +/******************************************************************************* + $Function: settingsFocusCurSelAutoAns + + $Description: This function sets the focus to the On or Off menu item of the + 'Auto Answer' menu in the Phone Settings main menu. + Check whether the 'Auto Answer' is enabled by reading the data + stored in the FFS. Depending on that, set the focus to the menu + item. + + $Returns: void + + $Arguments: void + *******************************************************************************/ + + +void settingsFocusCurSelAutoAns(void) +{ + // Points to the index of the menuitem to be selected + // If it is 1, 'Off' menuItem will be selected, else 'On' menuitem + // will be selected. + UBYTE menuItemIndex = 1; + + T_MFW_HND setting_win; + T_MFW_HND win = mfw_parent(mfw_header()); + + TRACE_FUNCTION ("settingsFocusCurSelAutoAns() "); + + // Starting the menu corresponding to AutoAnswer. + setting_win = bookMenuStart(win, GetAutoAnswerMenu(), 0); + + //Checking whether the 'Auto Answer' is enabled or not + //Reading the value from FFS. + if( (FFS_flashData.settings_status & SettingsAutoAnswerOn) + EQ SettingsAutoAnswerOn) + { + menuItemIndex = 0; + } + + // Send the event to display the menu item and appropriate menuitem + // selected. + SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &menuItemIndex); + +} + +// Jul 22,2004 CRR:20896 xrashmic - SASKEN +// Description: The time current time format is not highlighted +// Fix: Instead of showing the submenu directly we call this function +// where we set the menu and also higlight the previously selected menu item +void settingsFocusTimeFormatCurSel(void) +{ + UBYTE CurSel; + T_MFW_HND setting_win; + T_MFW_HND win = mfw_parent(mfw_header()); + + setting_win= bookMenuStart(win, TimeFormatAttributes(), 0); + CurSel = FFS_flashData.time_format; + SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &CurSel); +} + +/******************************************************************************* + $Function: settingsFocusCurSelAnyKeyAns + $Description: This function sets the focus to the On or Off menu item of the + 'AnyKey Answer' menu in the Phone Settings main menu. + Check whether the 'Any Key Answer' is enabled by reading the data + stored in the FFS. Depending on that, set the focus to the menu + item + $Returns: void + $Arguments: void + *******************************************************************************/ +// Jul 28, 2004 REF: CRR 20899 xkundadu +void settingsFocusCurSelAnyKeyAns(void) +{ + // Points to the index of the menuitem to be selected + // If it is 1, 'Off' menuItem will be selected, else 'On' menuitem + // will be selected. + UBYTE menuItemIndex = 1; + + T_MFW_HND setting_win; + T_MFW_HND win = mfw_parent(mfw_header()); + + TRACE_FUNCTION ("settingsFocusCurSelAnyKeyAns() "); + + // Starting the menu corresponding to AnyKeyanswer. + setting_win = bookMenuStart(win, GetAnyKeyAnswerMenu(), 0); + + //Checking whether the 'Any key answer is enabled or not + //Reading the value from FFS. + if( (FFS_flashData.settings_status & SettingsAnyKeyAnswerOn) + EQ SettingsAnyKeyAnswerOn) + { + //Set the focus to the 'On' menu item. + menuItemIndex = 0; + } + + // Send the event to display the menu items and set focus to appropriate + // menuitem. + SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &menuItemIndex); + +} + +// May 04, 2005 REF: CRR 30285 x0021334 +/******************************************************************************* + $Function: settingsSmsStatusReportCurSel + $Description: This function sets the focus to the On or Off menu item of the + 'Status Report' submenu menu in the Messages Settings menu. + $Returns: void + $Arguments: void + *******************************************************************************/ +void settingsSmsStatusReportCurSel(void) +{ + T_MFW_HND setting_win; + T_MFW_SMS_INFO sms_info; + T_MFW_HND win = mfw_parent(mfw_header()); + + setting_win = bookMenuStart(win, SmsStatusReportAttributes(), 0); + if (sms_parameter(&sms_info, TRUE) == MFW_SMS_OK) + { + // Send the event to set focus to appropriate option. + SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &sms_info.srr); + } + else + { + TRACE_FUNCTION("sms info could not be retrieved "); + } + + +} +