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

📄 jmmsusedetailsui.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                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*) (cc + 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 (bcc != NULL)
    {
        str = (S8*) (bcc);
        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*) (bcc + 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;
            }

        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_free_use_details_adrresses_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_free_use_details_adrresses_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mms_addresses_list *temp, *node;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    temp = g_jmms_use_details.addresses_list;
    while (temp != NULL)
    {
        node = temp->next;
        if (temp->address != NULL)
        {
            jdd_MemFree(temp->address);
            temp->address = NULL;
        }
        jdd_MemFree(temp);
        temp = NULL;

        temp = node;
    }

    g_jmms_use_details.addresses_list = NULL;
}

#ifndef __MMI_UNIFIED_MESSAGE__


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_options_use_details_number
 * DESCRIPTION
 *  Highlight hdlr of use details use number option
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_options_use_details_number(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_jmms_use_details.number_email_flag = E_USE_NUMBER;
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_use_details_number, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_use_details_number, KEY_SEND, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_use_details_number, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_use_details_number, KEY_WAP, KEY_EVENT_DOWN);

}
#endif /* __MMI_UNIFIED_MESSAGE__ */ 


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_use_details_number
 * DESCRIPTION
 *  Pre entry fn for number list screen. It checks whether some number is present
 *  or not in To,Cc,From fields of selected message
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_use_details_number(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    MMI_BOOL bIsNumberPresent = MMI_FALSE;
    mms_addresses_list *node;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    node = g_jmms_use_details.addresses_list;
    while (node != NULL)
    {
        if (node->is_email == MMI_FALSE)
        {
            bIsNumberPresent = MMI_TRUE;
            break;
        }
        node = node->next;
    }

    if (bIsNumberPresent == MMI_FALSE)
    {

        DisplayPopup(
            (U8*) GetString(STR_ID_JMMS_USE_DETAILS_NO_NUMBER),
            IMG_GLOBAL_EMPTY,
            1,
            JMMS_POPUP_TIME,
            EMPTY_LIST_TONE);

    }
    else
    {
        mmi_jmms_entry_use_details_addresses_list();
    }

}

#ifndef __MMI_UNIFIED_MESSAGE__


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_options_use_details_email
 * DESCRIPTION
 *  Highlight hdlr of use details use email option
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_options_use_details_email(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_jmms_use_details.number_email_flag = E_USE_EMAIL;
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_use_details_email, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_use_details_email, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_use_details_email, KEY_WAP, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_use_details_email
 * DESCRIPTION
 *  Pre entry fn for email list screen. It checks whether some email is present
 *  or not in To,Cc,From fields of selected message
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_use_details_email(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    MMI_BOOL bIsEmailPresent = MMI_FALSE;

    mms_addresses_list *node;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

⌨️ 快捷键说明

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