⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flightmode.c

📁 MTK6226修改平台UI的文件介绍
💻 C
📖 第 1 页 / 共 5 页
字号:
}


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