📄 jmmsmainmmsui.c
字号:
len = (pfnUnicodeStrlen((S8*) (notification_p->pFrom)) + 1) * ENCODING_LENGTH;
msgs_list_node->address_as_hint = (S8*) jdd_MemAlloc(sizeof(S8), len);
if (msgs_list_node->address_as_hint == NULL)
{
jdd_MemFree(msgs_list_node);
return JC_ERR_MEMORY_ALLOCATION;
}
memcpy(
(S8*) (msgs_list_node->address_as_hint),
(S8*) (notification_p->pFrom),
len - ENCODING_LENGTH);
}
#endif /* __MMI_UNIFIED_MESSAGE__ */
break;
}
case E_MSG_TYPE_RECEIVE:
{
MESSAGE_RETRIEVAL *retrieval_p;
#ifndef __MMI_UNIFIED_MESSAGE__
S32 len = 0;
#endif
MMI_BOOL is_java_mms = MMI_FALSE;
retrieval_p = (MESSAGE_RETRIEVAL*) (pMessageList->pMessageHeaders->pHeaders);
// TODO:: need to test for Java MMS
#ifdef __MMI_UNIFIED_MESSAGE__
if ((pMessageList->uiExtraBytes & 0x00FFFFFF) > 0 &&
(pMessageList->uiExtraBytes & 0x00FFFFFF) < MMI_JMMS_MAX_JAVA_MSG_ID)
#else /* __MMI_UNIFIED_MESSAGE__ */
if (pMessageList->uiExtraBytes > 0 && pMessageList->uiExtraBytes < MMI_JMMS_MAX_JAVA_MSG_ID)
#endif /* __MMI_UNIFIED_MESSAGE__ */
{
is_java_mms = MMI_TRUE;
}
/* is_java_mms = mmi_jsr_is_java_msg(pMessageList->uiExtraBytes); */
if (is_java_mms == MMI_TRUE)
{
msgs_list_node->msg_type = E_MSG_JAVA_MESSAGE;
#ifdef __MMI_UNIFIED_MESSAGE__
is_parsing_check_required = MMI_FALSE;
#endif
}
else
{
msgs_list_node->msg_type = E_MSG_RECEIVE;
#ifdef __MMI_UNIFIED_MESSAGE__
is_parsing_check_required = MMI_TRUE;
#endif
}
#ifdef __MMI_UNIFIED_MESSAGE__
if (retrieval_p->pSubject == NULL)
{
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
(JC_CHAR*) GetString(STR_ID_NO_SUBJECT),
(msg_counter - StoreRetFilter.uiStartIndex));
}
else
{
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
retrieval_p->pSubject,
(msg_counter - StoreRetFilter.uiStartIndex));
}
#else /* __MMI_UNIFIED_MESSAGE__ */
if (retrieval_p->pSubject == NULL)
{
msgs_list_node->subject_as_caption = (S8*) GetString(STR_ID_NO_SUBJECT);
}
else
{
len = (pfnUnicodeStrlen((S8*) (retrieval_p->pSubject)) + 1) * ENCODING_LENGTH;
if (len > (MAX_SUBJECT_LENGTH * ENCODING_LENGTH))
{
len = (MAX_SUBJECT_LENGTH + 1) * ENCODING_LENGTH;
}
msgs_list_node->subject_as_caption = (S8*) jdd_MemAlloc(sizeof(S8), len);
if (msgs_list_node->subject_as_caption == NULL)
{
jdd_MemFree(msgs_list_node);
return JC_ERR_MEMORY_ALLOCATION;
}
memcpy(
(S8*) (msgs_list_node->subject_as_caption),
(S8*) (retrieval_p->pSubject),
len - ENCODING_LENGTH);
}
#endif /* __MMI_UNIFIED_MESSAGE__ */
#ifdef __MMI_UNIFIED_MESSAGE__
if (retrieval_p->pFrom != NULL)
{
mmi_um_jmms_add_mms_address_for_list_info(
&msgs_list_node->um_msg_info,
retrieval_p->pFrom,
(msg_counter - StoreRetFilter.uiStartIndex));
}
msgs_list_node->um_msg_info->timestamp = retrieval_p->uiDate;
#else /* __MMI_UNIFIED_MESSAGE__ */
if (retrieval_p->pFrom != NULL)
{
len = (pfnUnicodeStrlen((S8*) (retrieval_p->pFrom)) + 1) * ENCODING_LENGTH;
msgs_list_node->address_as_hint = (S8*) jdd_MemAlloc(sizeof(S8), len);
if (msgs_list_node->address_as_hint == NULL)
{
jdd_MemFree(msgs_list_node);
return JC_ERR_MEMORY_ALLOCATION;
}
memcpy(
(S8*) (msgs_list_node->address_as_hint),
(S8*) (retrieval_p->pFrom),
len - ENCODING_LENGTH);
}
#endif /* __MMI_UNIFIED_MESSAGE__ */
break;
}
case E_MSG_TYPE_DELIVERY_REPORT:
{
#ifdef __MMI_UNIFIED_MESSAGE__
DELIVERY_REPORT *delivery_p;
delivery_p = (DELIVERY_REPORT*) (pMessageList->pMessageHeaders->pHeaders);
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
(JC_CHAR*) GetString(STR_ID_JMMS_DELIVERY_REPORT),
(msg_counter - StoreRetFilter.uiStartIndex));
msgs_list_node->um_msg_info->timestamp = delivery_p->uiDate;
is_parsing_check_required = MMI_FALSE;
#else /* __MMI_UNIFIED_MESSAGE__ */
msgs_list_node->subject_as_caption = (S8*) GetString(STR_ID_JMMS_DELIVERY_REPORT);
#endif /* __MMI_UNIFIED_MESSAGE__ */
msgs_list_node->msg_type = E_MSG_DELIVERY_REPORT;
break;
}
case E_MSG_TYPE_READ_REPORT_RESPONSE:
{
#ifdef __MMI_UNIFIED_MESSAGE__
READ_REPORT_RESPONSE *read_report_p;
read_report_p = (READ_REPORT_RESPONSE*) (pMessageList->pMessageHeaders->pHeaders);
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
(JC_CHAR*) GetString(STR_ID_SETTINGS_READ_REPORT),
(msg_counter - StoreRetFilter.uiStartIndex));
if (read_report_p->pFrom != NULL)
{
mmi_um_jmms_add_mms_address_for_list_info(
&msgs_list_node->um_msg_info,
read_report_p->pFrom,
(msg_counter - StoreRetFilter.uiStartIndex));
}
msgs_list_node->um_msg_info->timestamp = (*read_report_p).uiReceivedTime;
is_parsing_check_required = MMI_FALSE;
#else /* __MMI_UNIFIED_MESSAGE__ */
msgs_list_node->subject_as_caption = (S8*) GetString(STR_ID_SETTINGS_READ_REPORT);
#endif /* __MMI_UNIFIED_MESSAGE__ */
msgs_list_node->msg_type = E_MSG_READ_REPORT;
break;
}
case E_MSG_TYPE_SEND:
{
MESSAGE_SEND *send_p;
#ifndef __MMI_UNIFIED_MESSAGE__
S32 len = 0;
#endif
send_p = (MESSAGE_SEND*) (pMessageList->pMessageHeaders->pHeaders);
#ifdef __MMI_UNIFIED_MESSAGE__
if (send_p->pSubject == NULL)
{
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
(JC_CHAR*) GetString(STR_ID_NO_SUBJECT),
(msg_counter - StoreRetFilter.uiStartIndex));
}
else
{
mmi_um_jmms_add_mms_sub_for_list_info(
&msgs_list_node->um_msg_info,
send_p->pSubject,
(msg_counter - StoreRetFilter.uiStartIndex));
}
if(send_p->uiDate != 0)
{
msgs_list_node->um_msg_info->timestamp = send_p->uiDate;
}
else
{
U32 extra_byte_1 = 0;
JC_RETCODE eRet1;
msgs_list_node->um_msg_info->timestamp = 0;
// Deepali: PMTSW00004395
eRet1 = mmi_jmms_jdi_store_get_extra_byte_1(g_jmms_context->hStoreHandle, (total_num_msgs - (msg_counter - StoreRetFilter.uiStartIndex)), &extra_byte_1);
if(eRet1 == JC_OK)
{
msgs_list_node->um_msg_info->timestamp = extra_byte_1;
}
}
mmi_um_jmms_create_new_mms_hint_for_sent(
&msgs_list_node->um_msg_info,
send_p->pTo,
send_p->pCc,
send_p->pBcc,
(msg_counter - StoreRetFilter.uiStartIndex));
is_parsing_check_required = MMI_TRUE;
#else /* __MMI_UNIFIED_MESSAGE__ */
if (send_p->pSubject == NULL)
{
msgs_list_node->subject_as_caption = (S8*) GetString(STR_ID_NO_SUBJECT);
}
else
{
len = (pfnUnicodeStrlen((S8*) (send_p->pSubject)) + 1) * ENCODING_LENGTH;
if (len > (MAX_SUBJECT_LENGTH * ENCODING_LENGTH))
{
len = (MAX_SUBJECT_LENGTH + 1) * ENCODING_LENGTH;
}
msgs_list_node->subject_as_caption = (S8*) jdd_MemAlloc(sizeof(S8), len);
if (msgs_list_node->subject_as_caption == NULL)
{
jdd_MemFree(msgs_list_node);
return JC_ERR_MEMORY_ALLOCATION;
}
memcpy(
(S8*) (msgs_list_node->subject_as_caption),
(S8*) (send_p->pSubject),
len - ENCODING_LENGTH);
}
mmi_jmms_create_new_mms_hint(&msgs_list_node, send_p->pTo, send_p->pCc, send_p->pBcc);
#endif /* __MMI_UNIFIED_MESSAGE__ */
break;
}
} /* /end of switch */
#ifdef __MMI_UNIFIED_MESSAGE__
/* Attachment handling */
if ((pMessageList->uiExtraBytes) >> 24 == 0 && MMI_TRUE == is_parsing_check_required)
{
temp_pending_list_p =
(um_jmms_attachment_present_list*) jdd_MemAlloc(sizeof(um_jmms_attachment_present_list), 1);
if (temp_pending_list_p == NULL)
{
mmi_jmms_free_attacment_pending_status_list();
return JC_ERR_MEMORY_ALLOCATION;
}
temp_pending_list_p->index_to_parse = msg_counter - StoreRetFilter.uiStartIndex;
temp_pending_list_p->next = NULL;
mmi_um_jmms_add_new_node_attachment_pending_list(temp_pending_list_p);
msgs_list_node->attachment_status = 0;
}
else
{
if (((*pMessageList).uiExtraBytes) >> 24 == 0 && MMI_FALSE == is_parsing_check_required)
{
msgs_list_node->attachment_status = E_JMMS_ATTACHMENT_NOT_PRESENT;
}
else
{
msgs_list_node->attachment_status = ((*pMessageList).uiExtraBytes) >> 24; /* attachment_status */
}
}
/* Attachment handling End */
msgs_list_node->um_msg_info->msg_index = msg_counter - StoreRetFilter.uiStartIndex;
msgs_list_node->msg_index = msgs_list_node->um_msg_info->msg_index;
#endif /* __MMI_UNIFIED_MESSAGE__ */
if ((*msgs_list) == NULL)
{
*msgs_list = msgs_list_node;
msgs_list_node = NULL;
}
else
{
#ifdef __MMI_UNIFIED_MESSAGE__
/* To sort the message list on bases of timestamp */
if (msgs_list_node->um_msg_info->timestamp > (*msgs_list)->um_msg_info->timestamp)
{
jmms_folder_msgs_list *temp;
temp = (*msgs_list);
*msgs_list = msgs_list_node;
(*msgs_list)->next = temp;
msgs_list_node = NULL;
}
else
{
jmms_folder_msgs_list *temp_message_list = NULL;
jmms_folder_msgs_list *temp = NULL, *prev = NULL;
temp_message_list = (*msgs_list);
while (temp_message_list != NULL)
{
if (msgs_list_node->um_msg_info->timestamp > temp_message_list->um_msg_info->timestamp)
{
break;
}
prev = temp_message_list;
temp_message_list = temp_message_list->next;
}
temp = temp_message_list;
prev->next = msgs_list_node;
msgs_list_node->next = temp;
msgs_list_node = NULL;
}
#else /* __MMI_UNIFIED_MESSAGE__ */
///implement the link list as stack so that last msg can be shown
//as first
jmms_folder_msgs_list *temp;
temp = (*msgs_list);
*msgs_list = msgs_list_node;
(*msgs_list)->next = temp;
msgs_list_node = NULL;
#endif /* __MMI_UNIFIED_MESSAGE__ */
}
#ifdef __MMI_UNIFIED_MESSAGE__
msg_counter--;
#endif
pMessageList = pMessageList->pNext;
}
if ((StoreRetFilter.uiStartIndex + StoreRetFilter.uiNumMessage - 1) >= total_num_msgs)
{
#ifndef __MMI_UNIFIED_MESSAGE__
U16 currScrenID = 0;
currScrenID = GetActiveScreenId();
if (currScrenID != SCR_ID_JMMS_GET_MSGS_PROGRESS_SCREEN)
{
if (strcmp((S8*) MMI_JMMS_INBOX, (S8*) foldername) == 0)
{
HistoryReplace(SCR_ID_JMMS_GET_MSGS_PROGRESS_SCREEN, SCR_ID_JMMS_INBOX, mmi_jmms_entry_inbox_screen);
}
else if (strcmp((S8*) MMI_JMMS_OUTBOX, (S8*) foldername) == 0)
{
HistoryReplace(SCR_ID_JMMS_GET_MSGS_PROGRESS_SCREEN, SCR_ID_JMMS_OUTBOX, mmi_jmms_entry_outbox_screen);
}
else if (strcmp((S8*) MMI_JMMS_SENT, (S8*) foldername) == 0)
{
HistoryReplace(SCR_ID_JMMS_GET_MSGS_PROGRESS_SCREEN, SCR_ID_JMMS_SENT, mmi_jmms_entry_sent_screen);
}
else if (strcmp((S8*) MMI_JMMS_DRAFTS, (S8*) foldername) == 0)
{
HistoryReplace(SCR_ID_JMMS_GET_MSGS_PROGRESS_SCREEN, SCR_ID_JMMS_DRAFTS, mmi_jmms_entry_drafts_screen);
}
return eRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -