📄 jmmsstorehandling.c
字号:
if (eRet == JC_OK)
{
if (isJavaMsg == E_TRUE)
{
g_jmms_java_msgid = msgId;
mmi_jmms_set_java_msgid_value_to_nvram();
mmi_jsr_add_recv_java_mms_content(msgId, content_type);
}
}
if (content_type != NULL)
{
jdd_MemFree(content_type);
content_type = NULL;
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_store_update_message_extrabyte
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* uiMsgIndex [IN] [?]
* uiExtraBytes [IN]
* extraBytes(?) [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_store_update_message_extrabyte(S8 *pFolderName, JC_UINT32 uiMsgIndex, JC_UINT32 uiExtraBytes)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MESSAGE_LIST *pMessageList = NULL;
JC_RETCODE eRet = JC_OK;
RETRIEVE_FILTERS StoreRetFilter = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
eRet = mmi_jmms_set_active_folder(pFolderName);
if (JC_OK != eRet)
{
return eRet;
}
StoreRetFilter.uiStartIndex = uiMsgIndex;
StoreRetFilter.uiNumMessage = 1;
StoreRetFilter.eRetrieve = E_RETRIEVE_BY_INDEX;
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
if (eRet == JC_OK)
{
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
}
else
{
return eRet;
}
}
else
{
return eRet;
}
}
if (eRet != JC_OK)
{
return eRet;
}
eRet = mmi_jmms_jdi_update_extrabytes(g_jmms_context->hStoreHandle, uiMsgIndex, uiExtraBytes);
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_delete_all_message
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_delete_all_message(S8 *pFolderName)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
U8 number_mms = 0;
// TODO::manish changing here.Ned to test
MESSAGE_LIST *pMessageList = NULL;
RETRIEVE_FILTERS StoreRetFilter = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
eRet = mmi_jmms_set_active_folder(pFolderName);
PRINT_INFORMATION_2((MMI_TRACE_INFO, "mmi_jmms_delete_all_message: %s", pFolderName));
if (JC_OK != eRet)
{
return eRet;
}
StoreRetFilter.uiStartIndex = 1;
StoreRetFilter.uiNumMessage = 0;
StoreRetFilter.eRetrieve = E_RETRIEVE_BY_INDEX;
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
if (eRet == JC_OK)
{
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
}
}
if (eRet != JC_OK)
{
return eRet;
}
}
eRet = mmi_jmms_store_jdi_delete_all_msg(g_jmms_context->hStoreHandle);
if (JC_OK != eRet)
{
return eRet;
}
eRet = mmi_jmms_jdi_update_msg_list(g_jmms_context->hStoreHandle, E_FALSE);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
if (eRet != JC_OK)
{
return eRet;
}
}
}
if (eRet == JC_OK)
{
eRet = mmi_jmms_get_total_number_of_messages(&number_mms);
if (eRet != JC_OK)
{
return eRet;
}
if (number_mms < MAX_POSSIBLE_MESSAGES)
{
mmi_jmms_remove_memory_full_node_if_present();
}
/* PMT VIKAS START 20060405 */
mmi_jmms_update_status_icon_indicator();
/* PMT VIKAS END 20060405 */
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_get_message_id
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* uiMsgIndex [IN]
* RETURNS
*
*****************************************************************************/
JC_UINT32 mmi_jmms_get_message_id(S8 *pFolderName, JC_UINT32 uiMsgIndex)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
JC_UINT32 msgId = 0;
MESSAGE_LIST *pMessageList = NULL;
RETRIEVE_FILTERS StoreRetFilter = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
eRet = mmi_jmms_set_active_folder(pFolderName);
if (JC_OK != eRet)
{
return 0;
}
StoreRetFilter.uiStartIndex = uiMsgIndex;
StoreRetFilter.uiNumMessage = 1;
StoreRetFilter.eRetrieve = E_RETRIEVE_BY_INDEX;
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
if (eRet == JC_OK)
{
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
}
}
if (eRet != JC_OK)
{
return 0;
}
}
#ifdef __MMI_UNIFIED_MESSAGE__
msgId = pMessageList->uiExtraBytes & 0x00FFFFFF;
#else
msgId = pMessageList->uiExtraBytes;
#endif
return msgId;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_free_messages_list
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_jmms_free_messages_list(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
STORAGE_CTX *pStorageHandle = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
pStorageHandle = (STORAGE_CTX*) (g_jmms_context->hStoreHandle);
if (pStorageHandle->pMessageList != NULL)
{
StoreFreeMessageList(pStorageHandle->pMessageList);
pStorageHandle->pMessageList = NULL;
}
}
/* PMT VIKAS START 20060401 */
/*****************************************************************************
* FUNCTION
* mmi_jmms_get_number_of_unread_messages_in_inbox
* DESCRIPTION
*
* PARAMETERS
* total_num_unread_messages [?] [?]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_get_number_of_unread_messages_in_inbox(U8 *total_num_unread_messages)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
U8 msgs = 0;
U8 i = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
*total_num_unread_messages = 0;
eRet = mmi_mms_get_number_of_messages(MMI_JMMS_INBOX, &msgs);
if (eRet != JC_OK)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s%d", "mmi_jmms_get_number_of_unread_messages_in_inbox returns = ",eRet));
return eRet;
}
for (i = 0; i < msgs; i++)
{
U8 msg_index = 0;
msg_index = msgs - i;
msg_index = msg_index - 1;
if (mmi_jmms_is_msg_read(msg_index) == MMI_FALSE)
{
*total_num_unread_messages = *total_num_unread_messages + 1;
}
}
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s%d", "unread_messages_in_inbox = ",*total_num_unread_messages));
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_set_active_folder
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_set_active_folder(S8 *pFolderName)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U32 len = 0;
JC_CHAR *folder_name = NULL;
JC_RETCODE eRet = JC_OK;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
len = strlen((PS8) pFolderName);
folder_name = (JC_CHAR*) jdd_MemAlloc(sizeof(JC_CHAR), len + 1);
if (NULL == folder_name)
{
return JC_ERR_MEMORY_ALLOCATION;
}
AnsiiToUnicodeString((PS8) folder_name, (PS8) pFolderName);
eRet = mmi_jmms_jdi_set_active_folder(g_jmms_context->hStoreHandle, (JC_CHAR*) folder_name);
jdd_MemFree(folder_name);
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_delete_progresing_screen
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* RETURNS
*
*****************************************************************************/
void mmi_jmms_delete_progresing_screen(U16 title_str_id, U16 image_id)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_JMMS_DELETING_PROGRESS, NULL, NULL, NULL);
ShowCategory8Screen(
title_str_id,
GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
0,
0,
0,
0,
STR_ID_JMMS_DELETING_MMS,
image_id,
NULL);
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_recreate_sys_folders
* DESCRIPTION
*
* PARAMETERS
* void [?] [?]
* RETURNS
* JC_RETCODE
*****************************************************************************/
JC_RETCODE mmi_jmms_recreate_sys_folders(void)
{
JDD_FSHANDLE fs_handle = NULL;
JC_INT32 drive_letter = FS_GetDrive(FS_DRIVE_I_SYSTEM, 1, FS_NO_ALT_DRIVE);
JC_INT8 mms_folder_path_ascii[30];
JC_CHAR mms_folder_path_ucs2[30 * ENCODING_LENGTH];
JC_CHAR *mms_sys_filepath_ucs2 = NULL;
JC_RETCODE eRet = JC_OK;
#ifdef MMS_IN_LARGE_STORAGE
/* Order: 1. Invisible NAND 2. Visible NAND 3. visible NOR 4. Invisible NOR */
drive_letter = FS_GetDrive(FS_DRIVE_I_SYSTEM, 2, FS_DRIVE_V_NORMAL | FS_DRIVE_I_SYSTEM);
#endif /* MMS_IN_LARGE_STORAGE */
PRINT_INFORMATION_2((MMI_TRACE_INFO, "Enters mmi_jmms_recreate_sys_folders"));
if (fs_handle == NULL)
{
if (jdd_FSInitialize(&fs_handle) != JC_OK)
{
return -1;
}
}
jdi_UtilsCharToTchar(&mms_sys_filepath_ucs2, JDD_FS_MMS_SYS_FOLDER);
if (jdd_FSIsDirExist(fs_handle, mms_sys_filepath_ucs2) == E_TRUE)
{
eRet=jdd_FSDelDir(fs_handle, mms_sys_filepath_ucs2);
PRINT_INFORMATION_2((MMI_TRACE_INFO, "mmi_jmms_delete_sys_folders: %d",eRet));
eRet=jdd_FSMakeDir(fs_handle, mms_sys_filepath_ucs2);
PRINT_INFORMATION_2((MMI_TRACE_INFO, "mmi_jmms_create_sys_folders: %d",eRet));
}
error:
jdd_MemFree(mms_sys_filepath_ucs2);
if (fs_handle != NULL)
{
jdd_FSDeinitialize(fs_handle);
fs_handle = NULL;
}
return eRet;
}
/* PMT VIKAS END 20060401 */
#endif /* (defined (JATAAYU_SUPPORT) && defined(MMS_SUPPORT)) */
#endif /* _MMI_JMMSSTOREHANDLING_C */ /* _MMI_STOREHANDLING_C */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -