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

📄 jmmsstorehandling.c

📁 MTK_MMI的部分源代码,从code中大致了解到MMI的执行流程
💻 C
📖 第 1 页 / 共 4 页
字号:
/*****************************************************************************
*  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_store_handling.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!
 *
 * 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_JMMSSTOREHANDLING_C
#define _MMI_JMMSSTOREHANDLING_C

/***************************************************************************** 
* Include
*****************************************************************************/

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

#include "PixtelDataTypes.h"
#include "Unicodexdcl.h"
#include "HistoryGprot.h"
#include "GlobalDefs.h"
#include "SettingProfile.h"
#include "DebugInitDef.h"
#include "CommonScreens.h"
#include "EventsGprot.h"
#include "wgui_inputs.h"
#include "wgui_categories.h"
#include "wgui_categories_inputs.h"
#include "MainMenuDef.h"

#include <ddl.h>
#include <jcal.h>
#include <ddlbase.h>

#include <MessagingDataTypes.h>
#include <MessagingAPI.h>

#include "JMMSConfig.h"
#include "JMMSMessageSettings.h"
#include "JMMSCoreAPI.h"
#include "JMMSDrafts.h"
#include "JMMSExdcl.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 "NVRAMType.h"
#include "NVRAMProt.h"
#include "NVRAMEnum.h"

#include "PrvStoreDataTypes.h"
#include "PrvStoreHandleInterfaces.h"
#include "JSRProts.h"
//PMT VIKAS START 20060325
//For size calculation.
#include "FileMgr.h"
/* PMT VIKAS END 20060325 */


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

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

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

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

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

U64 g_jmms_normal_msgid = MMI_JMMS_MAX_JAVA_MSG_ID;
U64 g_jmms_java_msgid = 0;

/***************************************************************************** 
* Global Function
*****************************************************************************/

extern void mmi_jmms_create_template_messages(void);


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_normal_msgid_value_from_nvram
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_get_normal_msgid_value_from_nvram(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ReadValue(NVRAM_JMMS_NORMAL_MESSAGE_ID, &g_jmms_normal_msgid, DS_DOUBLE, &error);
    if (g_jmms_normal_msgid > (0xFFFFFFFF))    // COMPILER WARNING REMOVAL
    {
        g_jmms_normal_msgid = MMI_JMMS_MAX_JAVA_MSG_ID;
        WriteValue(NVRAM_JMMS_NORMAL_MESSAGE_ID, &g_jmms_normal_msgid, DS_DOUBLE, &error);
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_java_msgid_value_from_nvram
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_get_java_msgid_value_from_nvram(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ReadValue(NVRAM_JMMS_JAVA_MESSAGE_ID, &g_jmms_java_msgid, DS_DOUBLE, &error);
    if (g_jmms_java_msgid > (0xFFFFFFFF))    // COMPILER WARNING REMOVAL
    {
        g_jmms_java_msgid = 0;
        WriteValue(NVRAM_JMMS_JAVA_MESSAGE_ID, &g_jmms_java_msgid, DS_DOUBLE, &error);
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_set_normal_msgid_value_to_nvram
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_set_normal_msgid_value_to_nvram(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    WriteValue(NVRAM_JMMS_NORMAL_MESSAGE_ID, &g_jmms_normal_msgid, DS_DOUBLE, &error);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_set_java_msgid_value_to_nvram
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_set_java_msgid_value_to_nvram(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    WriteValue(NVRAM_JMMS_JAVA_MESSAGE_ID, &g_jmms_java_msgid, DS_DOUBLE, &error);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_folder_list
 * DESCRIPTION
 *  This function is to get the folder list from store
 * PARAMETERS
 *  folder_list     [IN]        - list of folders
 * RETURNS
 *  void
 *****************************************************************************/
JC_RETCODE mmi_jmms_get_folder_list(FOLDER_INFO **folder_list)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    FOLDER_INFO *pFolderList = NULL;
    JC_RETCODE eRet = JC_OK;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    eRet = mmi_jmms_jdi_get_folders(g_jmms_context->hStoreHandle, &pFolderList);
    if (JC_OK == eRet)
    {
        *folder_list = pFolderList;
    }
    else
    {
        folder_list = NULL;
    }

    return eRet;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_messages_list
 * DESCRIPTION
 *  This function is to get the msg list from a folder
 * PARAMETERS
 *  pFolderName             [?]         [?]
 *  msg_list                [IN]        - list of mesages
 *  retrieve_filters        [?]         [?]
 *  folder_name   - name of folder from which messages are to fetch out(?)(?)
 * RETURNS
 *  void
 *****************************************************************************/
JC_RETCODE mmi_jmms_get_messages_list(S8 *pFolderName, MESSAGE_LIST **msg_list, RETRIEVE_FILTERS *retrieve_filters)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    JC_RETCODE eRet = JC_OK;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    eRet = mmi_jmms_set_active_folder(pFolderName);
    if (JC_OK != eRet)
    {
        return eRet;
    }

    eRet = mmi_jmms_jdi_get_msg_list(g_jmms_context->hStoreHandle, msg_list, retrieve_filters);
    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, msg_list, retrieve_filters);
            }
        }
    }

    return eRet;

}


/*****************************************************************************
 * FUNCTION
 *  mmi_mms_get_number_of_messages
 * DESCRIPTION
 *  This function is to get the total number of messages present in a folder
 * PARAMETERS
 *  pFolderName             [?]     [?]
 *  total_num_messages      [?]     [?]     - list of mesages
 *  folder_name   - name of folder from which messages are to fetch out(?)(?)
 * RETURNS
 *  void
 *****************************************************************************/
JC_RETCODE mmi_mms_get_number_of_messages(S8 *pFolderName, U8 *total_num_messages)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U32 len = 0;
    S8 *folder_name = NULL;
    JC_RETCODE eRet = JC_OK;
    FOLDER_INFO *folder_info = NULL;
    FOLDER_LIST *pFolderList = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    *total_num_messages = 0;

    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);

    /* manish changing */
    eRet = mmi_jmms_jdi_get_folders(g_jmms_context->hStoreHandle, &folder_info);
    if (JC_OK != eRet)
    {
        goto END;
    }

    pFolderList = folder_info->pFolderList;
    while (pFolderList != NULL)
    {
        if (pfnUnicodeStrcmp((S8*) pFolderList->pFolderName, (S8*) folder_name) == NULL)
        {
            *total_num_messages = pFolderList->uiTotalMessages;
            break;
        }
        pFolderList = pFolderList->pNext;
    }

  END:

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

    return eRet;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_total_number_of_messages
 * DESCRIPTION
 *  
 * PARAMETERS
 *  total_num_messages      [?]     [?]
 * RETURNS
 *  

⌨️ 快捷键说明

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