⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmmsmainmmsui.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                    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 + -