📄 jmmsjsrhandler.c
字号:
{
is_message_deleted = MMI_FALSE;
break;
}
else
{
if (strcmp(fname, "Inbox") == 0)
{
mmi_jmms_free_pending_node_if_present(msgIndex);
mmi_jmms_delete_msg_status((U8) (msgIndex - 1));
}
is_message_deleted = MMI_TRUE;
break;
}
}
else
{
is_message_deleted = MMI_FALSE;
break;
}
}
pTempMessageList = pTempMessageList->pNext;
}
if (done == MMI_TRUE)
{
break;
}
pFolderList = pFolderList->pNext;
}
if (is_message_deleted == MMI_FALSE)
{
eRet = JC_ERR_STORE_INVALID_MSG_INDEX;
}
}
else
{
memset(fname, 0, 100);
mmi_jmms_get_folder_name_from_folderId((U8) folderId, (S8*) fname);
eRet = mmi_jmms_delete_all_message((S8*) fname);
}
/* Call the callback function */
jmms_delete_callback(mmi_jmms_java_mms_error(eRet));
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_is_msg_open
* DESCRIPTION
*
* PARAMETERS
* fname [?] [?]
* msgId [IN]
* msg_index [IN]
* RETURNS
*
*****************************************************************************/
MMI_BOOL mmi_jmms_is_msg_open(S8 *fname, U32 msgId, U32 msg_index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_jmms_folder_name_enum folder_id;
MMI_BOOL is_open = MMI_FALSE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (strcmp(fname, "Inbox") == 0)
{
folder_id = E_JMMS_INBOX;
}
else if (strcmp(fname, "Outbox") == 0)
{
folder_id = E_JMMS_OUTBOX;
}
else if (strcmp(fname, "Drafts") == 0)
{
folder_id = E_JMMS_DRAFTS;
}
else if (strcmp(fname, "Sent") == 0)
{
folder_id = E_JMMS_SENT;
}
else
{
return is_open;
}
if ((g_jmms_context->msg_open_status[0] == folder_id
&& g_jmms_context->msg_open_status[1] == (U32) (msgId))
|| (g_jmms_context->msg_open_status[0] == folder_id && g_jmms_context->msg_open_status[1] == 0))
{
is_open = MMI_TRUE;
return is_open;
}
if (folder_id == E_JMMS_INBOX)
{
if (GetActiveScreenId() == SCR_ID_JMMS_NEW_MMS_IND)
{
if (g_jmms_context->pending_mms_info_list != NULL)
{
if (g_jmms_context->pending_mms_info_list->Index == msg_index)
{
is_open = MMI_TRUE;
}
}
}
}
return is_open;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_free_pending_node_if_present
* DESCRIPTION
*
* PARAMETERS
* msg_index [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jmms_free_pending_node_if_present(U32 msg_index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
jmms_pending_mms_info_struct *node = NULL;
jmms_pending_mms_info_struct *pre_node = NULL;
U8 type;
JC_INT32 index = 0;
U8 delivery_report_index = 0, read_report_index = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_jmms_context->pending_mms_info_list == NULL)
{
return;
}
node = g_jmms_context->pending_mms_info_list;
pre_node = node;
while (node != NULL)
{
index = (JC_INT32) (node->Index);
type = node->type;
if (type == E_MSG_TYPE_DELIVERY_REPORT)
{
delivery_report_index++;
}
else if (type == E_MSG_TYPE_READ_REPORT_RESPONSE)
{
read_report_index++;
}
if (index == msg_index)
{
break;
}
pre_node = node;
node = node->next;
}
if (node == NULL)
{
return;
}
if (pre_node == node)
{
g_jmms_context->pending_mms_info_list = node->next;
}
else
{
pre_node->next = node->next;
}
if (node->mms_url != NULL)
{
jdd_MemFree(node->mms_url);
}
jdd_MemFree(node);
node = NULL;
if (type == E_MSG_TYPE_NOTIFICATION || type == E_MSG_TYPE_RECEIVE)
{
return;
}
switch (type)
{
case E_MSG_TYPE_DELIVERY_REPORT:
{
jmms_pending_mms_delivery_reports_struct *node1 = NULL;
jmms_pending_mms_delivery_reports_struct *pre_node1 = NULL;
node1 = g_jmms_context->pending_delivery_reports;
if (g_jmms_context->pending_delivery_reports == NULL || delivery_report_index == 0)
{
return;
}
else
{
pre_node1 = node1;
delivery_report_index--;
while (delivery_report_index != 0 && node1 != NULL)
{
pre_node1 = node1;
node1 = node1->next;
delivery_report_index--;
}
if (node1 == NULL)
{
return;
}
if (pre_node1 == node1)
{
g_jmms_context->pending_delivery_reports = node1->next;
}
else
{
pre_node1->next = node1->next;
}
if (node1->to_p != NULL)
{
jdd_MemFree(node1->to_p);
}
jdd_MemFree(node1);
node1 = NULL;
}
return;
}
case E_MSG_TYPE_READ_REPORT_RESPONSE:
{
jmms_pending_mms_read_reports_struct *node1 = NULL;
jmms_pending_mms_read_reports_struct *pre_node1 = NULL;
node1 = g_jmms_context->pending_read_reports;
if (g_jmms_context->pending_read_reports == NULL || read_report_index == 0)
{
return;
}
else
{
pre_node1 = node1;
read_report_index--;
while (read_report_index != 0 && node1 != NULL)
{
pre_node1 = node1;
node1 = node1->next;
read_report_index--;
}
if (node1 == NULL)
{
return;
}
if (pre_node1 == node1)
{
g_jmms_context->pending_read_reports = node1->next;
}
else
{
pre_node1->next = node1->next;
}
if (node1->from_p != NULL)
{
jdd_MemFree(node1->from_p);
}
jdd_MemFree(node1);
node1 = NULL;
}
return;
}
} /* /switch(type) */
}
/* /java functions */
/*****************************************************************************
* FUNCTION
* mmi_jmms_jsr_create_mms
* DESCRIPTION
*
* PARAMETERS
* message [?] [?]
* buffer [?] [?]
* RETURNS
*
*****************************************************************************/
JsrResult mmi_jmms_jsr_create_mms(wap_mmc_send_appmms_req_struct *message, U8 *buffer)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 datalen = 0;
JC_RETCODE eRet = JC_OK;
MESSAGE_SEND *pMessageSend = NULL;
MESSAGE_HEADERS *pMsgHeaders = NULL;
MSG_HANDLE hMsgHandle = NULL;
MM1_HDR_PARAM *pContentTypeParams = NULL; /* For content type */
MM1_HDR_PARAM *pTempContentTypeParams = NULL;
MM1_HDR_PARAM *node = NULL;
S8 *address = NULL;
S8 *temp_address = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
eRet = mmi_jmms_jdi_msg_init(&hMsgHandle, NULL);
if (JC_OK != eRet)
{
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
goto END;
}
eRet = mmi_jmms_jdi_set_msg_type(hMsgHandle, E_TYPE_MMS);
if (JC_OK != eRet)
{
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
goto END;
}
if (message->mms_type == 0)
{
eRet = mmi_jmms_jdi_set_presentation_type(hMsgHandle, E_PRESENTATION_SMIL);
}
else if (message->mms_type == 1)
{
eRet = mmi_jmms_jdi_set_presentation_type(hMsgHandle, E_PRESENTATION_NONE);
}
if (JC_OK != eRet)
{
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
goto END;
}
g_jmms_context->MsgHeaders_p = (MESSAGE_HEADERS*) jdd_MemAlloc(sizeof(MESSAGE_HEADERS), 1);
if (NULL == g_jmms_context->MsgHeaders_p)
{
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
eRet = JC_ERR_MEMORY_ALLOCATION;
goto END;
}
g_jmms_context->MsgHeader_type_p = (MESSAGE_SEND*) jdd_MemAlloc(sizeof(MESSAGE_SEND), 1);
if (NULL == g_jmms_context->MsgHeader_type_p)
{
mmi_jmms_free_mms_pdu_memory(g_jmms_context);
eRet = JC_ERR_MEMORY_ALLOCATION;
goto END;
}
pMsgHeaders = g_jmms_context->MsgHeaders_p;
pMessageSend = g_jmms_context->MsgHeader_type_p;
eRet = mmi_jmms_set_mmsc_version();
if (eRet != JC_OK)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -