EntryIdleScreen步骤

开机进入idle的时候:
    //重置历史堆栈
    DinitHistory();
    ///开始屏幕变暗计时
    TurnOffBacklight();
    ///准备闹钟
    PendingAlarmReminder
    ///点亮手机屏幕?
    StartLEDPatternBackGround();
    //如果充电,则显示充电图标

if (g_charbat_context.isChargerConnected)
{
    StartTimer(BOOTUP_CHARGER_DETECT_TIMER, 3000, ChargerDetectTimeoutHdlr);
}

///告诉底层,已经到idle界面,开机完成
mmi_idle_notify_bootup_ready_to_l4c(); /* to L4C */
mmi_idle_notify_bootup_ready_to_wap(); /* to WAP */
mmi_idle_notify_bootup_ready_to_certman(); /* to CertMan */

    ///如果是其他屏幕进入idle,开始屏保和锁键盘
        gIsIdleScreenReentry = (GetActiveScreenId() == IDLE_SCREEN_ID ? MMI_TRUE : MMI_FALSE);

        if (!gIsIdleScreenReentry)
        {
            mmi_idle_start_screensaver();
            mmi_idle_start_keypad_lock();
        }
        gIsIdleScreenReentry = MMI_FALSE;

idle界面ui情况比较多:
大的情况分为三中
1。网络搜索完成
    if (mmi_bootup_is_network_searching_complete() || mmi_bootup_is_sim2_network_searching_complete())

mmi_idle_entry_idle_screen

    ShowCategory33Screen  

2。sim1卡注册失败,(为什么没sim2卡呢)?    
else if (!mmi_bootup_is_nw_registration_ok() && !g_pwr_context.InvalidSimShowed)

3.搜网状态 Displays network seaching animation

mmi_idle_entry_searching_screen();  ///进入搜网界面

    ShowCategory33Screen            

        SearchingSrceenTimeOutHandler       //timer 到时

             mmi_bootup_exit_network_searching

                     EntryIdleScreen             //再回到idle界面

 

 

 

小的情况又分为两种:
键盘未锁情况:        if (g_keylock_context.gKeyPadLockFlag == 0) /* keypad is not locked */
    {
    这个不知道是做什么的 ?
            /* if g_msg_cntx.msg_status is not in idle state, need to help SMS to clear action queue */
            if (mmi_msg_need_clear_action_queue())
            {
                mmi_frm_sms_delete_action_pending();
            }

   }
///如果有idle的中断回调(如未读短信),则执行,否则进入idle界面
if (mmi_idle_exe_callback() == MMI_FALSE)   /* no pending message */
{
         {
             mmi_idle_entry_idle_screen();
         }
   }
}

               //注册键盘被锁时的按键
              mmi_idle_generic_keypad_lock_key_hdlr()
键盘被锁       :

    //键盘锁定的字符以及状态栏图标的更换
          mmi_idle_set_keypad_lock_string();
          这个不知道是做什么的 ?
            /* if g_msg_cntx.msg_status is not in idle state, need to help SMS to clear action queue */
            if (mmi_msg_need_clear_action_queue())
            {
                mmi_frm_sms_delete_action_pending();
            }

      ///如果有idle的中断回调(如未读短信),则执行,否则就画idle界面
        if (mmi_idle_exe_callback() == MMI_FALSE)   /* no pending message */
        {
            //新版的idle界面
        mmi_vhs_show_homescreen()
        }

  //注册键盘被锁时的按键
    mmi_idle_generic_keypad_lock_key_hdlr()
    //注册优先按键响应函数,比如用于锁键盘时紧急电话的拨打
    mmi_frm_kbd_reg_pre_key_hdlr(IdleScreenEmergencyCallCheckNKeypadLock);

 

所以可以看出负责idle界面绘画的函数是 ShowCategory33Screen

所以如果要改idle界面,先对ShowCategory33Screen做修改,

同时还要注意到其他的情况也会来触发idle界面的重绘:

idle_screen_show_network_details       ///network

wgui_clock_update_main_lcd           //time

show_main_LCD_date_time

hide_main_LCD_date_time

wgui_status_icon_hide_status_icon_bars  ///隐藏status bar,即画透明

wgui_status_icon_refresh_status_icon_display //刷新status bar,即显示

          wgui_status_icon_show_status_icons

wgui_status_icon_change_status_icon_level //某个status icon 状态发生了改变

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值