📄 simdetection.c
字号:
/*----------------------------------------------------------------*/
#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 + -