📄 jmmsusedetailsui.c
字号:
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 + -