芯方式

如何增大Email内容模板的长度

0
阅读(947)

[DESCRIPTION]
Email内容模板在09B上默认的长度是40个字符,如何增大?
[SOLUTION]

icfans
09B:
1、根据需求,同比增大如下两个宏的取值
MMI_EMAIL_MAX_TEMPLATE_LENGTH
NVRAM_EMAIL_TEMPL_RECORD_SIZE
2、在函数mmi_email_template_list_get_item()中,找到如下代码:
if(mmi_ucs2strlen(email->templates[item_index]) == 0)
{}
else
{
mmi_ucs2cpy((S8*)str_buff ,(S8*)email->templates[item_index]);
}
修改为:
if(mmi_ucs2strlen(email->templates[item_index]) == 0)
{}
else
{
mmi_ucs2ncpy((S8*)str_buff ,(S8*)email->templates[item_index] ,MAX_SUBMENU_CHARACTERS);
}
改修改方案,您可以参考函数mmi_msg_template_list_get_item(),这是短信的template的获取函数,有限制item
string copy长度。
如果不这么修改,将有可能出现如下错误:模板列表中,下一条item被上一条item的内容覆盖。
原因是:原本,在函数mmi_email_template_list_get_item()中,我们没有限制item string的copy长度,将完整
templates[i]复制到str_buff,请参考函数load_chunk_dynamic_item_buffer(),在每次dynamic界面需要Load新的
item到界面上时,均会调用这个函数。其中的语句:
Dynamic_item_buffer.load_func(index ,(UI_string_type) subMenuData[i] ,&image ,3)中,load_func即
mmi_email_template_list_get_item(),subMenuData[i]即上面的传入参数str_buff。这里,为了获取
subMenuData[i]的数据,由于其超长,在函数mmi_email_template_list_get_item()做copy操作的时候
,subMenuData[i + 1]的数据被破坏。
上述的修改只会限制Email template list screen的每条item显示字串的长度,不会影响到我们实际的template的
长度。