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

📄 flightmode.c

📁 MTK6226修改平台UI的文件介绍
💻 C
📖 第 1 页 / 共 5 页
字号:
#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 + -