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

📄 jmmsusedetailsui.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:

    SetRightSoftkeyFunction(mmi_jmms_back_from_use_details_main_screen, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_back_from_use_details_main_screen, KEY_LEFT_ARROW, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_back_from_use_details_main_screen
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_back_from_use_details_main_screen(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    mmi_jmms_free_use_details_adrresses_list();
    GoBackHistory();
}

#endif /* __MMI_UNIFIED_MESSAGE__ */ 


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_create_use_details_addresses_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  from        [IN]        
 *  to          [IN]        
 *  cc          [IN]        
 *  bcc         [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_create_use_details_addresses_list(JC_CHAR *from, JC_CHAR *to, JC_CHAR *cc, JC_CHAR *bcc)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    mms_addresses_list *node = NULL;
    S32 len_to_copy = 0;
    S8 *str = NULL;
    S32 len = 0;
    S32 start_index = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* MAUI_00018175 Start */
    if (g_jmms_context->view_context != NULL &&
        g_jmms_context->view_context->focus_object_type == E_MSG_FOCUS_PHONE_NUMBER)
        /* MAUI_00018175 End */
    {
        ACTIVE_MEDIA_INFO activeMediaInfo;

        mmi_jmms_jdi_get_active_media_info(g_jmms_context->msg_handle, &activeMediaInfo);
        node = (mms_addresses_list*) jdd_MemAlloc(sizeof(mms_addresses_list), 1);
        if (node == NULL)
        {

            DisplayPopup(
                (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                (U8) ERROR_TONE);
            mmi_jmms_free_use_details_adrresses_list();
            return;
        }
        node->is_email = MMI_FALSE;
        len_to_copy = MAX_POSSIBLE_NUMBER_LENGHT_SENT;
        node->address = (S8*) jdd_MemAlloc(sizeof(S8), (len_to_copy + 1) * ENCODING_LENGTH);

        if (node->address == NULL)
        {
            DisplayPopup(
                (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                (U8) ERROR_TONE);
            /* HIMANSHU Memory Leak Fix Start */
            if (node != NULL)
            {
                jdd_MemFree(node);
                node = NULL;
            }
            /* HIMANSHU Memory Leak Fix End */
            mmi_jmms_free_use_details_adrresses_list();
            return;
        }

        pfnUnicodeStrncpy((S8*) node->address, (S8*) activeMediaInfo.LinkInfo.pLinkText, len_to_copy);

        /* HIMANSHU Memory Leak Fix Start */
        if (g_jmms_use_details.addresses_list != NULL)
        {
            mmi_jmms_free_use_details_adrresses_list();
        }
        g_jmms_use_details.addresses_list = node;
        /* HIMANSHU Memory Leak Fix End */
    }
    if (from != NULL)
    {
        str = (S8*) (from);
        len = 0;
        start_index = 0;
        node = NULL;

        while (pfnUnicodeStrcmp(str, "\0") != 0)
        {

            node = (mms_addresses_list*) jdd_MemAlloc(sizeof(mms_addresses_list), 1);
            if (node == NULL)
            {

                DisplayPopup(
                    (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                    IMG_GLOBAL_ERROR,
                    1,
                    JMMS_POPUP_TIME,
                    (U8) ERROR_TONE);
                mmi_jmms_free_use_details_adrresses_list();
                return;
            }
            node->is_email = MMI_FALSE;
            while (((*str) != ';') && ((*str) != '\0'))
            {
                if ((*str) == '@')
                {
                    node->is_email = MMI_TRUE;
                }

                len++;
                str = str + ENCODING_LENGTH;

            }

            if (node->is_email == MMI_FALSE && len > (MAX_POSSIBLE_NUMBER_LENGHT_SENT))
            {
                len_to_copy = MAX_POSSIBLE_NUMBER_LENGHT_SENT;
            }
            else if (node->is_email == MMI_TRUE && len > (MAX_POSSIBLE_EMAIL_LENGHT_SENT))
            {
                len_to_copy = MAX_POSSIBLE_EMAIL_LENGHT_SENT;
            }
            else
            {
                len_to_copy = len;
            }

            node->address = (S8*) jdd_MemAlloc(sizeof(S8), (len_to_copy + 1) * ENCODING_LENGTH);
            if (node->address == NULL)
            {
                DisplayPopup(
                    (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                    IMG_GLOBAL_ERROR,
                    1,
                    JMMS_POPUP_TIME,
                    (U8) ERROR_TONE);
                /* HIMANSHU Memory Leak Fix Start */
                if (node != NULL)
                {
                    jdd_MemFree(node);
                    node = NULL;
                }
                /* HIMANSHU Memory Leak Fix End */
                mmi_jmms_free_use_details_adrresses_list();
                return;
            }

            pfnUnicodeStrncpy((S8*) node->address, (S8*) (from + start_index), len_to_copy);

            if (g_jmms_use_details.addresses_list == NULL)
            {
                g_jmms_use_details.addresses_list = node;
            }
            else
            {
                mms_addresses_list *temp, *temp1;
                MMI_BOOL is_duplicate = MMI_FALSE;

                temp = g_jmms_use_details.addresses_list;
                while (temp != NULL)
                {
                    if (pfnUnicodeStrcmp((S8*) (node->address), (S8*) (temp->address)) == 0)
                    {
                        is_duplicate = MMI_TRUE;
                        break;
                    }
                    temp1 = temp;
                    temp = temp->next;
                }
                /* HIMANSHU Memory Leak Fix Start */
                if (is_duplicate == MMI_FALSE)
                {
                    temp1->next = node;
                }
                else
                {
                    if (node != NULL)
                    {
                        if (node->address != NULL)
                        {
                            jdd_MemFree(node->address);
                            node->address = NULL;
                        }
                        jdd_MemFree(node);
                        node = NULL;
                    }
                }
                /* HIMANSHU Memory Leak Fix End */

            }

            start_index = start_index + len + 1;
            len = 0;
            node = NULL;
            if ((*str) != '\0')
            {
                str = str + ENCODING_LENGTH;
            }

        }

    }

    if (to != NULL)
    {
        str = (S8*) (to);
        len = 0;
        start_index = 0;
        node = NULL;

        while (pfnUnicodeStrcmp(str, "\0") != 0)
        {

            node = (mms_addresses_list*) jdd_MemAlloc(sizeof(mms_addresses_list), 1);
            if (node == NULL)
            {
                DisplayPopup(
                    (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                    IMG_GLOBAL_ERROR,
                    1,
                    JMMS_POPUP_TIME,
                    (U8) ERROR_TONE);
                mmi_jmms_free_use_details_adrresses_list();
                return;
            }
            node->is_email = MMI_FALSE;
            while (((*str) != ';') && ((*str) != '\0'))
            {
                if ((*str) == '@')
                {
                    node->is_email = MMI_TRUE;
                }

                len++;
                str = str + ENCODING_LENGTH;

            }

            if (node->is_email == MMI_FALSE && len > (MAX_POSSIBLE_NUMBER_LENGHT_SENT))
            {
                len_to_copy = MAX_POSSIBLE_NUMBER_LENGHT_SENT;
            }
            else if (node->is_email == MMI_TRUE && len > (MAX_POSSIBLE_EMAIL_LENGHT_SENT))
            {
                len_to_copy = MAX_POSSIBLE_EMAIL_LENGHT_SENT;
            }
            else
            {
                len_to_copy = len;
            }

            node->address = (S8*) jdd_MemAlloc(sizeof(S8), (len_to_copy + 1) * ENCODING_LENGTH);
            if (node->address == NULL)
            {
                DisplayPopup(
                    (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                    IMG_GLOBAL_ERROR,
                    1,
                    JMMS_POPUP_TIME,
                    (U8) ERROR_TONE);
                /* HIMANSHU Memory Leak Fix Start */
                if (node != NULL)
                {
                    jdd_MemFree(node);
                    node = NULL;
                }
                /* HIMANSHU Memory Leak Fix End */
                mmi_jmms_free_use_details_adrresses_list();
                return;
            }

            pfnUnicodeStrncpy((S8*) node->address, (S8*) (to + start_index), len_to_copy);

            if (g_jmms_use_details.addresses_list == NULL)
            {
                g_jmms_use_details.addresses_list = node;
            }
            else
            {
                mms_addresses_list *temp, *temp1;
                MMI_BOOL is_duplicate = MMI_FALSE;

                temp = g_jmms_use_details.addresses_list;
                while (temp != NULL)
                {
                    if (pfnUnicodeStrcmp((S8*) (node->address), (S8*) (temp->address)) == 0)
                    {
                        is_duplicate = MMI_TRUE;
                        break;
                    }
                    temp1 = temp;
                    temp = temp->next;
                }
                /* HIMANSHU Memory Leak Fix Start */
                if (is_duplicate == MMI_FALSE)
                {
                    temp1->next = node;
                }
                else
                {
                    if (node != NULL)
                    {
                        if (node->address != NULL)
                        {
                            jdd_MemFree(node->address);
                            node->address = NULL;
                        }
                        jdd_MemFree(node);
                        node = NULL;
                    }
                }
                /* HIMANSHU Memory Leak Fix End */

            }

            start_index = start_index + len + 1;
            len = 0;
            node = NULL;
            if ((*str) != '\0')
            {
                str = str + ENCODING_LENGTH;
            }

        }

    }

    if (cc != NULL)
    {
        str = (S8*) (cc);
        len = 0;
        start_index = 0;
        node = NULL;

        while (pfnUnicodeStrcmp(str, "\0") != 0)
        {

            node = (mms_addresses_list*) jdd_MemAlloc(sizeof(mms_addresses_list), 1);
            if (node == NULL)
            {
                DisplayPopup(
                    (U8*) GetString(STR_ID_JMMS_OUT_OF_MEMORY),
                    IMG_GLOBAL_ERROR,
                    1,
                    JMMS_POPUP_TIME,
                    (U8) ERROR_TONE);
                mmi_jmms_free_use_details_adrresses_list();

                return;
            }
            node->is_email = MMI_FALSE;
            while (((*str) != ';') && ((*str) != '\0'))
            {
                if ((*str) == '@')
                {
                    node->is_email = MMI_TRUE;
                }

                len++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -