📄 flightmode.c
字号:
#include "BTMMIScrGprots.h"
#endif
#ifdef __MMI_IRDA_SUPPORT__
#include "IrdaMMIGprots.h"
#include "IrdaMMIScr.h"
extern void mmi_irda_exec_close_menu(void);
#endif /* __MMI_IRDA_SUPPORT__ */
#include "MessagesMiscell.h"
#include "SMSApi.h"
#include "SMSStruct.h"
#ifdef MMI_ON_HARDWARE_P
#include "Wapadp.h"
#endif
#ifdef __MMI_BT_PROFILE__
#include "ProfileGprots.h"
#endif
#ifdef __MMI_ENGINEER_MODE__
#include "EngineerModeDef.h"
#endif
#ifdef __MMI_WLAN_FEATURES__
#include "DataAccountGProt.h"
#include "NetworkSetupDefs.h"
#endif /* __MMI_WLAN_FEATURES__ */
#endif /* __FLIGHT_MODE_SUPPORT__ */
/* diamond, 2005/07/05 Flight mode */
/*
* External Variable
*/
extern PHNSET_CNTX g_phnset_cntx;
extern U8 gSignalStrengthLevel;
/*
* Local Variable
*/
typedef struct _phnset_f_mode_req
{
FuncPtr phnset_flight_mode_req;
U8 state;
} PHNSETFMODEREQ;
static PHNSETFMODEREQ mmi_phnset_f_mode_req[] =
{
{PhnsetFlightModeSelectionReq, 1},
#ifdef __MMI_WLAN_FEATURES__
{mmi_flight_mode_switch_wlan, 1},
#endif
#if defined(__MMI_BT_HP_SUPPORT__) || defined(__MMI_BT_SUPPORT__)
{mmi_flight_mode_switch_bluetooth, 1},
#endif
#ifdef __MMI_IRDA_SUPPORT__
{mmi_flight_mode_switch_irda, 1},
#endif
{NULL, 0} /* dummy one, please add callbacks before this entity */
};
U32 g_status_icon_display_invisible[MAX_STATUS_ICONS];
/*****************************************************************************
* FUNCTION
* PhnsetFlightModeQueryBackground
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void PhnsetFlightModeQueryBackground(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* diamond, 2006/01/01 Force to draw the background */
EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, PhnsetFlightModeQueryBackground, NULL);
ShowCategory61Screen(NULL, IMG_BOOTUP_SCANNING_LOGO, NULL);
}
#ifdef __FLIGHT_MODE_SUPPORT__
void mmi_msg_set_msg_icon(U8, U8);
extern void SetCat165TimerExpireFunc(FuncPtr);
extern U32 get_status_icon_flag(S16 icon_ID);
extern void set_status_icon_flag(S16 icon_ID, U32 value);
#ifndef MMI_ON_HARDWARE_P
#define NVRAM_EF_SYS_CACHE_OCTET_SIZE 8
#endif
pBOOL gSetModeFromMenu = MMI_FALSE;
/*****************************************************************************
* FUNCTION
* PhnsetFlightModeSaveStatusIconFlags
* DESCRIPTION
* Save the status icons status before enter flight mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void PhnsetFlightModeSaveStatusIconFlags(pBOOL nw_mode) /* 1: switch from flight mode, 0: swtich from preferred mode */
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 icon_id;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (icon_id = 0; icon_id < MAX_STATUS_ICONS; icon_id++)
{
switch (icon_id)
{
case STATUS_ICON_ROAMING:
case STATUS_ICON_CALL_DIVERT_L1L2:
#ifdef __MMI_CFU_SEPARATE_LINE__
case STATUS_ICON_CALL_DIVERT_L1:
case STATUS_ICON_CALL_DIVERT_L2:
#endif
case STATUS_ICON_INCOMING_SMS:
case STATUS_ICON_UNREAD_VOICE_L1L2:
case STATUS_ICON_UNREAD_VOICE_L1:
case STATUS_ICON_UNREAD_VOICE_L2:
case STATUS_ICON_UNREAD_FAX_L1L2:
case STATUS_ICON_UNREAD_FAX_L1:
case STATUS_ICON_UNREAD_FAX_L2:
case STATUS_ICON_SUBLCD_SMS:
case STATUS_ICON_MMS_UNREAD:
case STATUS_ICON_MMS_BUSY:
case STATUS_ICON_CHAT_INDICATION_ROOM1:
case STATUS_ICON_CHAT_INDICATION_ROOM2:
#ifndef __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__
case STATUS_ICON_ALTERNATE_LINE_L1:
case STATUS_ICON_ALTERNATE_LINE_L2:
#endif
g_status_icon_display_invisible[icon_id] = get_status_icon_flag(icon_id);
set_status_icon_flag(icon_id, 0);
break;
#ifdef __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__
case STATUS_ICON_SIGNAL_STRENGTH:
ChangeStatusIconImage(icon_id, IMG_SI_SIGNAL_STRENGTH);
break;
#endif /* __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__ */
case STATUS_ICON_MISSED_CALL:
#ifndef __MMI_SUBLCD_SHORT_STATUSICON_LIST__
case STATUS_ICON_SUBLCD_MISSED_CALL:
#endif
case STATUS_ICON_UNREAD_EMAIL_L1L2:
case STATUS_ICON_UNREAD_EMAIL_L1:
case STATUS_ICON_UNREAD_EMAIL_L2:
case STATUS_ICON_WAP:
#ifdef __MMI_POC__
case STATUS_ICON_POC:
#endif
#ifdef __MMI_IMPS__
case STATUS_ICON_IMPS_MSG:
case STATUS_ICON_IMPS_LOGIN:
#endif
if (nw_mode)
{
g_status_icon_display_invisible[icon_id] = get_status_icon_flag(icon_id);
set_status_icon_flag(icon_id, 0);
}
break;
default:
break;
}
}
}
/*****************************************************************************
* FUNCTION
* PhnsetFlightModeRestoreStatusIconFlags
* DESCRIPTION
* Restire the status icons status before enter normal mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void PhnsetFlightModeRestoreStatusIconFlags(pBOOL nw_mode)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 icon_id;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (icon_id = 0; icon_id < MAX_STATUS_ICONS; icon_id++)
{
switch (icon_id)
{
case STATUS_ICON_SIGNAL_STRENGTH:
#ifdef __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__
/* diamond, 2005/09/28 restore signal icon with line switch */
if (mmi_bootup_is_sim_valid()) /* diamond, 2006/02/19 Not update line id if sim is not inserted after mode switch */
{
if (g_callset_context.LineID == LINE1)
{
ChangeStatusIconImage(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_SIGNAL_STRENGTH_L1);
}
else
{
ChangeStatusIconImage(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_SIGNAL_STRENGTH_L2);
}
}
#endif /* __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__ */
break;
case STATUS_ICON_ROAMING:
case STATUS_ICON_CALL_DIVERT_L1L2:
#ifdef __MMI_CFU_SEPARATE_LINE__
case STATUS_ICON_CALL_DIVERT_L1:
case STATUS_ICON_CALL_DIVERT_L2:
#endif
case STATUS_ICON_INCOMING_SMS:
case STATUS_ICON_UNREAD_VOICE_L1L2:
case STATUS_ICON_UNREAD_VOICE_L1:
case STATUS_ICON_UNREAD_VOICE_L2:
case STATUS_ICON_UNREAD_FAX_L1L2:
case STATUS_ICON_UNREAD_FAX_L1:
case STATUS_ICON_UNREAD_FAX_L2:
case STATUS_ICON_SUBLCD_SMS:
case STATUS_ICON_MMS_UNREAD:
case STATUS_ICON_MMS_BUSY:
case STATUS_ICON_CHAT_INDICATION_ROOM1:
case STATUS_ICON_CHAT_INDICATION_ROOM2:
#ifndef __MMI_STATUS_ICON_SIGNAL_WITH_LINE_SWITCH__
case STATUS_ICON_ALTERNATE_LINE_L1:
case STATUS_ICON_ALTERNATE_LINE_L2:
#endif
set_status_icon_flag(icon_id, g_status_icon_display_invisible[icon_id]);
break;
case STATUS_ICON_MISSED_CALL:
#ifndef __MMI_SUBLCD_SHORT_STATUSICON_LIST__
case STATUS_ICON_SUBLCD_MISSED_CALL:
#endif
case STATUS_ICON_UNREAD_EMAIL_L1L2:
case STATUS_ICON_UNREAD_EMAIL_L1:
case STATUS_ICON_UNREAD_EMAIL_L2:
case STATUS_ICON_WAP:
#ifdef __MMI_POC__
case STATUS_ICON_POC:
#endif
#ifdef __MMI_IMPS__
case STATUS_ICON_IMPS_MSG:
case STATUS_ICON_IMPS_LOGIN:
#endif
if (nw_mode)
{
set_status_icon_flag(icon_id, g_status_icon_display_invisible[icon_id]);
}
break;
default:
break;
}
}
}
/*****************************************************************************
* FUNCTION
* HighlightPhnsetFlightMode
* DESCRIPTION
* This function is highlight handler for Phone Setup -> Flight Mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void HighlightPhnsetFlightMode(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* 1 Change left soft key icon and label */
ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
/* 2 Change right soft key icon and label */
ChangeRightSoftkey(STR_GLOBAL_BACK, 0);
SetLeftSoftkeyFunction(EntryPhnsetFlightMode, KEY_EVENT_UP);
SetKeyHandler(EntryPhnsetFlightMode, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
}
/*****************************************************************************
* FUNCTION
* HintPhnsetFlightMode
* DESCRIPTION
* This function is hint handling function for Phone Setup -> Flight Mode
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
void HintPhnsetFlightMode(U16 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
U8 data[NVRAM_EF_SYS_CACHE_OCTET_SIZE];
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ReadRecord(NVRAM_EF_SYS_CACHE_OCTET_LID, 2, &data, NVRAM_EF_SYS_CACHE_OCTET_SIZE, &error);
g_phnset_cntx.curFlightMode = data[0];
switch (g_phnset_cntx.curFlightMode)
{
case FLIGHTMODE_OFF: /* 0x00 */
pfnUnicodeStrcpy((PS8) hintData[index], (PS8) GetString(STR_FLIGHT_MODE_NORMAL));
break;
case FLIGHTMODE_SILENT: /* 0x01 */
pfnUnicodeStrcpy((PS8) hintData[index], (PS8) GetString(STR_FLIGHT_MODE_SILENT));
break;
case FLIGHTMODE_QUERY: /* 0x02 */
pfnUnicodeStrcpy((PS8) hintData[index], (PS8) GetString(STR_FLIGHT_MODE_QUERY));
break;
default:
data[0] = FLIGHTMODE_OFF;
data[1] = FLIGHTMODE_OFF;
g_phnset_cntx.curFlightMode = 0;
#ifdef __MMI_WLAN_FEATURES__
g_phnset_cntx.curFlightMode2 = 0;
#endif
WriteRecord(NVRAM_EF_SYS_CACHE_OCTET_LID, 2, &data, NVRAM_EF_SYS_CACHE_OCTET_SIZE, &error);
pfnUnicodeStrcpy((PS8) hintData[index], (PS8) GetString(STR_FLIGHT_MODE_NORMAL));
break;
}
}
/*****************************************************************************
* FUNCTION
* HiliteHandlerFlightMode
* DESCRIPTION
* Highlight handler for mode selection
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
void HiliteHandlerFlightMode(S32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_phnset_cntx.selFlightMode = (U8) index;
return;
}
/*****************************************************************************
* FUNCTION
* EntryFlightModeProgress
* DESCRIPTION
* Progressing screen for mode switch
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void EntryFlightModeProgress(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -