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

📄 jmmsjsrhandler.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2002
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *  jmms_jsr_handler.C
 *
 * Project:
 * --------
 *  MAUI
 *
 * Description:
 * ------------
 *  This file conains the store APIs for interacting with Jatayu Store module
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#ifndef _MMI_JMMSJSRHANDLER_C
#define _MMI_JMMSJSRHANDLER_C

/***************************************************************************** 
* Include
*****************************************************************************/
#include "MMI_features.h"
#if (defined (JATAAYU_SUPPORT) && defined(MMS_SUPPORT))

#include "JsrTypes.h"
#include "JMMSJSRHandler.h"
#include "PixtelDataTypes.h"
#include "SettingProfile.h"
#include "DebugInitDef.h"
#include "FileManagerGProt.h"   /* file path util function */

#include <ddl.h>
#include <jcal.h>
#include <jcalnet.h>
#include "jdi_wspdatatype.h"
#include "jdi_transport.h"
#include "JMMSCoreAPI.h"

/* jataayu files */
#include "ddlbase.h"
#include "jcutils.h"
#include "ddlutils.h"
#include "jdi_MMSErr.h"
#include "jcerror.h"

#include <jdi_communicator.h>

#include <miscutils.h>
#include <MM1DataTypes.h>
#include <MessagingDatatypes.h>
#include <MessagingAPI.h>
#include "JMMSExdcl.h"

#include "JMMSMainMMS.h"
#include "JMMSProtocols.h"
#include "JMMSMessageSettings.h"
#include "JMMSMessageSettingsUtils.h"
#include "JMMSConfig.h"
#include "JMMSResEnum.h"
#include "JMMSWriteMMS.h"
#include "JMMSStoreHandling.h"

#include "PrvMessagingDataTypes.h"
#include "MM1Api.h"
#include "Msg_Utils.h"
#include "Msg_Presentation.h"
#include "JMMSPushHandling.h"

#include "JMMSCoreAPI.h"
#include "JMMSDrafts.h"
#include "JMMSExdcl.h"
/* /#include "JMMSGdcl.h" */
#include "JMMSCompose.h"
#include "JMMSGprot.h"
#include "JMMSInbox.h"
#include "JMMSJSRHandler.h"
#include "JMMSMainMMS.h"
#include "JMMSMessageSettingsUtils.h"
#include "JMMSOutbox.h"
#include "JMMSProtocols.h"
#include "JMMSPushHandling.h"
#include "JMMSResEnum.h"
#include "JMMSSent.h"
#include "JMMSStoreHandling.h"
#include "JMMSStructs.h"
#include "JMMSTemplates.h"
#include "JMMSUseDetails.h"
#include "JMMSView.h"
#include "JMMSWriteMMS.h"
#include "TimerEvents.h"
#include "wapadp.h"
#include "JPushInboxCommonUI.h"
#ifdef __MMI_UNIFIED_MESSAGE__
#include "UnifiedMessageDef.h"
#include "UnifiedMessageProt.h"
#include "JMMSUMHandling.h"
#endif /* __MMI_UNIFIED_MESSAGE__ */ 

#ifdef MMI_JMMS_JAVA_MMS_SUPPORT

/***************************************************************************** 
* Define
*****************************************************************************/

/***************************************************************************** 
* Typedef 
*****************************************************************************/

/***************************************************************************** 
* Local Variable
*****************************************************************************/

static U32 media_obj_index = 1;

/***************************************************************************** 
* Local Function
*****************************************************************************/

/***************************************************************************** 
* Global Variable
*****************************************************************************/

extern U64 g_jmms_normal_msgid;
extern U64 g_jmms_java_msgid;

/***************************************************************************** 
* Global Function
*****************************************************************************/
JsrResult mmi_jmms_java_mms_error(JC_RETCODE error_code);
mmi_jmms_java_addresses_type mmi_jmms_java_map_address_type(MMSAddressTypes type);
extern int mmi_charset_ucs2_to_utf8_length_in_bytes(const kal_uint8 *raw);
extern int mmi_charset_utf8_to_ucs2_length_in_bytes(const kal_uint8 *raw);
extern kal_int32 mmi_chset_utf8_to_ucs2_string(kal_uint8 *dest, kal_int32 dest_size, kal_uint8 *src);
extern kal_int32 mmi_chset_ucs2_to_utf8_string(kal_uint8 *dest, kal_int32 dest_size, kal_uint8 *src);
extern JC_RETCODE mmi_jmms_jsr_form_send_request_pdu(MM1_HANDLE hMM1, MESSAGING_HANDLER *pMessaging);

extern void mmi_jmms_entry_inbox_screen(void);
extern void mmi_jmms_entry_outbox_screen(void);
extern void mmi_jmms_entry_sent_screen(void);
extern void mmi_jmms_entry_drafts_screen(void);
extern U8 *mmi_jmms_get_activated_mmsc_url(jmms_context_struct *jmms_context);
void mmi_jmms_MM1_decode_continue_start_timer(JC_UINT32 total_obj, error_callback new_err_cb);
extern em_wap_user_agent_brand_enum wap_get_user_agent_brand(void);

/* AT Command functions */


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_folder_name_from_folderId
 * DESCRIPTION
 *  Find the name of Folder corresponding to Folder Id.
 * PARAMETERS
 *  folderId        [IN]        Id of folder
 *  fname           [?]         [?]         Corresponding folder name
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_get_folder_name_from_folderId(U8 folderId, S8 *fname)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (folderId)
    {
        case JSR_INBOX:
            strcpy((S8*) fname, (S8*) MMI_JMMS_INBOX);
            break;
        case JSR_OUTBOX:
            strcpy((S8*) fname, (S8*) MMI_JMMS_OUTBOX);
            break;
        case JSR_SENT:
            strcpy((S8*) fname, (S8*) MMI_JMMS_SENT);
            break;
        case JSR_DRAFTS:
            strcpy((S8*) fname, (S8*) MMI_JMMS_DRAFTS);
            break;
        case JSR_TEMPLATES:
            strcpy((S8*) fname, (S8*) MMI_JMMS_TEMPLATES);
            break;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_at_get_folder_info
 * DESCRIPTION
 *  Sets the folder information correponding to given Folder Id.
 * PARAMETERS
 *  folderId        [IN]        Id of Folder
 *  folderInfo      [?]         [?]         Folder information
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_at_get_folder_info(U8 folderId, JsrFolderInfo *folderInfo)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    FOLDER_INFO *pFolderInfo = NULL;
    FOLDER_LIST *pFolderList = NULL;
    U32 len = 0;
    S8 *folder_name = NULL;
    S8 fname[100];
    JC_RETCODE eRet = JC_OK;
    U8 numOfUnreadMsg = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    memset(fname, 0, 100);
    mmi_jmms_get_folder_name_from_folderId(folderId, fname);
    len = (strlen((PS8) fname) + 1) * ENCODING_LENGTH;

    folder_name = (PS8) jdd_MemAlloc(len, sizeof(S8));

    if (NULL == folder_name)
    {
        goto END;
    }

    AnsiiToUnicodeString((PS8) folder_name, (PS8) fname);

    eRet = mmi_jmms_get_folder_list(&pFolderInfo);
    if (eRet != JC_OK)
    {
        goto END;
    }

    pFolderList = pFolderInfo->pFolderList;

    while (pFolderList)
    {
        if (pfnUnicodeStrcmp((S8*) pFolderList->pFolderName, (S8*) folder_name) == 0)
        {
            folderInfo->numOfMsg = pFolderList->uiTotalMessages;
            //folderInfo->numOfUnreadMsg = (pFolderList->uiTotalMessages) - (pFolderList->uiTotalReadMessages);
            if(strcmp((S8*)fname, (S8*) MMI_JMMS_INBOX) == 0)
            {
                eRet = mmi_jmms_get_number_of_unread_messages_in_inbox(&numOfUnreadMsg);
                folderInfo->numOfUnreadMsg = numOfUnreadMsg;
            }
            else
            {
                folderInfo->numOfUnreadMsg = 0;
            }
            break;
        }
        pFolderList = pFolderList->pNext;
    }

END:

    if (folder_name != NULL)
    {
        jdd_MemFree(folder_name);
        folder_name = NULL;
    }

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_at_get_address_and_subject
 * DESCRIPTION
 *  Sets the folder information correponding to given Folder Id.
 * PARAMETERS
 *  list        [?]         [?]
 *  index       [IN]        
 *  address     [?]         [?]
 *  subject     [?]         [?]
 *  U8 folderId             Id of Folder(?)(?)
 *  JsrFolderInfo* folderInfo  folder information(?)(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_at_get_address_and_subject(JsrMessageInfo *list, U32 index, S8 *address, S8 *subject)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (address != NULL)
    {
        if (strlen(address) > 39)
        {
            memcpy(list[index].address, address, 39);
        }
        else
        {
            strcpy((S8*) (list[index].address), (S8*) address);
        }
    }
    if (subject != NULL)
    {
        if (strlen(subject) > 39)
        {
            memcpy(list[index].subject, subject, 39);
        }
        else
        {
            strcpy((S8*) (list[index].subject), (S8*) subject);
        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_at_get_message_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  folderId        [IN]        
 *  list            [?]         [?]
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_at_get_message_list(U8 folderId, JsrMessageInfo *list)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MESSAGE_LIST *pMessageList = NULL;
    MESSAGE_LIST *pTempMessageList = NULL;
    S8 fname[100];
    U32 i = 0;
    S32 msgType = -1;
    U32 len = 0;
    S8 *address = NULL;
    S8 *subject = NULL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -