📄 idleapp.c
字号:
if (!datejust_reminder_shown && RTC_is_MS_FirstPowerOn())
#else
if (!datejust_reminder_shown)
#endif
{
DisplayPopup((PU8) GetString(STR_DATE_TIME_UPDATE_REMINDER), IMG_GLOBAL_OK, 0, 2000, 0);
datejust_reminder_shown = MMI_TRUE;
}
#endif /* defined(__MMI_DATE_TIME_SETTING_REMINDER__) */
}
/*****************************************************************************
* FUNCTION
* mmi_idle_dummy_key_in_screensaver
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
static void mmi_idle_dummy_key_in_screensaver(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 i;
U8 ScreenSaverStatus, ScreenSaverWait;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (IsClamClose())
{
return ;
}
PhnsetGetScrSvrSetings(&ScreenSaverStatus, &ScreenSaverWait);
/* Compensatory key handler registration for screen saver. */
/* The idea here is to set those keys which are not set with handlers to a dummy handler. */
/* But not that END key is still being set a handler (DisplayIdleScreen) */
/* for KEY_EVENT_DOWN in PowerAndEndKeyHandler. */
if (g_keylock_context.gKeyPadLockFlag)
{
if (ScreenSaverStatus == 1) /* Screensaver is set to on */
{
for (i = KEY_0; i < MAX_KEYS; i++)
{
if ((GetKeyHandler(i, KEY_EVENT_DOWN) == NULL) && (GetKeyHandler(i, KEY_EVENT_UP) == NULL))
{
SetKeyHandler(mmi_idle_dummy_key_handler, i, KEY_EVENT_DOWN);
}
}
/* add this because of PowerAndEndKeyHandler */
#ifndef __MMI_KEYPAD_LOCK_PROMPT_TEXT__
/* diamond, 2005/12/20 END key is registered to prompt text if __MMI_KEYPAD_LOCK_PROMPT_TEXT__ is on */
SetKeyHandler(mmi_idle_dummy_key_handler, KEY_END, KEY_EVENT_DOWN);
#endif /* __MMI_KEYPAD_LOCK_PROMPT_TEXT__ */
}
}
else
{
if (ScreenSaverStatus == 1) /* Screensaver is set to on */
{
for (i = KEY_0; i < MAX_KEYS; i++)
{
dummyKeyHandler[i] = GetKeyHandler(i, KEY_EVENT_DOWN);
SetKeyHandler(mmi_idle_dummy_key_handler, i, KEY_EVENT_DOWN);
}
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_set_eg_events
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
extern void nor_sweep_device(void);
static void mmi_idle_set_eg_events(void)
{
#ifdef __MTK_TARGET__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
pBOOL egIsSet = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (!egIsSet)
{
nor_sweep_device();
egIsSet = 1;
}
#endif /* __MTK_TARGET__ */
}
/*****************************************************************************
* FUNCTION
* mmi_idle_start_keypad_lock
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_idle_start_keypad_lock(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_idle_set_eg_events();
if (!g_keylock_context.gKeyPadLockFlag) /* keypad isn't lock now */
{
SETTING_AKPL_TIME GetAutoLockTimeOut = GetAutoKeypadLockTime();
switch (GetAutoLockTimeOut)
{
case TIME_0:
g_idle_context.AutoLockTimeOut = 0;
break;
case TIME_5:
g_idle_context.AutoLockTimeOut = 5000;
break;
case TIME_30:
g_idle_context.AutoLockTimeOut = 30000;
break;
case TIME_60:
g_idle_context.AutoLockTimeOut = 60000;
break;
case TIME_2:
g_idle_context.AutoLockTimeOut = 300000;
break;
}
if (g_idle_context.AutoLockTimeOut != 0)
{
PRINT_INFORMATION(("[Keypad Lock] mmi_idle_start_keypad_lock: Timer %d start", g_idle_context.AutoLockTimeOut));
#ifdef __MMI_SIMAP_SUPPORT__
if (mmi_bootup_is_sim_valid() == MMI_TRUE || mmi_bootup_get_active_bt_access_profile_mode() == MMI_TRUE)
#else
if (mmi_bootup_is_sim_valid() == MMI_TRUE)
#endif
{
StartTimer(IDLE_APP_AUTO_LOCK_TIMER_ID, g_idle_context.AutoLockTimeOut, IdleSetKeyPadLockFlag);
}
else
{
StartTimer(IDLE_APP_AUTO_LOCK_TIMER_ID, g_idle_context.AutoLockTimeOut, InsertSimSetKeyPadLockFlag);
}
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_restart_keypad_lock_timer
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_idle_restart_keypad_lock_timer(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_keylock_context.gKeyPadLockFlag == 1)
{
return;
}
if (g_idle_context.AutoLockTimeOut != 0 &&
(g_idle_context.IsOnIdleScreen == 1 || g_idle_context.IsOnSimErrorScreen == 1))
{
StopTimer(IDLE_APP_AUTO_LOCK_TIMER_ID);
if (g_idle_context.IsOnIdleScreen == 1)
{
StartTimer(IDLE_APP_AUTO_LOCK_TIMER_ID, g_idle_context.AutoLockTimeOut, IdleSetKeyPadLockFlag);
}
if (g_idle_context.IsOnSimErrorScreen == 1)
{
StartTimer(IDLE_APP_AUTO_LOCK_TIMER_ID, g_idle_context.AutoLockTimeOut, InsertSimSetKeyPadLockFlag);
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_start_screensaver
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_idle_start_screensaver(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 ScreenSaverStatus, ScreenSaverWait;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PhnsetGetScrSvrSetings(&ScreenSaverStatus, &ScreenSaverWait);
if (ScreenSaverStatus == 0xFF)
{
PhnsetRstScrSvrDefault();
}
if (ScreenSaverStatus == 1) /* Screensaver is set to on */
{
StartTimer(SCREENSAVER_TIMER, ScreenSaverWait * 1000, EntryIdleSetScreenSaver);
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_restart_screensaver_timer
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_idle_restart_screensaver_timer(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 ScreenSaverStatus, ScreenSaverWait;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_idle_context.ScreenSaverRunFlag == 1) /* screensaver is running */
{
return;
}
if (g_idle_context.IsOnIdleScreen == 1)
{
PhnsetGetScrSvrSetings(&ScreenSaverStatus, &ScreenSaverWait);
if (ScreenSaverStatus == 0xFF)
{
PhnsetRstScrSvrDefault();
}
if (ScreenSaverStatus == 1) /* screensaver is active */
{
StopTimer(SCREENSAVER_TIMER);
StartTimer(SCREENSAVER_TIMER, ScreenSaverWait * 1000, EntryIdleSetScreenSaver);
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_is_on_idle_screen
* DESCRIPTION
* Is on idle screen?
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
pBOOL mmi_idle_is_on_idle_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_idle_context.IsOnIdleScreen == 1)
{
return MMI_TRUE;
}
else
{
return MMI_FALSE;
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_is_screensaver_running
* DESCRIPTION
* Is screensaver running?
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
pBOOL mmi_idle_is_screensaver_running(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_idle_context.ScreenSaverRunFlag == 1)
{
return MMI_TRUE;
}
else
{
return MMI_FALSE;
}
}
/*****************************************************************************
* FUNCTION
* mmi_idle_entry_idle_screen
* DESCRIPTION
* Idle screen with/without keypad lock
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_idle_entry_idle_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 IdleScreenDigits[MAX_IDLE_SCREEN_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 */
/*----------------------------------------------------------------*/
IdleRefreshServiceIndicationArea(); /* Refresh Service Indication Area */
#if ( (defined __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) && !(defined __MMI_TOUCH_IDLESCREEN_SHORTCUTS__)) /* PMT MANISH 20050623 */
EnableCenterSoftkey(0, IMG_CSK_DIAL_ICON);
#endif
//wangbei add begin 20071010
#ifdef __NEW_IDLE_SCREEN_UI_STYLE__
EnableCenterSoftkey(0, IMG_CSK_DIAL_ICON);
#endif
//wangbei add end
#ifdef __MMI_SWFLASH__
if (dispchar_iswp_swflash())
ShowCategory34Screen(IDLE_SCREEN_LSK_TEXT, IDLE_SCREEN_LSK_ICON, idleLRStringtID, IDLE_SCREEN_RSK_ICON, PhnsetGetCurWallPaperIdx(), idle_screen_wallpaper_name, NULL);
else
#endif /* _MMI_SWFLASH__ */
#ifdef __MMI_SWAP_LSK_RSK_IN_IDLE_SCREEN__
ShowCategory33Screen(IDLE_SCREEN_RSK_TEXT, IDLE_SCREEN_RSK_ICON, idleLRStringtID, IDLE_SCREEN_LSK_ICON, NULL);
#else
ShowCategory33Screen(IDLE_SCREEN_LSK_TEXT, IDLE_SCREEN_LSK_ICON, idleLRStringtID, IDLE_SCREEN_RSK_ICON, NULL);
#endif
g_idle_context.LongPressEnable = 0;
SetGroupKeyHandler(HandleIdleScreenDigitEntry, IdleScreenDigits, MAX_IDLE_SCREEN_DIGITS - 1, KEY_EVENT_DOWN);
IdleSetLRKey(); /* __MANUAL_MODE_NW_SEL__ */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_status_icon_pen_event_hdlr(
STATUS_ICON_KEYPAD_LOCK,
WGUI_STATUS_ICON_BAR_PEN_LONG_PRESS_ICON,
IdleSetKeyPadLockFlag);
#endif /* __MMI_TOUCH_SCREEN__ */
#if ( (defined __MMI_WGUI_CSK_ENABLE__) && (defined __MMI_TOUCH_SCREEN__) && !(defined __MMI_TOUCH_IDLESCREEN_SHORTCUTS__)) /* PMT MANISH 20050623 */
SetCenterSoftkeyFunction(IdleScreenDigitHandler, KEY_EVENT_UP);
#endif
//wangbei add begin 20071010
#ifdef __NEW_IDLE_SCREEN_UI_STYLE__
SetCenterSoftkeyFunction(IdleScreenDigitHandler, KEY_EVENT_UP);
#endif
//wangbei add end
#ifdef __MMI_TOUCH_DIAL_SCREEN__
memset((U8*) g_idle_context.DialPadCallBuffer, 0, sizeof((U8*) g_idle_context.DialPadCallBuffer));
#endif
/* Voice Recognition */
#if defined(__MMI_VRSD__)
SetRightSoftkeyFunction(mmi_vrsd_rcg_pre_entry, KEY_LONG_PRESS);
#endif
#if defined(__MMI_VRSI__)
SetRightSoftkeyFunction(mmi_vrsi_rcg_pre_entry, KEY_LONG_PRESS);
#endif
/* for 4-dedicated shortcuts */
#if defined(__MMI_DEDICATED_KEY_SHORTCUTS__)
RegisterDedicatedKeyHandlers();
#elif !defined(__DISABLE_SHORTCUTS_MENU__)
SetKeyHandler(EntryShctInIdle, KEY_UP_ARROW, KEY_EVENT_DOWN);
#endif
/* sync the behavior with DisplayIdleScreen */
CHISTResetCallLogIndex();
#ifdef __MMI_KLG__
SetKeyHandler(fmgr_launch, KEY_EXTRA_1, KEY_EVENT_UP);
SetKeyHandler(ClndrPreEntryApp, KEY_EXTRA_2, KEY_EVENT_UP);
#endif /* __MMI_KLG__ */
#ifdef __MMI_UI_CALL_LOG_IN_TAB_PANE__
SetKeyHandler(EntryCHISTTabPaneIdleScreen, KEY_SEND, KEY_EVENT_DOWN); /* diamond, 2005/09/13 key event DOWN to UP */
#else
SetKeyHandler(CHISTGetCallLogBySENDKey, KEY_SEND, KEY_EVENT_DOWN); /* diamond, 2005/09/13 key event DOWN to UP */
#endif
#if defined(WAP_SUPPORT) && defined(__MMI_WITH_WAP_KEY__)
SetKeyHandler(wap_internet_key_hdlr, KEY_WAP, KEY_LONG_PRESS);
//zx add begin 20070410
//SetKeyHandler(EntryMainMenuFromIdleScreen,KEY_WAP,KEY_EVENT_UP); //zx del 20070523
#ifdef PLX_APP_SUPPORT // wangbei add 20070618
SetKeyHandler(PlxDsmMain,KEY_WAP,KEY_EVENT_UP); //zx add 20070523
#endif // wangbei add 20070618
//zx add end
#endif
/* camera fast access key */
#ifdef __MMI_CAMERA__
#ifdef __MMI_IDLE_CAMERA_KEY_TO_STOP_AUDIOPLAYER__
SetKeyHandler(CheckAndStopAudioPlayer, CAMERA_SHORTCUT_KEY, KEY_EVENT_UP);
#else
#ifdef __MMI_SUBLCD_CAMERA__
if (IsClamClose())
SetKeyHandler(mmi_sublcd_camera_entry_option_screen, CAMERA_SHORTCUT_KEY, KEY_EVENT_DOWN);
else
SetKeyHandler(mmi_camera_entry_app_screen, CAMERA_SHORTCUT_KEY, KEY_EVENT_DOWN);
#else
//zx modify begin 20070410 //改为待机时长按侧键进入拍照预览功能
//SetKeyHandler(mmi_camera_entry_app_screen, CAMERA_SHORTCUT_KEY, KEY_EVENT_DOWN);
SetKeyHandler(mmi_camera_entry_app_screen, CAMERA_SHORTCUT_KEY, KEY_EVENT_LONG_PRESS);
//zx modify end
#endif
#endif /* __MMI_IDLE_CAMERA_KEY_TO_STOP_AUDIOPLAYER__ */
#endif /* __MMI_CAMERA__ */
/* volume key */
SetDefaultVolumeKeyHandlers();
ForceSubLCDScreen(ShowIdleAppSubLcd);
/*
* Compensatory key handler registration for screen saver
* The idea here is to set those keys which are not set with handlers to a dummy handler.
* But not that END key is still being set a handler (DisplayIdleScreen) for KEY_EVENT_DOWN in PowerAndEndKeyHandler.
*/
mmi_idle_dummy_key_in_screensaver();
#if defined(__MMI_WLAN_FEATURES__) && defined(__MMI_VOIP__)
if (mmi_netset_get_active_preferred_mode() == P_WLAN_ONLY || mmi_netset_get_active_preferred_mode() == P_WLAN_PREFERRED)
{
mmi_netset_set_dial_mode(DIAL_MODE_WLAN);
}
else
{
mmi_netset_set_dial_mode(DIAL_MODE_GSM);
}
#endif /* defined(__MMI_WLAN_FEATURES__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -