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

📄 simdetection.c

📁 MTK6226修改平台UI的文件介绍
💻 C
📖 第 1 页 / 共 5 页
字号:
    /*----------------------------------------------------------------*/
#ifdef __MMI_WLAN_FEATURES__
    if (mmi_netset_get_active_preferred_mode() != P_GSM_ONLY)
    {
        EntryIdleScreen();
        return;
    }
#endif /* __MMI_WLAN_FEATURES__ */
    // wangbei add start 20071010
   #ifdef __NEW_IDLE_SCREEN_UI_STYLE__
    IdleRefreshServiceIndicationArea();
    #endif
    // wangbei add end
    EntryNewScreen(SCR_SIM_INSERTION, ExitScrnSimErrorScreen, EntryScrnSimErrorScreen, NULL);

#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
    if (is_redrawing_old_screens())
    {
    #if ( (defined  __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) )
        EnableCenterSoftkey(0, IMG_CSK_DIAL_ICON);
    #endif 
        if (g_keylock_context.gKeyPadLockFlag == 0)
        {
            ShowCategory123Screen(
                0,
                0,
                STR_GLOBAL_OPTIONS,
                IMG_GLOBAL_OPTIONS,
                STR_RSK_SOS,
                0,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);
        }
        else
        {
            ShowCategory123Screen(
                0,
                0,
                g_keylock_context.KeyLockLSKStringID,
                g_keylock_context.KeyLockLSKIconID,
                g_keylock_context.KeyLockRSKStringID,
                g_keylock_context.KeyLockRSKIconID,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);
        }
        return;
    }
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */

    DinitHistory();         /* Dinit History is called to prevent memory leak */
    DeInitSpecialMode();    /* Back from engineer mode or factory mode */

    g_pwr_context.SOSCallFlagTOAvoidHistorySave = 0;

    g_pwr_context.PrevScreenIndicator = ENTER_SIM_INSERTION;
    g_idle_context.IsOnSimErrorScreen = 1;

    /* Fix the case that caller group LED could not demo after entering FM/EM and then back to INSERT_SIM */
#if ( defined(__MMI_ENGINEER_MODE__) || defined(__MMI_FACTORY_MODE__))
    gCurrentMode = NORMAL_MODE;
#endif 

#ifdef __MMI_DOWNLOAD_AGENT__
    mmi_da_enter_idle_screen_notify();
#endif 

    /* Provide Java functions in the SIM error main menu */
#ifdef __J2ME__
    jvm_enter_idle_screen_notify();
#endif 

    /* diamond, 2005/10/29, keypad lock in insert sim screen */
    mmi_idle_start_keypad_lock();
    if (mmi_bootup_get_active_flight_mode() == 0)
    {
        mmi_frm_kbd_reg_pre_key_hdlr(IdleScreenEmergencyCallCheckNKeypadLock);
    }
    /* end, diamond */

    guiBuffer = GetCurrGuiBuffer(SCR_SIM_INSERTION);

    ShowSubLCDScreen(ShowSubLCDSimError);
    DinitSubLCDHistory();

#if ( (defined  __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) )
    EnableCenterSoftkey(0, IMG_CSK_DIAL_ICON);
#endif 

    if (0)
    {
    }
#ifdef __J2ME__
    else if (mmi_java_is_launch_after_install())
    {
        mmi_java_send_mid_start_req(GAMETYPE_JAVA_GAME);
        mmi_sim_error_register_keypad_lock_key_events();
    }
#endif /* __J2ME__ */ 
#if (defined(__MMI_VCARD__) || defined(__MMI_VCALENDAR__)) && defined(MMI_ON_HARDWARE_P)
    else if (mmi_vobj_is_pending_object())
    {
        mmi_vobj_entry_recv_object(); /* unread vObjects */
        mmi_sim_error_register_keypad_lock_key_events();
    }
#endif /* defined(__MMI_VCARD__) || defined(__MMI_VCALENDAR__)) && defined(MMI_ON_HARDWARE_P) */
#ifdef __MMI_OPP_SUPPORT__
    else if (mmi_opp_get_recv_files_cnt())
    {
        mmi_opp_entry_idle_notify_scr(); /* files from Bluetooth */
        mmi_sim_error_register_keypad_lock_key_events();
    }
#endif /* __MMI_OPP_SUPPORT__ */
#ifdef __MMI_DOWNLOAD_AGENT__
    else if (mmi_da_launch_ring_buffer_check())
    {
        mmi_da_entry_new_push_ind();
        mmi_sim_error_register_keypad_lock_key_events();
    }
#endif /* __MMI_DOWNLOAD_AGENT__ */ 
    else
    {
        if (g_keylock_context.gKeyPadLockFlag == 0) /* keypad is not locked */
        {
            ShowCategory123Screen(
                0,
                0,
                STR_GLOBAL_OPTIONS,
                IMG_GLOBAL_OPTIONS,
                STR_RSK_SOS,
                0,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);

        #if ( (defined __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) )
            SetCenterSoftkeyFunction(HandleInsertSIMScrDigitEntry, KEY_EVENT_UP);
        #endif 

            SetLeftSoftkeyFunction(EntryScrSimOptionMenu, KEY_EVENT_UP);

        #if ( (defined __FLIGHT_MODE_SUPPORT__) && (defined __MMI_TOUCH_SCREEN__) )
            if (mmi_bootup_get_active_flight_mode() == 1)
                SetRightSoftkeyFunction(mmi_flight_mode_popup_in_dialing_sos, KEY_EVENT_UP);
            else
        #endif
                SetRightSoftkeyFunction(ShowMakeSOSCallScr, KEY_EVENT_UP);

            SetGroupKeyHandler(
                HandleInsertSIMScrDigitEntry,
                InsertSIMScreenDigits,
                MAX_INSERT_SCR_DIGITS - 1,
                KEY_EVENT_DOWN);

            SetDefaultVolumeKeyHandlers();

        #ifdef __MMI_CAMERA__
        #ifdef __MMI_IDLE_CAMERA_KEY_TO_STOP_AUDIOPLAYER__
            SetKeyHandler(CheckAndStopAudioPlayer, CAMERA_SHORTCUT_KEY, KEY_EVENT_UP);
        #else
            SetKeyHandler(mmi_camera_entry_app_screen, CAMERA_SHORTCUT_KEY, KEY_EVENT_DOWN);
        #endif
        #endif /* __MMI_CAMERA__ */

        #ifdef __MMI_TOUCH_SCREEN__
            wgui_register_status_icon_pen_event_hdlr(
                STATUS_ICON_KEYPAD_LOCK,
                WGUI_STATUS_ICON_BAR_PEN_LONG_PRESS_ICON,
                InsertSimSetKeyPadLockFlag);
        #endif /* __MMI_TOUCH_SCREEN__ */ 
         //wangbei add begin 20071010
        #ifdef __NEW_IDLE_SCREEN_UI_STYLE__
            RegisterDedicatedKeyHandlers();
        #endif
        //wangbei add end

        }
        else
        {
            mmi_idle_set_keypad_lock_string();

        #if (defined  __MMI_TOUCH_SCREEN__ && defined __MMI_WGUI_CSK_ENABLE__ )
            ResetCenterSoftkey();
        #endif 

            ShowCategory123Screen(
                0,
                0,
                g_keylock_context.KeyLockLSKStringID,
                g_keylock_context.KeyLockLSKIconID,
                g_keylock_context.KeyLockRSKStringID,
                g_keylock_context.KeyLockRSKIconID,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);

        #if defined(__MMI_KEYPAD_LOCK_PROMPT_TEXT__)
            SetGroupKeyHandler(
                EntryScrKeyPadLockOnPessingAnyKey,
                (PU16) PresentAllKeys,
                (U8) TOTAL_KEYS,
                (U16) KEY_EVENT_DOWN);
        #endif /* defined(__MMI_KEYPAD_LOCK_PROMPT_TEXT__) */ 

        #ifdef __MMI_TOUCH_SCREEN__
            mmi_idle_pen_block();   /* diamond, 2005/12/22 Disable touch panel if re-entry idle keypad lock screen */
            SetKeyHandler(EntryScrAfterPessingRSK, KEY_SEND, KEY_EVENT_DOWN);
        #else /* __MMI_TOUCH_SCREEN__ */ 
        #ifdef __MMI_KEYPAD_LOCK_PATTERN_1__    /* Robin 1223 */
            SetRightSoftkeyFunction(EntryScrAfterPessingRSK, KEY_EVENT_UP);
        #endif 

        #ifdef __MMI_KEYPAD_LOCK_PATTERN_2__    /* Robin 1223 */
            SetLeftSoftkeyFunction(EntryScrAfterPessingRSK, KEY_EVENT_UP);
        #endif 
        #endif /* __MMI_TOUCH_SCREEN__ */
             //wangbei add begin 20071010
        #ifdef __NEW_IDLE_SCREEN_UI_STYLE__
            RegisterDedicatedKeyHandlers();
        #endif
        //wangbei add end
            if (g_idle_context.IsRSKPressOnScreenSaver)
            {
                EntryScrAfterPessingRSK();
                g_idle_context.IsRSKPressOnScreenSaver = 0;
            }
        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  ExitScrnSimErrorScreen
 * DESCRIPTION
 *  Exit screen when no SIM is inserted
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void ExitScrnSimErrorScreen(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_idle_context.IsOnSimErrorScreen = 0;
    mmi_frm_kbd_reg_pre_key_hdlr(NULL);
#if ( (defined  __MMI_WGUI_CSK_ENABLE__) && defined (__MMI_TOUCH_SCREEN__) )
    ResetCenterSoftkey();
#endif 

    if (g_keylock_context.gKeyPadLockFlag == 1)
    {
    #ifdef __MMI_TOUCH_SCREEN__
        ChangeStatusIconImage(STATUS_ICON_KEYPAD_LOCK, IMG_SI_KEYPAD_UNLOCK);
        mmi_pen_unblock();  /* diamond, 2005/12/22 Enable touch panel if exit idle keypad lock screen */
    #else 
        HideStatusIcon(STATUS_ICON_KEYPAD_LOCK);
    #endif 
    }

#ifdef __MMI_TOUCH_SCREEN__
    wgui_reset_status_icon_pen_event_hdlr();
#endif /* __MMI_TOUCH_SCREEN__ */ 

    StopTimer(IDLE_APP_AUTO_LOCK_TIMER_ID);
}


/*****************************************************************************
 * FUNCTION
 *  ShowSubLCDSimError
 * DESCRIPTION
 *  Entry screen for sublcd when no SIM is inserted
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void ShowSubLCDSimError(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 stringID =
        (simErrorDisplayString ==
         SIM_ERROR_DISPLAY_SIM_ACCESS_ERROR) ? STR_SUBLCD_SIM_ACCESS_ERROR_MSG : STR_SUBLCD_SIM_INSERTION_MSG;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ExecSubLCDCurrExitHandler();
#ifdef __MMI_SUBLCD_SHOW_ANALOG_CLOCK__
    if (IsClamClose())
    {
        ShowSubLCDAnalogClockScreen();
    }
    else
    {
        ShowSubLCDLogoString();
    }
#else /* __MMI_SUBLCD_SHOW_ANALOG_CLOCK__ */ 
    ShowCategory301Screen((PU8) GetString(stringID), 0, NULL);
#endif /* __MMI_SUBLCD_SHOW_ANALOG_CLOCK__ */ 
    SetSubLCDExitHandler(ExitSubLCDSimError);
    g_idle_context.IsSubLcdOnIdleScreen = SUBLCD_ON_IDLE_INSERT_SIM;
}


/*****************************************************************************
 * FUNCTION
 *  ExitSubLCDSimError
 * DESCRIPTION
 *  Exit screen for sublcd when no SIM is inserted
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void ExitSubLCDSimError(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    SubLCDHistoryNode SubLCDHistory;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    SubLCDHistory.entryFuncPtr = ShowSubLCDSimError;
    AddSubLCDHistory(&SubLCDHistory);
    g_idle_context.IsSubLcdOnIdleScreen = SUBLCD_NOT_ON_IDLE;
}

/**************************************************************************
   SIM Blocked APIs:
      void ExitScrnSimBlockRsp(void)
      void EntryScrnSimBlockRsp(void)
      void ShowSubLCDBlockedSIM(void)
      void ExitSubLCDBlockedSIM(void)
**************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  ExitScrnSimBlockRsp
 * DESCRIPTION
 *  Exit screen when SIM is blocked
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void ExitScrnSimBlockRsp(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_idle_context.IsOnSimErrorScreen = 0;
    mmi_frm_kbd_reg_pre_key_hdlr(NULL);
#if ( (defined  __MMI_WGUI_CSK_ENABLE__) && defined (__MMI_TOUCH_SCREEN__) )
    ResetCenterSoftkey();
#endif 

    if (g_keylock_context.gKeyPadLockFlag == 1)
    {
    #ifdef __MMI_TOUCH_SCREEN__
        ChangeStatusIconImage(STATUS_ICON_KEYPAD_LOCK, IMG_SI_KEYPAD_UNLOCK);
        mmi_pen_unblock();  /* diamond, 2005/12/22 Enable touch panel if exit idle keypad lock screen */
    #else 
        HideStatusIcon(STATUS_ICON_KEYPAD_LOCK);
    #endif 
    }

#ifdef __MMI_TOUCH_SCREEN__
    wgui_reset_status_icon_pen_event_hdlr();
#endif /* __MMI_TOUCH_SCREEN__ */ 

    StopTimer(IDLE_APP_AUTO_LOCK_TIMER_ID);
}


/*****************************************************************************
 * FUNCTION
 *  EntryScrnSimBlockRsp
 * DESCRIPTION
 *  Entry screen when SIM is blocked
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void EntryScrnSimBlockRsp(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 *guiBuffer;  /* Buffer holding history data */
    U16 BlockSIMScreenDigits[MAX_INSERT_SCR_DIGITS] =
        {KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_STAR, KEY_POUND};

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#ifdef __MMI_WLAN_FEATURES__
    if (mmi_netset_get_active_preferred_mode() != P_GSM_ONLY)
    {
        EntryIdleScreen();
        return;
    }
#endif /* __MMI_WLAN_FEATURES__ */

    EntryNewScreen(SCR_SIM_BLOCK, ExitScrnSimBlockRsp, EntryScrnSimBlockRsp, NULL);

#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
    if (is_redrawing_old_screens())
    {
    #if ( (defined  __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) )
        EnableCenterSoftkey(0, IMG_CSK_DIAL_ICON);
    #endif 
        if (g_keylock_context.gKeyPadLockFlag == 0)
        {
            ShowCategory123Screen(
                0,
                0,
                STR_GLOBAL_OPTIONS,
                IMG_GLOBAL_OPTIONS,
                STR_RSK_SOS,
                0,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);
        }
        else
        {
            ShowCategory123Screen(
                0,
                0,
                g_keylock_context.KeyLockLSKStringID,
                g_keylock_context.KeyLockLSKIconID,
                g_keylock_context.KeyLockRSKStringID,
                g_keylock_context.KeyLockRSKIconID,
                simErrorDisplayString,
                IMG_GLOBAL_WARNING,
                NULL);
        }
        return;
    }
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */

    DinitHistory();         /* Dinit History is called to prevent memory leak */
    DeInitSpecialMode();    /* Back from engineer mode or factory mode */

    g_pwr_context.SOSCallFlagTOAvoidHistorySave = 0;

    g_pwr_context.PrevScreenIndicator = ENTER_SIM_BLOCK;
    g_idle_context.IsOnSimErrorScreen = 1;

#ifdef __MMI_DOWNLOAD_AGENT__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -