1.MMS_SUPPORT = OBIGO_Q03C_MMS_V01 09A
a. saui.c kal_bool download_from_mms = KAL_FALSE;
b. handleSlideMenuAction()case SMA_SLIDE_MENU_SAVE_TEXT_AS:download_from_mms = KAL_TRUE;
c. DLAgentPush.cmms_txt_header_check
static kal_bool mms_txt_header_check(const U16* path)
{
#define MAX_READ_LEN 3000
FS_HANDLE handler;
U8 ret;
U8 buffer_read[MAX_READ_LEN];
U8 *buffer1;
U8 *buffer2;
U16 len_utf8;
handler = FS_Open(path,FS_READ_ONLY);
memset(buffer_read,'\0',MAX_READ_LEN);
ret = FS_Read(handler,buffer_read,MAX_READ_LEN,NULL);
FS_Close(handler);
FS_Delete(path);
handler = FS_Open(path,FS_CREATE|FS_READ_WRITE);
len_utf8 = strlen(buffer_read);
buffer1 = OslMalloc(len_utf8+4);//3 byte for UTF8 flag and 1 byte for '\0'!
memset(buffer1,'\0',len_utf8);
buffer1[0] = 0xef;
buffer1[1] = 0xbb;
buffer1[2] = 0xbf;
buffer2 = buffer1 + 3;
memcpy(buffer2,buffer_read,len_utf8);
ret = FS_Write(handler,buffer1,len_utf8+3,NULL);
if (ret < 0)
return KAL_FALSE;
FS_Close(handler);
OslMfree(buffer1);
return KAL_TRUE;
}
d. DLAgent.cextern kal_bool download_from_mms;
e. mmi_da_push_filename_done
if (mmi_wcsicmp(filepath, item->filepath) != 0)
{
if (item->action == MMI_DA_SAVE_AS)
{
/*==================================================*/
if (download_from_mms)
{
mms_txt_encoding_convert(item->filepath);
download_from_mms = KAL_FALSE;
}
/*=============================================*/
if (item->filepath[0] == filepath[0]) /* The same drive */
2.MMS_SUPPORT = OBIGO_Q03C_MMS_V02 09B
1. MMSAppDataManager.cbool
kal_bool download_from_mms = MMI_FALSE;
2. srv_mms_save_object
ptr = (U16*) mmi_fmgr_util_get_fileext((S8*) object_info->file_name);
if (ptr != NULL)
{
/*=====================================================================*/
if ((strcmp(ptr,L"txt") == 0) && object_info->type != SRV_MMS_OBJECT_TYPE_ATTACHMENT)
download_from_mms = MMI_TRUE;
/*=====================================================================*/
mmi_ucs2cat((S8*) object_file, (S8*) L".");
mmi_ucs2ncat((S8*) object_file, (S8*) ptr, FMGR_MAX_EXT_LEN);
}
3. MmsInterfaceSrv.cbool
extern kal_bool download_from_mms;
4. MmsInterfaceSrv.cmms_txt_header_check
Static kal_bool mms_txt_header_check(const U16* path)
{
#define MAX_READ_LEN 3000
FS_HANDLE handler;
U8 ret;
U8 buffer_read[MAX_READ_LEN];
U8 *buffer1;
U8 *buffer2;
U16 len_utf8;
handler = FS_Open(path,FS_READ_ONLY);
memset(buffer_read,'\0',MAX_READ_LEN);
ret = FS_Read(handler,buffer_read,MAX_READ_LEN,NULL);
FS_Close(handler);
FS_Delete(path);
handler = FS_Open(path,FS_CREATE|FS_READ_WRITE);
len_utf8 = strlen(buffer_read);
buffer1 = OslMalloc(len_utf8+4);//3 byte for UTF8 flag and 1 byte for '\0'!
memset(buffer1,'\0',len_utf8);
buffer1[0] = 0xef;
buffer1[1] = 0xbb;
buffer1[2] = 0xbf;
buffer2 = buffer1 + 3;
memcpy(buffer2,buffer_read,len_utf8);
ret = FS_Write(handler,buffer1,len_utf8+3,NULL);
if (ret < 0)
return KAL_FALSE;
FS_Close(handler);
OslMfree(buffer1);
return KAL_TRUE;
}
5. srv_mms_save_object_file_callback()
media_file_path = mmi_umms_app_dtmgr_get_media_file_path();
/*===========================================================*/
if (mms_txt == MMI_TRUE)
{
mms_txt_header_check((S8*) media_file_path);
download_from_mms = MMI_FALSE;
}
/*============================================================*/
src_file_name = mmi_umms_app_dtmgr_get_src_file_name();
09A09Bmmi_ebr_frm_open_book_and_create_nfo_file(),09B__MMI_EBOOK_V2__EBOOK V0109A
1.09A09B EBOOK_V01
mmi_ebr_frm_open_book_and_create_nfo_file()
U8 header_check[3];
if (create_nfo_file)
{
MMI_TRACE(MMI_COMMON_TRC_G1_EBOOK,
MMI_EBOOK_FRM_OPEN_BOOK_AND_CREATE_NFO_FILE_GENERATE_NFO_FILE);
memset(&g_mmi_ebr_frm_curr_book_cntx_p->nfo_book_struct, 0x00, sizeof(mmi_ebr_frm_book_struct));
ReadRecord(NVRAM_EF_EBOOK_SETTINGS_LID, 1, &setting, NVRAM_EF_EBOOK_SETTING_SIZE, &error);
g_mmi_ebr_frm_curr_book_cntx_p->nfo_book_struct.settings = setting.common_settings;
if(FS_Read(file_hnd, header_check,3,NULL) == FS_NO_ERROR)//wyf
{
if(header_check[0] == 0xef && header_check[1] == 0xbb && header_check[2]==0xbf)
{
g_mmi_ebr_frm_curr_book_cntx_p->nfo_book_struct.settings.encoding_format = EBOOK_UTF8;
}
}
……
2.MMS_SUPPORT = OBIGO_Q03C_MMS_V02 09B
mmi_ebr_frm_open_book_and_create_nfo_file()
U8 header_check[3];
if (create_nfo_file)
{
memset(p_nfo_file, 0x00, sizeof(*p_nfo_file));
memcpy(&p_nfo_file->settings, p_book_setting, sizeof(srv_ebr_book_setting));
if (FS_Read(file_hnd, header_check,3,NULL) == FS_NO_ERROR)
{
if(header_check[0] == 0xef && header_check[1] == 0xbb && header_check[2]==0xbf)
{
p_nfo_file->settings.encoding_format = CHSET_UTF8;
}
}