📄 flightmode.c
字号:
}
/*****************************************************************************
* FUNCTION
* PhnsetFlightModePowerOnException
* DESCRIPTION
* Process of exception power on mode switch
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void PhnsetFlightModePowerOnException(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (PhnsetFlightModeGetLatestActionMode() == FLIGHTMODE_OFF)
{
PowerOnNormalMode();
}
else
{
PowerOnFlightMode();
}
}
#ifdef __MMI_ENGINEER_MODE__
extern void EntryEmRFTestGSM(void);
pBOOL gEnterEMWithFlightMode = MMI_FALSE;
/*****************************************************************************
* FUNCTION
* mmi_em_enter_flight_mode_rsp
* DESCRIPTION
* Enter flight mode from engineering mode
* PARAMETERS
* info
* RETURNS
* void
*****************************************************************************/
void mmi_em_enter_flight_mode_rsp(void *info)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_nw_cfun_state_rsp_struct *cfun_state_rsp;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
cfun_state_rsp = (mmi_nw_cfun_state_rsp_struct*) info;
ClearProtocolEventHandler(PRT_NW_CFUN_STATE_RSP);
#ifdef MMI_ON_HARDWARE_P
if (cfun_state_rsp->result == KAL_TRUE)
{
#endif /* MMI_ON_HARDWARE_P */
/* update flight mode if it is successfully changed */
/* g_phnset_cntx.curFlightMode = 1; */
g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_FLIGHT_MODE; /* 0x04: Flight mode */
/* refresh status icons */
gSignalStrengthLevel = 0;
PhnsetFlightModeSaveStatusIconFlags(MMI_TRUE);
UpdateStatusIcons();
/* write current mode to nvram */
PhnsetFlightModeSaveMode();
/* force to draw signal level because signal level indication comes before flight mode switch rsp */
ChangeStatusIconLevel(STATUS_ICON_SIGNAL_STRENGTH, gSignalStrengthLevel);
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
#ifdef __MMI_SUBLCD__
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_SIGNAL_STRENGTH, gSignalStrengthLevel);
#endif
/* enter next menu */
EntryEmRFTestGSM();
DeleteScreenIfPresent(SCR_FLIGHT_MODE_PROGRESS);
#ifdef MMI_ON_HARDWARE_P
}
else
{
DisplayPopup(
(U8*) GetString(STR_GLOBAL_NOT_DONE),
IMG_GLOBAL_UNFINISHED,
1,
UI_POPUP_NOTIFYDURATION_TIME,
(U8) ERROR_TONE);
DeleteScreenIfPresent(SCR_FLIGHT_MODE_PROGRESS);
}
#endif /* MMI_ON_HARDWARE_P */
}
/*****************************************************************************
* FUNCTION
* mmi_em_enter_flight_mode
* DESCRIPTION
* Enter flight mode from engineering mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_em_enter_flight_mode(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_nw_cfun_state_req_struct *cfun_state_req;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
gEnterEMWithFlightMode = MMI_FALSE;
if (mmi_bootup_get_active_flight_mode() == FLIGHTMODE_SILENT)
{
/* already in flight mode */
gEnterEMWithFlightMode = MMI_TRUE;
/* directly enter next menu */
EntryEmRFTestGSM();
return;
}
cfun_state_req = OslConstructDataPtr(sizeof(mmi_nw_cfun_state_req_struct));
cfun_state_req->cfun_state = 4; /* flight mode */
SetProtocolEventHandler(mmi_em_enter_flight_mode_rsp, PRT_NW_CFUN_STATE_RSP);
EntryFlightModeProgress(); /* show searching screen */
Message.oslMsgId = PRT_NW_CFUN_STATE_REQ;
Message.oslDataPtr = (oslParaType*) cfun_state_req;
Message.oslPeerBuffPtr = NULL;
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_em_exit_flight_mode_rsp
* DESCRIPTION
* Exit flight mode from engineering mode
* PARAMETERS
* info
* RETURNS
* void
*****************************************************************************/
void mmi_em_exit_flight_mode_rsp(void *info)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_nw_cfun_state_rsp_struct *cfun_state_rsp;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
cfun_state_rsp = (mmi_nw_cfun_state_rsp_struct*) info;
ClearProtocolEventHandler(PRT_NW_CFUN_STATE_RSP);
#ifdef MMI_ON_HARDWARE_P
if (cfun_state_rsp->result == KAL_TRUE)
{
#endif /* MMI_ON_HARDWARE_P */
/* update flight mode if it is successfully changed */
/* g_phnset_cntx.curFlightMode = 0; */
g_pwr_context.PowerOnNWStatus &= ~MMI_NW_STATUS_FLIGHT_MODE; /* 0x04: Flight mode */
/* refresh status icons */
PhnsetFlightModeRestoreStatusIconFlags(MMI_TRUE);
UpdateStatusIcons();
/* write current mode to nvram */
PhnsetFlightModeSaveMode();
/* diamond, 2005/11/17 Force to draw signal level because signal level indication comes before flight mode switch rsp */
ChangeStatusIconLevel(STATUS_ICON_SIGNAL_STRENGTH, gSignalStrengthLevel);
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
#ifdef __MMI_SUBLCD__
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_SIGNAL_STRENGTH, gSignalStrengthLevel);
#endif
/* enter next menu */
DeleteScreenIfPresent(SCR_FLIGHT_MODE_PROGRESS);
GoBackToHistory(EM_RF_TEST_TOOL_SCR); /* the screen of RF test tool is already in the history */
#ifdef MMI_ON_HARDWARE_P
}
else
{
DisplayPopup(
(U8*) GetString(STR_GLOBAL_NOT_DONE),
IMG_GLOBAL_UNFINISHED,
1,
UI_POPUP_NOTIFYDURATION_TIME,
(U8) ERROR_TONE);
DeleteScreenIfPresent(SCR_FLIGHT_MODE_PROGRESS);
}
#endif /* MMI_ON_HARDWARE_P */
}
/*****************************************************************************
* FUNCTION
* mmi_em_exit_flight_mode
* DESCRIPTION
* Exit flight mode from engineering mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_em_exit_flight_mode(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_nw_cfun_state_req_struct *cfun_state_req;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (gEnterEMWithFlightMode)
{
/* directly enter next menu */
GoBackHistory();
return;
}
cfun_state_req = OslConstructDataPtr(sizeof(mmi_nw_cfun_state_req_struct));
cfun_state_req->cfun_state = 1; /* normal mode */
SetProtocolEventHandler(mmi_em_exit_flight_mode_rsp, PRT_NW_CFUN_STATE_RSP);
EntryFlightModeProgress(); /* show searching screen */
Message.oslMsgId = PRT_NW_CFUN_STATE_REQ;
Message.oslDataPtr = (oslParaType*) cfun_state_req;
Message.oslPeerBuffPtr = NULL;
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
OslMsgSendExtQueue(&Message);
}
#endif /* __MMI_ENGINEER_MODE__ */
/*****************************************************************************
* FUNCTION
* mmi_flight_mode_set_mode
* DESCRIPTION
* Set mode for power on
* PARAMETERS
* bFlightMode [IN] U8
* RETURNS
* void
*****************************************************************************/
void mmi_flight_mode_set_mode(U8 bFlightMode)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_nw_cfun_state_req_struct *cfun_state_req;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
cfun_state_req = OslConstructDataPtr(sizeof(mmi_nw_cfun_state_req_struct));
if (bFlightMode)
{
#ifdef __FLIGHT_MODE_SUPPORT__
PhnsetFlightModeSaveStatusIconFlags(MMI_TRUE);
UpdateStatusIcons();
#endif /* __FLIGHT_MODE_SUPPORT__ */
cfun_state_req->cfun_state = 4;
g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_FLIGHT_MODE; /* 0x04: Flight mode */
#ifdef __MMI_WLAN_FEATURES__
if (g_phnset_cntx.curFlightMode == FLIGHTMODE_OFF && mmi_netset_get_active_preferred_mode() == P_WLAN_ONLY)
{
/* Not update g_phnset_cntx.curFlightMode */
}
else
#endif /* __MMI_WLAN_FEATURES__ */
if (g_phnset_cntx.curFlightMode != FLIGHTMODE_QUERY)
{
g_phnset_cntx.curFlightMode = FLIGHTMODE_SILENT;
}
#ifdef __MMI_WLAN_FEATURES__
if (g_phnset_cntx.curFlightMode == FLIGHTMODE_SILENT)
{
g_phnset_cntx.curFlightMode2 = FLIGHTMODE_SILENT;
}
else
{
g_phnset_cntx.curFlightMode2 = FLIGHTMODE_OFF;
}
#endif
}
else
{
cfun_state_req->cfun_state = 1;
g_pwr_context.PowerOnNWStatus &= ~MMI_NW_STATUS_FLIGHT_MODE; /* 0x04 Flight mode */
if (g_phnset_cntx.curFlightMode != FLIGHTMODE_QUERY)
{
g_phnset_cntx.curFlightMode = FLIGHTMODE_OFF;
}
#ifdef __MMI_WLAN_FEATURES__
if (mmi_netset_get_active_preferred_mode() == P_GSM_ONLY)
{
g_phnset_cntx.curFlightMode2 = FLIGHTMODE_SILENT;
}
else
{
g_phnset_cntx.curFlightMode2 = FLIGHTMODE_OFF;
}
#endif /* __MMI_WLAN_FEATURES__ */
}
Message.oslMsgId = PRT_NW_CFUN_STATE_REQ;
Message.oslDataPtr = (oslParaType*) cfun_state_req;
Message.oslPeerBuffPtr = NULL;
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
OslMsgSendExtQueue(&Message);
if (g_pwr_context.PowerOnMode == POWER_ON_KEYPAD) /* diamond, 2005/10/21 Do not play animation for exception power on */
{
PhnsetFlightModeSaveMode();
}
}
/*****************************************************************************
* FUNCTION
* mmi_flight_mode_hide_menu_items
* DESCRIPTION
* Hide some menus after entering flight mode
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_flight_mode_hide_menu_items(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (mmi_bootup_is_sim_valid())
{
mmi_frm_hide_menu_item(MENU_SETTING_SHOW_OWN_NUMBER);
#if defined(__MMI_OPERATOR_NAME_MENU__)
mmi_frm_hide_menu_item(MENU_SETTING_SHOW_OPN);
#endif
#ifdef __MMI_NITZ__
mmi_frm_hide_menu_item(MENU9145_SETTIMEANDDATENITZ); /* Hide "Auto update of date and time" in flight mode */
mmi_frm_hide_menu_item(MENU_SETTING_MENU_TREE);
#endif /* __MMI_NITZ__ */
mmi_frm_hide_menu_item(MITEM105_PBOOK_OWNER_NUMBER);
}
#ifdef __MMI_WLAN_FEATURES__
mmi_frm_hide_menu_item(MENU9185_NETWORK_SETUP); /* Hide "Network Setup" in flight mode if WLAN is activated */
#endif
}
/*****************************************************************************
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -