[\plutommi\mmi\messages\messagessrc\MessagesMiscell.c]
void mmi_msg_new_msg_ind(U16 index)
{
[…]
// 弹出新短信提示框
if (MMI_FRM_SMS_APP_BIZUNREAD == mmi_frm_sms_msg_box[index].msgtype)
{
mmi_msg_entry_new_msg_popup(MSG_NEW_MSG_BUSINESS);// 弹出新业务短信提示框
}
else
{
mmi_msg_entry_new_msg_popup(MSG_NEW_MSG_NORMAL);
}
[…]
mmi_msg_entry_new_msg_ind();
[…]
}
[\plutommi\mmi\Messages\MessagesSrc\MessagesMiscell.c]
void mmi_msg_entry_new_msg_ind(void)
{
[…]
if(MMI_FRM_SMS_APP_BIZUNREAD == mmi_frm_sms_msg_box[g_msg_cntx.msg_ind_index].msgtype)
{
titleID = STR_NEW_BUSINESS_MESSAGE_FROM;
}
else
{
titleID = STR_NEW_MESSAGE_FROM_ID;
}
[…]
// 在待机界面显示“新短信来自:”
ShowCategory154Screen(
0,
0,
STR_SCR6035_LSK,
IMG_SMS_COMMON_NOIMAGE,
STR_GLOBAL_BACK,
IMG_SMS_COMMON_NOIMAGE,
(PU8) GetString(titleID),
(PU8) mmi_msg_get_new_msg_ind_string(),
IMG_NEW_MESSAGE_NOTIFICATION_MSG_IN_IDLE,
NULL);
[…]
}
4.3、阅读新短信
4.3.1、响应【读取】键、发送“读取”请求
void mmi_msg_get_msg_new(void)
{
[...]
g_msg_cntx.msg_ind_in_idle = FALSE;
mmi_msg_get_msg_req(MMI_FRM_SMS_APP_NOBOX, g_msg_cntx.msg_ind_index);
mmi_frm_sms_get_list_index(&type, &list_index, g_msg_cntx.msg_ind_index);
[...]
if (!pending)
{
if (type == MMI_FRM_SMS_BIZUNREAD || type == MMI_FRM_SMS_BIZINBOX)
{
mmi_msg_exit_bizbox_list_dummy();
g_msg_cntx.toDisplayMessageList = TO_DISPLAY_MESSAGE_LIST_BIZBOX;
}
else
{
mmi_msg_exit_inbox_list_dummy();
g_msg_cntx.toDisplayMessageList = TO_DISPLAY_MESSAGE_LIST_INBOX;
}
}
[...]
}
4.3.2、设置【返回】键路径
[\plutommi\mmi\Messages\MessagesSrc\MessagesMiscell.c]
void mmi_msg_exit_bizbox_list_dummy(void)
{
history currHistory;
memset(&currHistory, 0, sizeof(currHistory));
currHistory.scrnID = SCR_ID_MSG_BIZBOX_LIST;
SetMessagesCurrScrnID(0);
g_msg_cntx.MessagesScrnIdToDelHistoryNodes = SCR_ID_MSG_BIZBOX_LIST;
g_msg_cntx.MessagesScrnIdDelUptoHistoryNodes = SCR_ID_MSG_BIZBOX_LIST;
currHistory.entryFuncPtr = mmi_msg_entry_bizbox_list;//详见3.4 查看业务信箱
memset((S8*) currHistory.inputBuffer, 0, ENCODING_LENGTH);
AddHistory(currHistory);
}
4.3.3、接收“读取”请求的回复
[\plutommi\mmi\miscframework\miscframeworksrc\SMSMsg.c]
void mmi_frm_sms_read_sms_rsp(void *inMsg)
{
[...]
case SMSAL_REC_READ: mmi_frm_sms_msg_box[g_msg_cntx.msg_ind_index].msgtype;
type = (msgRsp->mti << 12) | mmi_frm_sms_index_list[g_msg_cntx.msg_ind_index].prevtype;
[...]
mmi_frm_sms_callback_action(&type, result);
}
[\plutommi\mmi\messages\messagessrc\SmsPsHandler.c]
void mmi_msg_get_msg_rsp(void *data, module_type mod, U16 result)
{
[...]
case MMI_FRM_SMS_BIZBOX:
mmi_msg_entry_bizbox_msg();
[...]
}
4.3.4、显示短信内容
[\plutommi\mmi\messages\messagessrc\SmsMoMtGuiInterface.c]
void mmi_msg_entry_bizbox_msg(void)
{
U8 *guiBuffer = NULL;
U8 *pHeader;
EMSData *pEms;
U16 strtitle;
if (IsScreenPresent(SCR_ID_MSG_PROCESSING))
{
HistoryReplace(SCR_ID_MSG_PROCESSING, SCR_ID_MSG_BIZBOX_MSG, mmi_msg_entry_bizbox_msg);
return;
}
EntryNewScreen(SCR_ID_MSG_BIZBOX_MSG, mmi_msg_exit_generic, mmi_msg_entry_bizbox_msg, NULL);
PRINT_INFORMATION_2((MMI_TRACE_G6_SMS, "*[SmsMoMtGuiInterface.c] mmi_msg_entry_bizbox_msg *\n"));
#ifdef __UNIFIED_MESSAGE_LIST_OPTION_SUPPORT__
if (IsScreenPresent(SCR_ID_MSG_BIZBOX_LIST_OPTION))
{
SetMessagesScrnIdToDelHistoryNodes(SCR_ID_MSG_BIZBOX_LIST_OPTION);
}
else
#endif /* __UNIFIED_MESSAGE_LIST_OPTION_SUPPORT__ */
{
SetMessagesScrnIdToDelHistoryNodes(SCR_ID_MSG_BIZBOX_MSG);
}
SetMessagesCurrScrnID(SCR_ID_MSG_BIZBOX_MSG);
GetCurrEndKeyDownHandler();
guiBuffer = GetCurrGuiBuffer(SCR_ID_MSG_BIZBOX_MSG);
GetEMSDataForView(&pEms, 0);
pHeader = mmi_msg_get_bizbox_header();
g_msg_cntx.number_from_phb = 0;
#if defined(__MMI_MESSAGES_EMS__)
EnableDisableAudioPlayback();
#endif
#ifdef __MMI_MESSAGES_CHAT__
if (pEms->listHead == NULL)
{
if (gChatInvitation)
{
SetChatInboxIndex(PendingSaveSendData.msgboxindex);
strtitle = STR_CHAT_INVITATION;
}
else if (CheckForInvitationMsg(pEms->textBuffer, (S32) pEms->textLength, TRUE) == TRUE)
{
SetChatInboxIndex(PendingSaveSendData.msgboxindex);
strtitle = STR_CHAT_INVITATION;
if (guiBuffer == NULL)
{
RemoveInvitationChar();
}
}
else
{
strtitle = STR_SCR6024_CAPTION;
gChatInvitation = 0;
}
}
else
{
strtitle = STR_SCR6024_CAPTION;
gChatInvitation = 0;
}
#else /* __MMI_MESSAGES_CHAT__ */
strtitle = 0; //strtitle = STR_SCR6024_CAPTION;
#endif /* __MMI_MESSAGES_CHAT__ */
ShowCategory39Screen(
(U16) strtitle,
IMG_SMS_ENTRY_SCRN_CAPTION,
STR_GLOBAL_OPTIONS,
IMG_SMS_COMMON_NOIMAGE,
STR_GLOBAL_BACK,
IMG_SMS_COMMON_NOIMAGE,
pEms,
pHeader,
guiBuffer);
#ifdef __MMI_MESSAGES_CHAT__
if (strtitle == STR_CHAT_INVITATION)
{
SetLeftSoftkeyFunction(mmi_msg_entry_option_chat, KEY_EVENT_UP);
}
else
{
SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP);
}
#else /* __MMI_MESSAGES_CHAT__ */
SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP);//设置【选项】
#endif /* __MMI_MESSAGES_CHAT__ */
SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP); // TODO: smsnote: overwrite LSK func?? (Tony said: old bug. keep it)
SetRightSoftkeyFunction(mmi_msg_go_back_from_bizbox_msg, KEY_EVENT_UP);
}
完整版本请见
曙海教育
曙海嵌入式学院3G通信培训中心
(MTK培训,Android培训,iPhone培训)
电话:021-51875830
网址:
讲师:李现路
版权所有-曙海教育 转发请注明出处
阅读(720) | 评论(0) | 转发(0) |