📄 jprovwap.c
字号:
/*****************************************************************************
* 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 + -