⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmmspushhandling.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -