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

📄 jprovwap.c

📁 MTK_MMI的部分源代码,从code中大致了解到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) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 * JProvWap.C
 *
 * Project:
 * --------
 *   MAUI
 *
 * Description:
 * ------------
 *   This is general source file for OTA provisioning
 *
 * 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!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/

#ifndef _JPROVWAP_C
#define _JPROVWAP_C

#include "MMI_features.h"

#if defined (JATAAYU_SUPPORT) && (defined (WAP_SUPPORT) || (defined (MMS_SUPPORT)))

#include "stdC.h"
#include "L4Dr1.h"
#include "PixtelDataTypes.h"
#include "DebugInitDef.h"       /* Debug Info */
#include "FileSystemDef.h"
#include "FileManagerDef.h"
#include "FileSystemGProt.h"
#include "FileMgr.h"
#include "Ucs2prot.h"
#include "NVRAMType.h"
#include "NVRAMProt.h"
#include "NVRAMEnum.h"
#include "custom_nvram_editor_data_item.h"
#include "JProvWap.h"
#include "JProvOma.h"
#include "JProvNE.h"
#include <ddl.h>
#include <jcal.h>
#include <jdi_XML.h>
#include <jdi_WBXML.h>
#include <jdi_urivalidation.h>
#include "JProfileHandlerTypes.h"
#include "JProfileHandlerDefs.h"
#include "JProfileHandlerProts.h"
#include "app_mine.h"
#include "MessagesResourceData.h"       /* IMG_NEW_MESSAGE_NOTIFICATION_MSG */
#include "SmsGuiInterfaceType.h"
#include "SmsGuiInterfaceProt.h"
#include "gpioInc.h"    /* TurnOnBacklight */

static prov_queue_data_struct *prov_data_queue[PROV_MAX_NBR_DOCUMENTS];
static S8 g_prov_data_queue_current_item = 0;
static S8 g_prov_data_queue_last_item = 0;
S8 g_prov_data_queue_size = 0;

static U8 g_prov_settings_present = 0x00;

U8 g_prov_bearer = PROV_INVALID_BEARER;
U8 g_prov_setting_type = PROV_BRS_SETTINGS;
U8 g_prov_data_account_index = 0x00;
U8 g_prov_appl_flag = PROV_NO_APPLICATION;
U8 g_prov_pend_set = 0;

mmi_cc_set_csd_profile_req_struct *g_prov_set_csd_req_p = NULL;

#ifdef __GPRS_MODE__
mmi_ps_set_gprs_data_account_req_struct *g_prov_set_gprs_req_p = NULL;
#endif 

U8 *g_prov_profile_name_p = NULL;

static U16 g_prov_instal_stringID;

U16 g_prov_newsetting_stringID = STR_ID_PROV_NEW_SETTINGS;

FuncPtr g_prov_timeout_hdlr = NULL;

extern void (*g_DTCNTReadyCallback) (void);
extern void PlayMessageArrivalTone(void);
extern pBOOL GetUCS2Flag(PS8 buffer);
extern MMI_BOOL mmi_brw_validate_url(U8 *url_p);
extern U16 g_ph_title_img_id;


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_deinit
 * DESCRIPTION
 *  It deinits the Provisioing module
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_prov_deinit(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* g_prov_settings_present=0x00; */
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_receive_da_file
 * DESCRIPTION
 *  
 * PARAMETERS
 *  mime_type                   [IN]        
 *  mime_subtype                [IN]        
 *  action_type                 [IN]        
 *  filename                    [IN]        
 *  download_url                [IN]        
 *  mime_type_str_string        [IN]        
 *  mime_type_str_string[IN](?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_prov_receive_da_file(
	S32 session_id,
        S32 mime_type,
        S32 mime_subtype,
        S32 action_type,
        PU16 filename,
        PS8 download_url,
        PS8 mime_type_str_string)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    JC_RETCODE ret_code = JC_OK;
    JC_UINT32 uiFileSize = 0;
    JDD_FSHANDLE FileSysHandle = NULL;
    JDD_FILE FileHandle = NULL;
    JC_INT32 iNumberofItems;

    U32 provLength = 0;
    S8 *prov_buffer_p = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ret_code = jdd_FSInitialize(&FileSysHandle);
    if (ret_code != JC_OK)
    {
        ASSERT(0);
    }

    FileHandle = (JDD_FILE) jdd_FSOpen(FileSysHandle, (U16*) filename, E_OPEN_READ_MODE);

    jdd_FSGetSize(FileHandle, &uiFileSize);
    provLength = uiFileSize;
    prov_buffer_p = jdd_MemAlloc((provLength + 1), 1);
    if (prov_buffer_p == NULL)
    {
        ASSERT(0);
    }

    iNumberofItems = jdd_FSRead(prov_buffer_p, provLength, 1, FileHandle);
    jdd_FSClose(FileHandle);
    mmi_prov_handle_provisioning_data_ext(prov_buffer_p, provLength, (S8*) mime_type_str_string);

    jdd_MemFree(prov_buffer_p);
    prov_buffer_p = NULL;

    jdd_FSDeinitialize(FileSysHandle);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_handle_provisioning_data
 * DESCRIPTION
 *  It opens the file at the path specified,reads the file & copy data into buffer and then pass
 *  the buffer for further processing
 * PARAMETERS
 *  content_type_p      [IN]        
 *  filePath            [IN]        
 * RETURNS
 *  kal_int32
 *****************************************************************************/
kal_int32 mmi_prov_handle_provisioning_data(kal_int8 *content_type_p, kal_wchar *filePath)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    JC_RETCODE ret_code = JC_OK;
    JC_UINT32 uiFileSize = 0;
    JDD_FSHANDLE FileSysHandle = NULL;
    JDD_FILE FileHandle = NULL;
    JC_INT32 iNumberofItems;

    U32 provLength = 0;
    S8 *prov_buffer_p = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ret_code = jdd_FSInitialize(&FileSysHandle);
    if (ret_code != JC_OK)
    {
        return ret_code;
    }

    FileHandle = (JDD_FILE) jdd_FSOpen(FileSysHandle, (U16*) filePath, E_OPEN_READ_MODE);

    jdd_FSGetSize(FileHandle, &uiFileSize);
    provLength = uiFileSize;
    prov_buffer_p = jdd_MemAlloc((provLength + 1), 1);

    iNumberofItems = jdd_FSRead(prov_buffer_p, provLength, 1, FileHandle);
    jdd_FSClose(FileHandle);
    mmi_prov_handle_provisioning_data_ext(prov_buffer_p, provLength, (S8*) content_type_p);

    jdd_MemFree(prov_buffer_p);
    prov_buffer_p = NULL;

    jdd_FSDeinitialize(FileSysHandle);
    return ret_code;

}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_handle_provisioning_data_ext
 * DESCRIPTION
 *  It handles the prov. data buffer received
 *  based on if it is an OMA or Nokia format, a popup is shown if max queue size is reached
 * PARAMETERS
 *  prov_buffer_p       [IN]        
 *  prov_length         [IN]        
 *  content_type_p      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_prov_handle_provisioning_data_ext(S8 *prov_buffer_p, U32 prov_length, S8 *content_type_p)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_prov_data_queue_size == PROV_MAX_NBR_DOCUMENTS)
    {

        DisplayPopup(
            (PU8) GetString(STR_ID_PROV_MAX_QUE_SIZE),
            IMG_GLOBAL_WARNING,
            1,
            UI_POPUP_NOTIFYDURATION_TIME,
            WARNING_TONE);
        return;
    }
    else
    {
        if (mmi_prov_check_if_substring(content_type_p, APPLICATION_VND_WAP_CONNECTIVITY_WBXML) == 0)
        {
            g_prov_instal_stringID = STR_ID_PROV_INSTALL_SETTINGS;
			g_prov_newsetting_stringID = STR_ID_PROV_NEW_SETTINGS;
            mmi_prov_oma_handle_settings(prov_buffer_p, prov_length, content_type_p);

        }
        else if (mmi_prov_check_if_substring(content_type_p, APPLICATION_X_WAP_PROV_BROWSER_SETTINGS) == 0)
        {

            g_prov_instal_stringID = STR_ID_PROV_INSTALL_SETTINGS;
			g_prov_newsetting_stringID = STR_ID_PROV_NEW_SETTINGS;
            mmi_prov_NE_handle_WSP_headers((U8 **) & prov_buffer_p, (U32*) & prov_length);
            mmi_prov_NE_handle_settings(prov_buffer_p, prov_length);

        }
        else if (mmi_prov_check_if_substring(content_type_p, APPLICATION_X_WAP_PROV_BROWSER_BOOKMARKS) == 0)
        {

            g_prov_instal_stringID = STR_ID_PROV_INSTALL_BOOKMARK;
			g_prov_newsetting_stringID = STR_ID_PROV_NEW_BOOKMARK;
            mmi_prov_NE_handle_WSP_headers((U8 **) & prov_buffer_p, (U32*) & prov_length);
            mmi_prov_NE_handle_settings(prov_buffer_p, prov_length);

        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_prov_show_new_settings_popup
 * DESCRIPTION
 *  This will take the control to the Idle screen or will show an new settings popup screen
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_prov_show_new_settings_popup(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    TurnOnBacklight(1);
    g_prov_settings_present = 0x01;
    if ((g_idle_context.IsOnIdleScreen || g_idle_context.ScreenSaverRunFlag) && !isInCall())
    {
        PlayMessageArrivalTone();
        /* EntryIdleScreen(); */

⌨️ 快捷键说明

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