📄 jmmspushhandling.c
字号:
if (isInCall() == FALSE)
{
//sandeep
PlayMessageArrivalTone();
//sandeep
}
}
#endif /* __MMI_KEYPAD_LOCK_PATTERN_1__ || __MMI_KEYPAD_LOCK_PATTERN_3__ || __MMI_KEYPAD_LOCK_PATTERN_4__ */ //KP Jerry add "__MMI_KEYPAD_LOCK_PATTERN_3__" on 2007-3-27
#if defined(__MMI_KEYPAD_LOCK_PROMPT_TEXT__)
SetGroupKeyHandler(
EntryScrKeyPadLockOnPessingAnyKey,
(PU16) PresentAllKeys,
(U8) TOTAL_KEYS,
(U16) KEY_EVENT_DOWN);
#endif /* defined(__MMI_KEYPAD_LOCK_PROMPT_TEXT__) */
#if defined(__MMI_TOUCH_SCREEN__) && (!defined(__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__) || defined(__MMI_SLIDE__)) //KP Jerry add "!defined(__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__)" on 2007-3-26
#ifdef __MMI_KEYPAD_LOCK_PROMPT_TEXT__
#if defined(__MMI_KEYPAD_LOCK_PATTERN_1__) || defined(__MMI_KEYPAD_LOCK_PATTERN_3__) || defined(__MMI_KEYPAD_LOCK_PATTERN_4__) //KP Jerry add "__MMI_KEYPAD_LOCK_PATTERN_3__" on 2007-3-27
SetRightSoftkeyFunction(EntryScrKeyPadLockOnPessingAnyKey, KEY_EVENT_DOWN);
#endif
#ifdef __MMI_KEYPAD_LOCK_PATTERN_2__
SetLeftSoftkeyFunction(EntryScrKeyPadLockOnPessingAnyKey, KEY_EVENT_DOWN);
#endif
#else
ClearKeyHandler(KEY_LSK, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_LSK, KEY_EVENT_UP);
ClearKeyHandler(KEY_RSK, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_RSK, KEY_EVENT_UP);
#endif /* __MMI_KEYPAD_LOCK_PROMPT_TEXT__ */
SetKeyHandler(EntryScrAfterPessingRSK, KEY_SEND, KEY_EVENT_DOWN);
#else/* __MMI_TOUCH_SCREEN__ && !__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__ */ //KP Jerry add "!__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__" on 2007-3-26
#if defined(__MMI_KEYPAD_LOCK_PATTERN_1__) || defined(__MMI_KEYPAD_LOCK_PATTERN_3__) || defined(__MMI_KEYPAD_LOCK_PATTERN_4__) //KP Jerry add "__MMI_KEYPAD_LOCK_PATTERN_3__" on 2007-3-27
SetRightSoftkeyFunction(EntryScrAfterPessingRSK, KEY_EVENT_DOWN);
#endif
#ifdef __MMI_KEYPAD_LOCK_PATTERN_2__
SetLeftSoftkeyFunction(EntryScrAfterPessingRSK, KEY_EVENT_DOWN);
#endif
#endif /* __MMI_TOUCH_SCREEN__ && !__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__ */ //KP Jerry add "!__MMI_TOUCH_SCREEN_WITH_NUMERIC_KEY__" on 2007-3-26
ClearKeyHandler(KEY_END, KEY_EVENT_DOWN);
#ifdef __MMI_TOUCH_SCREEN__
mmi_idle_pen_block();
#endif
}
} /* vikas added */
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_delete_mms_pop_up_node
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_jmms_delete_mms_pop_up_node(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
jmms_pending_mms_info_struct *node = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_delete_mms_pop_up_node"));
node = g_jmms_context->pending_mms_info_list;
if (node == NULL)
{
GoBackToHistory(IDLE_SCREEN_ID);
return;
}
if (node->type == E_MSG_TYPE_DELIVERY_REPORT)
{
jmms_pending_mms_delivery_reports_struct *node1 = NULL;
if (g_jmms_context->pending_delivery_reports != NULL)
{
node1 = g_jmms_context->pending_delivery_reports->next;
if (g_jmms_context->pending_delivery_reports->to_p != NULL)
{
jdd_MemFree(g_jmms_context->pending_delivery_reports->to_p);
}
jdd_MemFree(g_jmms_context->pending_delivery_reports);
g_jmms_context->pending_delivery_reports = node1;
}
}
else if (node->type == E_MSG_TYPE_READ_REPORT_RESPONSE)
{
jmms_pending_mms_read_reports_struct *node1 = NULL;
if (g_jmms_context->pending_read_reports != NULL)
{
node1 = g_jmms_context->pending_read_reports->next;
if (g_jmms_context->pending_read_reports->from_p != NULL)
{
jdd_MemFree(g_jmms_context->pending_read_reports->from_p);
}
jdd_MemFree(g_jmms_context->pending_read_reports);
g_jmms_context->pending_read_reports = node1;
}
}
g_jmms_context->pending_mms_info_list = node->next;
if (node->mms_url != NULL)
{
jdd_MemFree(node->mms_url);
}
jdd_MemFree(node);
node = NULL;
GoBackToHistory(IDLE_SCREEN_ID);
return;
}
/*****************************************************************************
* FUNCTION
* mmi_jmms_handle_mms_pop_up
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_jmms_handle_mms_pop_up(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
jmms_pending_mms_info_struct *node = NULL;
JC_RETCODE eRet = JC_OK;
JC_INT32 index = 0;
CONTENT_DATA Content = {0, };
U8 type;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_handle_mms_pop_up"));
node = g_jmms_context->pending_mms_info_list->next;
index = (JC_INT32) g_jmms_context->pending_mms_info_list->Index;
type = g_jmms_context->pending_mms_info_list->type;
///set the msg status as open for At Delete
///It will reset on going to idle screen
g_jmms_context->msg_open_status[0] = E_JMMS_INBOX;
/* PMT HIMANSHU START 20060425 */
g_jmms_context->msg_open_status[1] = (U32) mmi_jmms_get_message_id(MMI_JMMS_INBOX, index);
/* PMT HIMANSHU END 20060425 */
switch (type)
{
case E_MSG_TYPE_NOTIFICATION:
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "jmms msg type: %s", "E_MSG_TYPE_NOTIFICATION"));
if (g_jmms_context->pending_mms_info_list->mms_url == NULL)
{
jdd_MemFree(g_jmms_context->pending_mms_info_list);
g_jmms_context->pending_mms_info_list = NULL;
g_jmms_context->pending_mms_info_list = node;
return;
}
eRet = mmi_jmms_download_mms(
(JC_INT8*) g_jmms_context->pending_mms_info_list->mms_url,
E_TYPE_DEFFERED_RETRIEVAL_FETCH,
index,
1);
if (eRet == JC_OK)
{
g_jmms_context->last_scr_id = IDLE_SCREEN_ID;
g_jmms_context->progress_screen_title = STR_ID_JMMS_MMS_DOWNLOADING;
memset(g_jmms_context->g_jmms_progress_str, 0x00, MAX_PROGRESS_SCREEN_HINT_LEN * ENCODING_LENGTH);
mmi_jmms_entry_communication_progress_screen();
}
else
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms fail to download the message", eRet));
}
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
return;
}
case E_MSG_TYPE_DELIVERY_REPORT:
{
jmms_pending_mms_delivery_reports_struct *node1 = NULL;
PRINT_INFORMATION_2((MMI_TRACE_INFO, "jmms msg type: %s", "E_MSG_TYPE_DELIVERY_REPORT"));
if (g_jmms_context->pending_delivery_reports == NULL)
{
/* no delivery report node present */
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
return;
}
g_jmms_context->last_scr_id = IDLE_SCREEN_ID;
eRet = mmi_jmms_create_delivery_report_header_for_idle_screen(g_jmms_context->pending_delivery_reports);
if (eRet != JC_OK)
{
mmi_jmms_error_handler(eRet);
}
else
{
/* /for setting read status */
mmi_jmms_set_msg_as_read((U8) (index - 1));
mmi_jmms_entry_show_delivery_report_screen();
}
/* /free the delivery report node */
node1 = g_jmms_context->pending_delivery_reports->next;
if (g_jmms_context->pending_delivery_reports->to_p != NULL)
{
jdd_MemFree(g_jmms_context->pending_delivery_reports->to_p);
}
jdd_MemFree(g_jmms_context->pending_delivery_reports);
g_jmms_context->pending_delivery_reports = node1;
/* free the node for general message */
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
return;
}
case E_MSG_TYPE_READ_REPORT_RESPONSE:
{
jmms_pending_mms_read_reports_struct *node1 = NULL;
PRINT_INFORMATION_2((MMI_TRACE_INFO, "jmms msg type: %s", "E_MSG_TYPE_READ_REPORT_RESPONSE"));
if (g_jmms_context->pending_read_reports == NULL)
{
//no report report node present
//free the node for general message
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
return;
}
g_jmms_context->last_scr_id = IDLE_SCREEN_ID;
eRet = mmi_jmms_create_read_report_header_for_idle_screen(g_jmms_context->pending_read_reports);
if (eRet != JC_OK)
{
mmi_jmms_error_handler(eRet);
}
else
{
/* /for setting read status */
mmi_jmms_set_msg_as_read((U8) (index - 1));
mmi_jmms_entry_show_read_report_screen();
}
/* /free the read report node */
node1 = g_jmms_context->pending_read_reports->next;
if (g_jmms_context->pending_read_reports->from_p != NULL)
{
jdd_MemFree(g_jmms_context->pending_read_reports->from_p);
}
jdd_MemFree(g_jmms_context->pending_read_reports);
g_jmms_context->pending_read_reports = node1;
/* free the node for general message */
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
return;
}
} /* /switch(type) */
mmi_jmms_free_pending_mms_info_node();
g_jmms_context->pending_mms_info_list = node;
Content.bIsStream = E_TRUE;
eRet = mmi_jmms_get_message("Inbox", &Content, index);
if (eRet != JC_OK)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms fail to get messages from InBox.", eRet));
DisplayPopup((PU8) GetString(STR_ID_JMMS_ERROR_GET_MSG_LIST), IMG_GLOBAL_ERROR, 1, JMMS_POPUP_TIME, ERROR_TONE);
goto END;
}
mmi_jmms_deinit_mms_context(g_jmms_context);
eRet = mmi_jmms_jdi_parse_msg_buffer(&g_jmms_context->msg_handle, &Content, E_TYPE_MMS, E_FALSE);
/* Async changes begin */
while (eRet == JC_ERR_MMS_PARSE_PENDING)
{
eRet = mmi_jmms_jdi_msg_parse_continue(g_jmms_context->msg_handle);
}
/* Async changes end */
if (JC_OK != eRet)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms parsing failed!", eRet));
if (g_jmms_context->msg_handle != NULL)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "Deinitializing the msg header."));
mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
g_jmms_context->msg_handle = NULL;
}
goto END;
}
eRet = mmi_jmms_jdi_get_msg_headers(g_jmms_context->msg_handle, (MESSAGE_HEADERS **) (&g_jmms_context->MsgHeaders_p));
if (JC_OK != eRet)
{
PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s(%d)", "jmms fail to get the msg header", eRet));
mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
g_jmms_context->msg_handle = NULL;
goto END;
}
switch (((MESSAGE_HEADERS*) g_jmms_context->MsgHeaders_p)->eMsgType)
{
case E_MSG_TYPE_RECEIVE:
{
g_jmms_context->MsgHeader_type_p =
(MESSAGE_RETRIEVAL*) ((MESSAGE_HEADERS*) g_jmms_context->MsgHeaders_p)->pHeaders;
/* /for setting read status */
mmi_jmms_set_msg_as_read((U8) (index - 1));
g_jmms_context->mms_index = index;
g_jmms_context->last_scr_id = IDLE_SCREEN_ID;
g_jmms_context->is_unread_msg_deleted = 0;
#ifdef __MMI_UNIFIED_MESSAGE__
g_jmms_context->show_property_screen = MMI_FALSE;
#endif
mmi_jmms_handle_read_report(g_jmms_context->MsgHeader_type_p);
break;
}
default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -