📄 jmmspushhandling.c
字号:
if (eRet != JC_OK)
{
if (mms_content_location != NULL)
{
jdd_MemFree(mms_content_location);
}
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_notification_reponse
* DESCRIPTION
*
* PARAMETERS
* pNotification [?] [?] [?]
* eMessageStatus [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE mmi_jmms_notification_reponse(MESSAGE_NOTIFICATION *pNotification, EMessageStatus eMessageStatus)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
NOTIFICATION_RESPONSE *pNotRespHdr = NULL;
MESSAGE_HEADERS *pMsgHeaders = NULL;
MSG_HANDLE mms_signal_handle = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_notification_reponse"));
if (pNotification == NULL || pNotification->pTransactionID == NULL || pNotification->pVersion == NULL)
{
eRet = JC_ERR_INVALID_PARAMETER;
goto ERROR_HANDLE;
}
eRet = mmi_jmms_jdi_msg_init(&mms_signal_handle, NULL);
if (JC_OK != eRet)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms msg Initialization Failed", eRet));
goto ERROR_HANDLE;
}
pMsgHeaders = (MESSAGE_HEADERS*) jdd_MemAlloc(sizeof(MESSAGE_HEADERS), 1);
if (pMsgHeaders == NULL)
{
eRet = JC_ERR_MEMORY_ALLOCATION;
goto ERROR_HANDLE;
}
eRet = mmi_jmms_jdi_set_msg_headers(mms_signal_handle, pMsgHeaders);
if (eRet != JC_OK)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms fail to set the message header", eRet));
goto ERROR_HANDLE;
}
pNotRespHdr = (NOTIFICATION_RESPONSE*) jdd_MemAlloc(sizeof(NOTIFICATION_RESPONSE), 1);
if (pNotRespHdr == NULL)
{
eRet = JC_ERR_MEMORY_ALLOCATION;
goto ERROR_HANDLE;
}
pNotRespHdr->pVersion = (JC_INT8*) jdi_UtilsStrdup(pNotification->pVersion);
pNotRespHdr->pTransactionID = jdi_UtilsStrdup(pNotification->pTransactionID);
pNotRespHdr->eMessageStatus = eMessageStatus;
pNotRespHdr->bDeliveryReport = (JC_BOOLEAN) mmi_jmms_retrieval_settings_delivery_report();
pMsgHeaders->eMsgType = E_MSG_TYPE_NOTIFICATION_RESPONSE;
pMsgHeaders->pHeaders = pNotRespHdr;
eRet = mmi_jmms_jdi_set_msg_headers(mms_signal_handle, pMsgHeaders);
if (JC_OK != eRet)
{
goto ERROR_HANDLE;
}
eRet = mmi_jmms_send_mms(mms_signal_handle, E_TYPE_NOTIFICATION_RESPONSE, E_TRUE, 1, E_FALSE);
ERROR_HANDLE:
if (mms_signal_handle != NULL)
{
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
}
return eRet;
}
/*****************************************************************************
* FUNCTION
* jmms_mmi_notification_response_for_immediate_retrieval
* DESCRIPTION
*
* PARAMETERS
* ViewContent [IN]
* RETURNS
*
*****************************************************************************/
JC_RETCODE jmms_mmi_notification_response_for_immediate_retrieval(CONTENT_DATA ViewContent)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
JC_RETCODE eRet = JC_OK;
NOTIFICATION_RESPONSE *pNotRespHdr = NULL;
MESSAGE_HEADERS *pMsgHeaders = NULL;
MESSAGE_RETRIEVAL *pNotifyIndHdrs = NULL;
MSG_HANDLE mms_signal_handle = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "jmms_mmi_notification_response_for_immediate_retrieval"));
eRet = mmi_jmms_jdi_parse_msg_buffer(&mms_signal_handle, &ViewContent, E_TYPE_MMS, E_FALSE);
/* Async changes begin */
while (eRet == JC_ERR_MMS_PARSE_PENDING)
{
eRet = mmi_jmms_jdi_msg_parse_continue(mms_signal_handle);
}
/* Async changes end */
if (JC_OK != eRet && mms_signal_handle != NULL)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms error in parsing", eRet));
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
return eRet;
}
eRet = mmi_jmms_jdi_get_msg_headers(mms_signal_handle, &pMsgHeaders);
if (JC_OK != eRet)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms fail to get the message header", eRet));
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
return eRet;
}
if (pMsgHeaders->eMsgType != E_MSG_TYPE_RECEIVE)
{
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
return E_UNKNOWN_MSG;
}
pNotifyIndHdrs = (MESSAGE_RETRIEVAL*) pMsgHeaders->pHeaders;
if (pNotifyIndHdrs == NULL || pNotifyIndHdrs->pTransactionID == NULL || pNotifyIndHdrs->pVersion == NULL)
{
eRet = JC_ERR_INVALID_PARAMETER;
goto ERROR_HANDLE;
}
pNotRespHdr = (NOTIFICATION_RESPONSE*) jdd_MemAlloc(sizeof(NOTIFICATION_RESPONSE), 1);
if (pNotRespHdr == NULL)
{
eRet = JC_ERR_MEMORY_ALLOCATION;
goto ERROR_HANDLE;
}
pNotRespHdr->pVersion = jdi_UtilsStrdup(pNotifyIndHdrs->pVersion);
pNotRespHdr->pTransactionID = jdi_UtilsStrdup(pNotifyIndHdrs->pTransactionID);
pNotRespHdr->eMessageStatus = E_MSG_RETRIEVED;
pNotRespHdr->bDeliveryReport = (JC_BOOLEAN) mmi_jmms_retrieval_settings_delivery_report();
if (NULL != mms_signal_handle)
{
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
}
eRet = mmi_jmms_jdi_msg_init(&mms_signal_handle, NULL);
if (JC_OK != eRet)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms msg Initialization Failed", eRet));
mms_signal_handle = NULL;
goto ERROR_HANDLE;
}
pMsgHeaders = (MESSAGE_HEADERS*) jdd_MemAlloc(sizeof(MESSAGE_HEADERS), 1);
if (pMsgHeaders == NULL)
{
eRet = JC_ERR_MEMORY_ALLOCATION;
goto ERROR_HANDLE;
}
pMsgHeaders->eMsgType = E_MSG_TYPE_NOTIFICATION_RESPONSE;
pMsgHeaders->pHeaders = pNotRespHdr;
eRet = mmi_jmms_jdi_set_msg_headers(mms_signal_handle, pMsgHeaders);
if (JC_OK != eRet)
{
goto ERROR_HANDLE;
}
eRet = mmi_jmms_send_mms(mms_signal_handle, E_TYPE_NOTIFICATION_RESPONSE, E_TRUE, 1, E_FALSE);
ERROR_HANDLE:
if (mms_signal_handle != NULL)
{
mmi_jmms_jdi_msg_deinit(mms_signal_handle);
mms_signal_handle = NULL;
}
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s%d",
"jmms mms_mmi_notification_response_for_immediate_retrieval return value: ", eRet));
return eRet;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_entry_show_mms_screen
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_jmms_entry_show_mms_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
PU8 gui_buffer; /* Buffer holding history data */
S8 temp[14];
U8 dttemp[40];
MYTIME time1, time;
FLOAT timezone;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_entry_show_mms_screen"));
timezone = mmi_dt_get_tz();
EntryNewScreen(SCR_ID_JMMS_NEW_MMS, NULL, mmi_jmms_entry_show_mms_screen, NULL);
gui_buffer = GetCurrGuiBuffer(SCR_ID_JMMS_NEW_MMS);
pfnUnicodeStrcpy((S8*) subMenuData, (S8*) GetString(STR_ID_JMMS_FROM));
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n----\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
if (((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pFrom == NULL)
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_GLOBAL_EMPTY_LIST));
}
else
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) ((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pFrom);
}
/* /TO */
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_ID_JMMS_TO));
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n----\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
if (((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pTo == NULL)
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_GLOBAL_EMPTY_LIST));
}
else
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) ((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pTo);
}
/* /CC */
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_ID_JMMS_CC));
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n----\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
if (((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pCc == NULL)
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_GLOBAL_EMPTY_LIST));
}
else
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) ((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pCc);
}
/* /Subject */
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_ID_JMMS_SUBJECT));
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n----\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
if (((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pSubject == NULL)
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_GLOBAL_EMPTY_LIST));
}
else
{
pfnUnicodeStrcat((S8*) subMenuData, (S8*) ((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->pSubject);
}
/* /Date */
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) GetString(STR_ID_JMMS_DATE));
memset(temp, 0x00, 14);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n----\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
mmi_dt_utc_sec_2_mytime((U32) ((MESSAGE_RETRIEVAL*) g_jmms_context->MsgHeader_type_p)->uiDate, &time1, MMI_TRUE);
mmi_dt_utc_to_rtc(timezone, time1, time);
/* PMT RAJ KUMAR GUPTA on Sep 05, 2006 */
/* Date */
memset(dttemp, 0x00, 40);
date_string(&time, (UI_string_type)dttemp, DT_IDLE_SCREEN);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) dttemp);
memset(temp, 0x00, 6);
AnsiiToUnicodeString((PS8) temp, (PS8) "\n");
pfnUnicodeStrcat((S8*) subMenuData, (S8*) temp);
/* Time */
memset(dttemp, 0x00, 40);
time_string(&time, (UI_string_type)dttemp, DT_IDLE_SCREEN);
pfnUnicodeStrcat((S8*) subMenuData, (S8*) dttemp);
/* END of Changes - RAJ KUMAR GUPTA*/
ShowCategory78Screen(
STR_MMS_MENUENTRY,
GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
STR_ID_JMMS_PLAY,
IMG_GLOBAL_BACK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
NULL,
(U8*) subMenuData,
pfnUnicodeStrlen((S8*) subMenuData),
gui_buffer);
SetRightSoftkeyFunction(mmi_jmms_back_msg_view_entry, KEY_EVENT_UP);
SetKeyHandler(mmi_jmms_back_msg_view_entry, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(mmi_jmms_play_mms, KEY_EVENT_UP);
SetKeyHandler(mmi_jmms_play_mms, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jmms_play_mms, KEY_WAP, KEY_EVENT_DOWN);
if (isInCall() == FALSE)
SetKeyHandler(mmi_jmms_end_mms_play, KEY_END, KEY_EVENT_DOWN);
DeleteScreenIfPresent(SCR_ID_JMMS_READ_REPORT_QUERY);
}
/*****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -