📄 jmmsumhandling.c
字号:
mms_count_rsp_p->inbox_read_msg_number = number - total_num_unread_messages;
mmi_mms_get_number_of_messages(MMI_JMMS_OUTBOX, &number);
mms_count_rsp_p->unsent_msg_number = number;
mmi_mms_get_number_of_messages(MMI_JMMS_SENT, &number);
mms_count_rsp_p->sent_msg_number = number;
mmi_mms_get_number_of_messages(MMI_JMMS_DRAFTS, &number);
mms_count_rsp_p->draft_msg_number = number;
if (g_jmms_context->store_context != NULL && g_jmms_context->store_context->messages_list != NULL)
{
mmi_jmms_free_msgs_list(&(g_jmms_context->store_context->messages_list));
}
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_GET_MSG_NUM_RSP;
Message.oslDataPtr = (oslParaType*) mms_count_rsp_p;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_get_message_list_rsp
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_get_message_list_rsp(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_get_list_rsp_struct *mms_list_rsp = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_list_rsp = (mmi_um_get_list_rsp_struct*) g_um_jmms_rsp_struct;
mms_list_rsp->result = KAL_TRUE;
mmi_um_jmms_generate_list(mms_list_rsp);
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_GET_LIST_RSP;
/* Send Response to MMI Queue */
Message.oslDataPtr = (oslParaType*) mms_list_rsp;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_get_mms_message_list_req
* DESCRIPTION
*
* PARAMETERS
* msg_list_req [?]
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_get_mms_message_list_req(mmi_um_get_list_req_struct *msg_list_req)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_um_get_list_rsp_struct *mms_list_rsp;
U8 number = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (msg_list_req->msg_box_type)
{
case UM_MSG_BOX_TYPE_INBOX:
mmi_mms_get_number_of_messages(MMI_JMMS_INBOX, &number);
break;
case UM_MSG_BOX_TYPE_UNSENT:
mmi_mms_get_number_of_messages(MMI_JMMS_OUTBOX, &number);
break;
case UM_MSG_BOX_TYPE_SENT:
mmi_mms_get_number_of_messages(MMI_JMMS_SENT, &number);
break;
case UM_MSG_BOX_TYPE_DRAFT:
mmi_mms_get_number_of_messages(MMI_JMMS_DRAFTS, &number);
break;
}
mms_list_rsp = (mmi_um_get_list_rsp_struct*) OslConstructDataPtr(sizeof(mmi_um_get_list_rsp_struct));
// memset(mms_list_rsp, 0, sizeof(mmi_um_get_list_rsp_struct));
mms_list_rsp->msg_type = UM_MSG_TYPE_MMS;
mms_list_rsp->msg_box_type = msg_list_req->msg_box_type;
mms_list_rsp->start_entry = msg_list_req->start_entry;
if (mms_list_rsp->start_entry + MMI_UM_MAX_GET_LIST_MSG_NUMBER < number)
{
mms_list_rsp->msg_number = MMI_UM_MAX_GET_LIST_MSG_NUMBER;
mms_list_rsp->more = TRUE;
}
else
{
mms_list_rsp->msg_number = number - mms_list_rsp->start_entry;
mms_list_rsp->more = FALSE;
}
g_um_jmms_rsp_struct = (void*)mms_list_rsp;
mmi_um_jmms_set_folder_list_callback_function(mmi_um_jmms_parse_mms_for_attachment);
if (g_jmms_context->store_context != NULL && g_jmms_context->store_context->messages_list != NULL)
{
mmi_jmms_free_msgs_list(&(g_jmms_context->store_context->messages_list));
}
mmi_um_jmms_get_fill_list(mms_list_rsp, ((mmi_um_get_list_req_struct*) msg_list_req));
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_get_mms_message_info_req
* DESCRIPTION
*
* PARAMETERS
* msg_info_req [?]
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_get_mms_message_info_req(mmi_um_get_msg_info_req_struct *msg_info_req)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_get_msg_info_rsp_struct *mms_info_rsp = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_info_rsp = (mmi_um_get_msg_info_rsp_struct*) OslConstructDataPtr(sizeof(mmi_um_get_msg_info_rsp_struct));
// memset(mms_info_rsp, 0, sizeof(mmi_um_get_msg_info_rsp_struct));
mms_info_rsp->result = KAL_TRUE;
mms_info_rsp->msg_type = UM_MSG_TYPE_MMS;
mms_info_rsp->msg_box_type = msg_info_req->msg_box_type;
mms_info_rsp->start_entry = msg_info_req->start_entry;
mms_info_rsp->msg_number = msg_info_req->msg_number;
mmi_um_jmms_get_fill_list_info(mms_info_rsp, msg_info_req);
mmi_um_jmms_at_delete_pre_set();
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_GET_MSG_INFO_RSP;
/* Send Response to MMI Queue */
Message.oslDataPtr = (oslParaType*) mms_info_rsp;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_delete_all_mms_message_req
* DESCRIPTION
*
* PARAMETERS
* msg_delete_all_req [?]
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_delete_all_mms_message_req(mmi_um_delete_folder_req_struct *msg_delete_all_req)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_delete_folder_rsp_struct *mms_delete_all_rsp = NULL;
JC_RETCODE eRet = JC_OK;
S16 number = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_delete_all_rsp =
(mmi_um_delete_folder_rsp_struct*) OslConstructDataPtr(sizeof(mmi_um_delete_folder_rsp_struct));
/* memset(mms_delete_all_rsp, 0, sizeof(mmi_um_delete_folder_rsp_struct)); */
mms_delete_all_rsp->msg_type = msg_delete_all_req->msg_type;
number = mmi_jmms_get_number_of_messages_from_msg_box_type(msg_delete_all_req->msg_box_type);
if(number >= 0)
{
if(number == 0)
{
mms_delete_all_rsp->result = KAL_TRUE;
}
else
{
#ifdef __USB_IN_NORMAL_MODE__
if(mmi_jmms_check_usb_mode() == 0)
#endif /*__USB_IN_NORMAL_MODE__*/
{
eRet = mmi_jmms_delete_all_msgs_list(msg_delete_all_req->msg_box_type);
if (eRet == JC_OK)
{
mms_delete_all_rsp->result = KAL_TRUE;
}
else
{
mms_delete_all_rsp->result = KAL_FALSE;
}
}
#ifdef __USB_IN_NORMAL_MODE__
else
{
mms_delete_all_rsp->result = KAL_FALSE;
}
#endif
}
}
else
{
mms_delete_all_rsp->result = KAL_FALSE;
}
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_DELETE_FOLDER_RSP;
/* Send Response to MMI Queue */
Message.oslDataPtr = (oslParaType*) mms_delete_all_rsp;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_ready_ind
* DESCRIPTION
* Function to send an indication to UM that browser is ready.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_ready_ind(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_ready_ind_struct *mms_um_ready_ind;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_um_ready_ind = (mmi_um_ready_ind_struct*) OslConstructDataPtr(sizeof(mmi_um_ready_ind_struct));
mms_um_ready_ind->result = KAL_TRUE;
mms_um_ready_ind->msg_type = UM_MSG_TYPE_MMS;
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_READY_IND;
/* Send Response to MMI Queue */
Message.oslDataPtr = (oslParaType*) mms_um_ready_ind;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_delete_all_mms_messages_rsp
* DESCRIPTION
* Function to recieve information that if user has confirmed
* to delete all mms messages or not.
* PARAMETERS
* result [IN] - confirmation of deletion of all messages.
* RETURNS
* void
*****************************************************************************/
void mmi_um_delete_all_mms_messages_rsp(U16 result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (result == KAL_TRUE && !(IsScreenPresent(SCR_ID_UM_INBOX) || IsScreenPresent(SCR_ID_UM_UNSENT)
|| IsScreenPresent(SCR_ID_UM_SENT) ||IsScreenPresent(SCR_ID_UM_DRAFT) ))
{
DeleteUptoScrID(SCR_ID_UM_MAIN);
}
}
/*****************************************************************************
* FUNCTION
* mmi_um_delete_highlight_folder
* DESCRIPTION
*
* PARAMETERS
* folder [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_um_delete_highlight_folder(um_msg_delete_folder_enum folder)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_delete_all_ind_struct *mms_delete_all_ind;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_delete_all_ind = (mmi_um_delete_all_ind_struct*) OslConstructDataPtr(sizeof(mmi_um_delete_all_ind_struct));
mms_delete_all_ind->msg_type = UM_MSG_TYPE_MMS;
mms_delete_all_ind->msg_box_type = folder;
/* Prepare response structure */
Message.oslSrcId = MOD_WAP;
Message.oslDestId = MOD_MMI;
Message.oslMsgId = MSG_ID_MMI_UM_DELETE_ALL_IND;
/* Send Response to MMI Queue */
Message.oslDataPtr = (oslParaType*) mms_delete_all_ind;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_new_mms_timestamp
* DESCRIPTION
* Function to send an indication to UM that a new m
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -