📄 jmmsstorehandling.c
字号:
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_jdi_delete_msg(g_jmms_context->hStoreHandle, uiMsgIndex);
if (JC_OK != eRet)
{
return eRet;
}
#ifdef __MMI_UNIFIED_MESSAGE__
if (g_jmms_context->msg_handle != NULL)
{
eRet = mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
if (JC_OK != eRet)
{
return eRet;
}
g_jmms_context->msg_handle = NULL;
}
#endif /* __MMI_UNIFIED_MESSAGE__ */
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)
{
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 */
g_jmms_context->is_unread_msg_deleted = 0;
if (strcmp(pFolderName, MMI_JMMS_INBOX) == 0)
{
if (g_jmms_context->is_unread_msg_deleted == 1)
{
mmi_jmms_handle_read_report(g_jmms_context->MsgHeader_type_p);
}
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_save_message_buffer_in_Store
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* uiMsgIndex [?] [?]
* MsgHeaders [?] [?]
* Content [?] [?]
* extraBytes [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_save_message_buffer_in_Store(
S8 *pFolderName,
JC_UINT32 *uiMsgIndex,
MESSAGE_HEADERS *MsgHeaders,
CONTENT_DATA *Content,
JC_UINT32 *extraBytes)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U32 len = 0;
S8 *folder_name = NULL;
JC_RETCODE eRet = JC_OK;
U32 msgId = 0;
U8 number_mms = 0;
// MMI_BOOL isJavaMsg = MMI_FALSE;
// JC_INT8 *content_type = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* /check whether Total msgs count have been reached to max limit */
eRet = mmi_jmms_get_total_number_of_messages(&number_mms);
if (eRet != JC_OK)
{
return eRet;
}
if (number_mms >= MAX_POSSIBLE_MESSAGES)
{
mmi_jmms_add_memory_full_node_if_not_already();
return E_MEMORY_FULL_ERROR;
}
len = (strlen((PS8) pFolderName) + 1) * ENCODING_LENGTH;
folder_name = (PS8) jdd_MemAlloc(sizeof(S8), len);
if (NULL == folder_name)
{
return JC_ERR_MEMORY_ALLOCATION;
}
AnsiiToUnicodeString((PS8) folder_name, (PS8) pFolderName);
eRet = mmi_jmms_set_active_folder(pFolderName);
if (JC_OK != eRet)
{
jdd_MemFree(folder_name);
return eRet;
}
mmi_jmms_get_normal_msgid_value_from_nvram();
msgId = (U32) (g_jmms_normal_msgid) + 1;
if (msgId >= MMI_JMMS_MAX_NORMAL_MSG_ID)
{
msgId = MMI_JMMS_MAX_JAVA_MSG_ID + 1;
}
#ifdef __MMI_UNIFIED_MESSAGE__
if (extraBytes != NULL)
{
*extraBytes = msgId | *extraBytes;
eRet = mmi_jmms_jdi_save_msg(
g_jmms_context->hStoreHandle,
(JC_CHAR*) folder_name,
0,
MsgHeaders,
Content,
uiMsgIndex,
*extraBytes);
}
else
#endif /* __MMI_UNIFIED_MESSAGE__ */
eRet = mmi_jmms_jdi_save_msg(
g_jmms_context->hStoreHandle,
(JC_CHAR*) folder_name,
0,
MsgHeaders,
Content,
uiMsgIndex,
msgId);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
}
}
else
{
g_jmms_normal_msgid = msgId;
mmi_jmms_set_normal_msgid_value_to_nvram();
}
jdd_MemFree(folder_name);
/* sandeep there is no need to update for saving notification
if (eRet == JC_OK)
{
mmi_jmms_update_status_icon_indicator();
}
*/
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_get_message
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* Content [?] [?]
* index [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_get_message(S8 *pFolderName, CONTENT_DATA *Content, JC_INT32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
MESSAGE_LIST *pMessageList = NULL;
RETRIEVE_FILTERS StoreRetFilter = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
eRet = mmi_jmms_set_active_folder(pFolderName);
if (JC_OK != eRet)
{
return eRet;
}
///TODO:: need to check this step whether require and check if require get only for
//index
///manish chnging here 0n 2 Feb
StoreRetFilter.uiStartIndex = index;
StoreRetFilter.uiNumMessage = 1;
StoreRetFilter.eRetrieve = E_RETRIEVE_BY_INDEX;
eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, &pMessageList, &StoreRetFilter);
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)
{
eRet = mmi_jmms_jdi_get_msg(g_jmms_context->hStoreHandle, index, Content);
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_store_move_message
* DESCRIPTION
*
* PARAMETERS
* pSrcFolderName [?] [?]
* pDestFolderName [?] [?]
* uiMsgIndex [?] [?]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_store_move_message(S8 *pSrcFolderName, S8 *pDestFolderName, JC_UINT32 *uiMsgIndex)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U32 len = 0;
S8 *folder_name = NULL;
JC_RETCODE eRet = JC_OK;
MESSAGE_LIST *pMessageList = NULL;
RETRIEVE_FILTERS StoreRetFilter = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
eRet = mmi_jmms_set_active_folder(pSrcFolderName);
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);
if (eRet != JC_OK)
{
goto END;
}
}
else
{
goto END;
}
}
else
{
goto END;
}
}
len = (strlen((S8*) pDestFolderName) + 1) * ENCODING_LENGTH;
folder_name = (S8*) jdd_MemAlloc(sizeof(S8), len);
if (NULL == folder_name)
{
return JC_ERR_MEMORY_ALLOCATION;
}
AnsiiToUnicodeString((S8*) folder_name, (PS8) pDestFolderName);
eRet = mmi_jmms_jdi_move_msg(g_jmms_context->hStoreHandle, (JC_UINT32) (*uiMsgIndex), (JC_CHAR*) folder_name);
if (JC_OK != eRet)
{
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
if (eRet != JC_OK)
{
goto END;
}
}
else
{
goto END;
}
}
eRet = mmi_jmms_jdi_update_msg_list(g_jmms_context->hStoreHandle, E_FALSE);
if (JC_ERR_STORE_FILE_CORRUPTED == eRet)
{
eRet = mmi_jmms_restore_folder_info();
}
END:
jdd_MemFree(folder_name);
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_store_update_message
* DESCRIPTION
*
* PARAMETERS
* pFolderName [?] [?]
* uiMsgIndex [?] [?]
* MsgHeaders [?] [?]
* Content [?] [?]
* extraBytes [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_store_update_message(
S8 *pFolderName,
JC_UINT32 *uiMsgIndex,
MESSAGE_HEADERS *MsgHeaders,
CONTENT_DATA *Content,
JC_UINT32 extraBytes)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
MESSAGE_LIST *pMessageList = NULL;
RETRIEVE_FILTERS StoreRetFilter = {0, };
U32 msgId = 0;
MMI_BOOL isJavaMsg = MMI_FALSE;
JC_INT8 *content_type = NULL;
JC_UINT32 new_extraBytes = 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);
}
}
if (eRet != JC_OK)
{
return eRet;
}
}
if( pMessageList == NULL)
{
return -1;
}
mmi_jmms_get_content_type(Content, &content_type);
if (content_type != NULL)
{
isJavaMsg = mmi_jsr_check_recv_mms_for_java(content_type);
}
if (isJavaMsg == MMI_TRUE)
{
mmi_jmms_get_java_msgid_value_from_nvram();
msgId = (U32) (g_jmms_java_msgid) + 1;
if (msgId >= MMI_JMMS_MAX_JAVA_MSG_ID)
{
msgId = 0;
}
}
else
{
msgId = (U32) (pMessageList->uiExtraBytes & 0x00FFFFFF);
}
if (extraBytes != 0)
{
new_extraBytes = (extraBytes & 0xFF000000);
}
else
{
new_extraBytes = (pMessageList->uiExtraBytes & 0xFF000000);
}
new_extraBytes |= msgId;
eRet = mmi_jmms_jdi_update_msg(g_jmms_context->hStoreHandle, *uiMsgIndex, MsgHeaders, Content, new_extraBytes);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -