📄 jmmsumhandling.c
字号:
tzdiff = time.nHour * 3600 + time.nMin * 60 + time.nSec; //mmi_dt_mytime_2_utc_sec(&time, MMI_TRUE);
while (msg_list_p != NULL && msg_list_p->um_msg_info->msg_index != mms_info_rsp->start_entry)
{
msg_list_p = msg_list_p->next;
}
for (msg_counter = 0; (msg_list_p != NULL && msg_counter <= mms_info_rsp->msg_number); msg_counter++)
{
mms_info_rsp->msg_info[msg_counter].timestamp = msg_list_p->um_msg_info->timestamp;
if(mms_info_rsp->msg_info[msg_counter].timestamp)
{
if(tz > 0)
{
mms_info_rsp->msg_info[msg_counter].timestamp += tzdiff;
}
else
{
mms_info_rsp->msg_info[msg_counter].timestamp -= tzdiff;
}
}
switch (msg_list_p->attachment_status)
{
case E_JMMS_ATTACHMENT_PRESENT:
mms_info_rsp->msg_info[msg_counter].icon_id = IMG_ID_JMMS_MMS_WITH_ATTACHMENT;
break;
case E_JMMS_ATTACHMENT_NOT_PRESENT:
mms_info_rsp->msg_info[msg_counter].icon_id = IMG_ID_JMMS_MMS_WITHOUT_ATTACHMENT;
break;
default:
mms_info_rsp->msg_info[msg_counter].icon_id = IMG_ID_JMMS_MMS_WITHOUT_ATTACHMENT;
break;
break;
}
mms_info_rsp->msg_info[msg_counter].msg_index = msg_list_p->um_msg_info->msg_index;
pfnUnicodeStrcpy((S8*) mms_info_rsp->msg_info[msg_counter].address, (S8*) msg_list_p->um_msg_info->address);
mms_info_rsp->msg_info[msg_counter].address_length = msg_list_p->um_msg_info->address_length;
mms_info_rsp->msg_info[msg_counter].address_type = msg_list_p->um_msg_info->address_type;
pfnUnicodeStrcpy((S8*) mms_info_rsp->msg_info[msg_counter].subject, (S8*) msg_list_p->um_msg_info->subject);
mms_info_rsp->msg_info[msg_counter].subject_length = msg_list_p->um_msg_info->subject_length;
if (mms_info_rsp->msg_info[msg_counter].address_type == UM_ADDR_TYPE_PHONE_NUMBER)
{
name = (S8*) lookUpNumber((PS8) mms_info_rsp->msg_info[msg_counter].address);
if (pfnUnicodeStrlen(name))
{
pfnUnicodeStrncpy(
(S8*) mms_info_rsp->msg_info[msg_counter].address,
(S8*) name,
pfnUnicodeStrlen(name));
mms_info_rsp->msg_info[msg_counter].address_length = pfnUnicodeStrlen(name);
}
}
name = NULL;
msg_list_p = msg_list_p->next;
} /* End of For Loop */
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_parse_mms_for_attachment
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_parse_mms_for_attachment(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
U8 number = 0;
um_jmms_attachment_present_list *temp_pending_list_p = NULL;
mmi_um_get_list_rsp_struct *mms_info_rsp = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_info_rsp = (mmi_um_get_list_rsp_struct*) g_um_jmms_rsp_struct;
temp_pending_list_p = g_jmms_context->g_attachment_pending_list;
if (g_jmms_context->pParseContent == NULL)
{
g_jmms_context->pParseContent = (CONTENT_DATA*) jdd_MemAlloc(sizeof(CONTENT_DATA), 1);
}
g_jmms_context->pParseContent->bIsStream = E_TRUE;
if (g_jmms_context->msg_handle != NULL)
{
mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
g_jmms_context->msg_handle = NULL;
}
if (temp_pending_list_p != NULL)
{
switch (mms_info_rsp->msg_box_type)
{
case UM_MSG_BOX_TYPE_INBOX:
mmi_mms_get_number_of_messages(MMI_JMMS_INBOX, &number);
eRet = mmi_jmms_get_message(
MMI_JMMS_INBOX,
g_jmms_context->pParseContent,
number - temp_pending_list_p->index_to_parse);
break;
case UM_MSG_BOX_TYPE_UNSENT:
mmi_mms_get_number_of_messages(MMI_JMMS_OUTBOX, &number);
eRet = mmi_jmms_get_message(
MMI_JMMS_OUTBOX,
g_jmms_context->pParseContent,
number - temp_pending_list_p->index_to_parse);
break;
case UM_MSG_BOX_TYPE_SENT:
mmi_mms_get_number_of_messages(MMI_JMMS_SENT, &number);
eRet = mmi_jmms_get_message(
MMI_JMMS_SENT,
g_jmms_context->pParseContent,
number - temp_pending_list_p->index_to_parse);
break;
case UM_MSG_BOX_TYPE_DRAFT:
mmi_mms_get_number_of_messages(MMI_JMMS_DRAFTS, &number);
eRet = mmi_jmms_get_message(
MMI_JMMS_DRAFTS,
g_jmms_context->pParseContent,
number - temp_pending_list_p->index_to_parse);
break;
}
if (eRet != JC_OK)
{
mmi_um_jmms_parse_attachment_async_callback(eRet);
return;
}
eRet = mmi_jmms_jdi_parse_msg_buffer(
&g_jmms_context->msg_handle,
g_jmms_context->pParseContent,
E_TYPE_MMS,
E_TRUE);
if (eRet == JC_ERR_MMS_PARSE_PENDING)
{
mmi_jmms_parse_continue_start_timer(
g_jmms_context->msg_handle,
mmi_um_jmms_parse_attachment_async_callback, mmi_jmms_only_abort_parsing_progress);
return;
}
}
mmi_um_jmms_parse_attachment_async_callback(eRet);
return;
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_get_fill_list
* DESCRIPTION
*
* PARAMETERS
* mms_list_rsp [?]
* msg_list_req [?]
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_get_fill_list(mmi_um_get_list_rsp_struct *mms_list_rsp, mmi_um_get_list_req_struct *msg_list_req)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_jmms_context->store_context->jmms_start_index = mms_list_rsp->start_entry + 1;
switch (mms_list_rsp->msg_box_type)
{
case UM_MSG_BOX_TYPE_INBOX:
eRet = mmi_jmms_get_folder_msg_list(
&(g_jmms_context->store_context->messages_list),
MMI_JMMS_INBOX,
mms_list_rsp->msg_number);
break;
case UM_MSG_BOX_TYPE_UNSENT:
eRet = mmi_jmms_get_folder_msg_list(
&(g_jmms_context->store_context->messages_list),
MMI_JMMS_OUTBOX,
mms_list_rsp->msg_number);
break;
case UM_MSG_BOX_TYPE_SENT:
eRet = mmi_jmms_get_folder_msg_list(
&(g_jmms_context->store_context->messages_list),
MMI_JMMS_SENT,
mms_list_rsp->msg_number);
break;
case UM_MSG_BOX_TYPE_DRAFT:
eRet = mmi_jmms_get_folder_msg_list(
&(g_jmms_context->store_context->messages_list),
MMI_JMMS_DRAFTS,
mms_list_rsp->msg_number);
break;
}
if (eRet != JC_OK || g_jmms_context->store_context->messages_list == NULL)
{
return;
}
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_generate_list
* DESCRIPTION
*
* PARAMETERS
* mms_list_rsp [?]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_um_jmms_generate_list(mmi_um_get_list_rsp_struct *mms_list_rsp)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
S32 msg_counter = 0;
U32 tzdiff = 0;
applib_time_struct time;
FLOAT tz;
jmms_folder_msgs_list *msg_list_p = g_jmms_context->store_context->messages_list;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
msg_counter = 0;
if (msg_list_p == NULL)
{
return JC_ERR_MEMORY_ALLOCATION;
}
tz = mmi_dt_get_tz();
if(tz < 0)
{
time = applib_conv_tz_to_mytime(tz * (-1));
}
else
{
time = applib_conv_tz_to_mytime(tz);
}
tzdiff = time.nHour * 3600 + time.nMin * 60 + time.nSec;
while (msg_list_p != NULL)
{
mms_list_rsp->list_info[msg_counter].timestamp = msg_list_p->um_msg_info->timestamp;
if(mms_list_rsp->list_info[msg_counter].timestamp)
{
if(tz > 0)
{
mms_list_rsp->list_info[msg_counter].timestamp += tzdiff;
}
else
{
mms_list_rsp->list_info[msg_counter].timestamp -= tzdiff;
}
}
mms_list_rsp->list_info[msg_counter].msg_index = msg_list_p->um_msg_info->msg_index;
msg_counter++;
msg_list_p = msg_list_p->next;
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_delete_all
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_delete_all(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_jmms_context->msg_handle != NULL)
{
mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
g_jmms_context->msg_handle = NULL;
}
switch (g_jmms_context->store_context->current_folder_name)
{
case E_JMMS_INBOX:
HistoryReplace(SCR_ID_UM_INBOX, SCR_ID_UM_INBOX, mmi_um_jmms_pre_entry_inbox);
DeleteUptoScrID(SCR_ID_UM_INBOX);
mmi_um_delete_highlight_folder(UM_MSG_BOX_TYPE_INBOX);
break;
case E_JMMS_OUTBOX:
HistoryReplace(SCR_ID_UM_UNSENT, SCR_ID_UM_UNSENT, mmi_um_jmms_pre_entry_outbox);
DeleteUptoScrID(SCR_ID_UM_UNSENT);
mmi_um_delete_highlight_folder(UM_MSG_BOX_TYPE_UNSENT);
break;
case E_JMMS_SENT:
HistoryReplace(SCR_ID_UM_SENT, SCR_ID_UM_SENT, mmi_um_jmms_pre_entry_sent);
DeleteUptoScrID(SCR_ID_UM_SENT);
mmi_um_delete_highlight_folder(UM_MSG_BOX_TYPE_SENT);
break;
case E_JMMS_DRAFTS:
HistoryReplace(SCR_ID_UM_DRAFT, SCR_ID_UM_DRAFT, mmi_um_jmms_pre_entry_draft);
DeleteUptoScrID(SCR_ID_UM_DRAFT);
mmi_um_delete_highlight_folder(UM_MSG_BOX_TYPE_DRAFT);
break;
}
}
/*****************************************************************************
* FUNCTION
* mmi_um_jmms_get_push_message_count_req
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_um_jmms_get_push_message_count_req(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_um_get_msg_num_rsp_struct *mms_count_rsp_p;
U8 total_num_unread_messages = 0;
U8 number = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mms_count_rsp_p = (mmi_um_get_msg_num_rsp_struct*) OslConstructDataPtr(sizeof(mmi_um_get_msg_num_rsp_struct));
mms_count_rsp_p->result = KAL_TRUE;
mms_count_rsp_p->msg_type = UM_MSG_TYPE_MMS;
mmi_jmms_get_number_of_unread_messages_in_inbox(&total_num_unread_messages); /* mms_count_rsp_p->inbox_unread_msg_number = 0; */
mmi_mms_get_number_of_messages(MMI_JMMS_INBOX, &number);
mms_count_rsp_p->inbox_unread_msg_number = total_num_unread_messages;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -