📄 jprovwap.c
字号:
}
if (sub_string_p == NULL)
{
return -1;
}
buf_len = strlen(string_p);
start_len = strlen(sub_string_p);
if (start_len > buf_len)
{
return -1;
}
for (i = 0; i < start_len; i++)
{
if (sub_string_p[i] != string_p[i])
{
return -1;
}
}
return 0;
}
/*****************************************************************************
* FUNCTION
* mmi_prov_set_csd_req
* DESCRIPTION
* This API send an request to the L4 to set the CSD data filled for the selected index
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_prov_set_csd_req(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
U8 ref_count;
U16 msg_len;
mmi_cc_set_csd_profile_req_struct *set_csd_req_p = NULL , *set_csd_req_p1 = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_ph_cntx.ph_dataaccount_index >= MAX_DATA_ACCOUNT_GSM_LIMIT)
{
return;
}
if (g_prov_setting_type & PROV_NOKIA_SETTINGS)
{
if (g_prov_set_csd_req_p != NULL)
{
g_prov_set_csd_req_p->csd_module = 0;
g_prov_set_csd_req_p->auth_type = 0;
g_prov_set_csd_req_p->prof_id = g_ph_cntx.profile_display_p->data_account;
if (g_prov_profile_name_p != NULL)
{
U32 len = 0;
len = strlen((S8*) g_prov_profile_name_p);
if (len >= PROV_MAX_DATA_ACCOUNT_NAME_LEN)
{
len = PROV_MAX_DATA_ACCOUNT_NAME_LEN - 1;
}
memcpy((S8*) g_prov_set_csd_req_p->name.name, (S8*) g_prov_profile_name_p, len);
g_prov_set_csd_req_p->name.name[len] = '\0';
g_prov_set_csd_req_p->name.name_dcs = PHB_ASCII;
g_prov_set_csd_req_p->name.name_length = len;
}
}
}
else if (g_prov_setting_type & PROV_OMA_SETTINGS)
{
set_csd_req_p = jdd_MemAlloc(sizeof(mmi_cc_set_csd_profile_req_struct), 1);
set_csd_req_p->prof_id = g_ph_cntx.profile_display_p->data_account;
if (g_prov_dataAccountData_p != NULL)
{
mmi_prov_oma_fill_csd_data_account_info(g_prov_dataAccountData_p, &set_csd_req_p);
}
else
{
PRINT_INFORMATION_2((MMI_TRACE_INFO,
" JProvWap.c ........No Valid Data Account(NAPDEF) Available in the OMA Provisionig setting\n"));
if(set_csd_req_p)
{
jdd_MemFree(set_csd_req_p);
set_csd_req_p = NULL;
}
return;
}
}
set_csd_req_p1 = (mmi_cc_set_csd_profile_req_struct *)
OslConstructDataPtr(sizeof(mmi_cc_set_csd_profile_req_struct));
ref_count = set_csd_req_p1->ref_count;
msg_len = set_csd_req_p1->msg_len;
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_MMI_CC_SET_CSD_PROFILE_REQ;
if (g_prov_setting_type & PROV_NOKIA_SETTINGS)
{
memcpy((void *)set_csd_req_p1,
(void*)g_prov_set_csd_req_p, sizeof(mmi_cc_set_csd_profile_req_struct));
set_csd_req_p1->ref_count = ref_count ;
set_csd_req_p1->msg_len = msg_len ;
Message.oslDataPtr = (oslParaType*) set_csd_req_p1;
}
else if (g_prov_setting_type & PROV_OMA_SETTINGS)
{
memcpy((void *)set_csd_req_p1,
(void*)set_csd_req_p, sizeof(mmi_cc_set_csd_profile_req_struct));
set_csd_req_p1->ref_count = ref_count ;
set_csd_req_p1->msg_len = msg_len ;
Message.oslDataPtr = (oslParaType*) set_csd_req_p1;
if(set_csd_req_p)
{
jdd_MemFree(set_csd_req_p);
set_csd_req_p = NULL;
}
}
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_prov_set_csd_rsp, PRT_MMI_CC_SET_CSD_PROFILE_RSP);
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_prov_set_csd_rsp
* DESCRIPTION
* This API handles the RSP sent by L4 for Set CSD req .
* Done popup is shown if rsp is positive
* PARAMETERS
* info_p [IN] Rsp obtained from L4
* RETURNS
* void
*****************************************************************************/
void mmi_prov_set_csd_rsp(void *info_p)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_cc_set_csd_profile_rsp_struct *localPtr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
localPtr = (mmi_cc_set_csd_profile_rsp_struct*) info_p;
g_prov_timeout_hdlr = mmi_prov_get_next_appl_or_new_doc_callback;
if (localPtr->result == KAL_TRUE)
{
mmi_prov_handle_data_account_set_rsp((U8) PROV_CSD_BEARER);
}
else
{
DisplayPopupCallBack(
(PU8) GetString(STR_GLOBAL_NOT_DONE),
IMG_GLOBAL_UNFINISHED,
1,
PROV_DATA_ACCOUNT_NOTIFY_TIMEOUT,
ERROR_TONE,
g_prov_timeout_hdlr);
DeleteUptoScrID(IDLE_SCREEN_ID);
}
}
/*****************************************************************************
* FUNCTION
* mmi_prov_set_gprs_req
* DESCRIPTION
* This API send an request to the L4 to set the GPRS data filled for the selected index
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_prov_set_gprs_req(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_ps_set_gprs_data_account_req_struct *set_gprs_req_p = NULL , *set_gprs_req_p1 = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_ph_cntx.ph_dataaccount_index >= MAX_DATA_ACCOUNT_GPRS_LIMIT)
{
return;
}
if (g_prov_setting_type & PROV_NOKIA_SETTINGS)
{
if (g_prov_set_gprs_req_p != NULL)
{
/*Added by tk to handle empty APN case*/
if(g_prov_set_gprs_req_p->gprs_account.apn_length == 0)
{
g_prov_timeout_hdlr = mmi_prov_get_next_appl_or_new_doc_callback;
mmi_prov_handle_data_account_set_rsp((U8) PROV_GPRS_BEARER);
return;
}
/*end*/
g_prov_set_gprs_req_p->gprs_account.context_id =
g_ph_cntx.profile_display_p->data_account - MAX_DATA_ACCOUNT_GSM_LIMIT + 1;
if (g_prov_profile_name_p != NULL)
{
U32 len = 0;
len = strlen((S8*) g_prov_profile_name_p);
if (len >= PROV_MAX_GPRS_DATAACCOUNT_NAME)
{
len = PROV_MAX_GPRS_DATAACCOUNT_NAME - 1;
}
#if 0 /* added by tk */
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif /* 0 */
memcpy((S8*) g_prov_set_gprs_req_p->gprs_account.name, (S8*) g_prov_profile_name_p, len);
g_prov_set_gprs_req_p->gprs_account.name[len] = '\0';
g_prov_set_gprs_req_p->gprs_account.name_dcs = PHB_ASCII;
g_prov_set_gprs_req_p->gprs_account.name_length = len;
}
}
}
else if (g_prov_setting_type & PROV_OMA_SETTINGS)
{
set_gprs_req_p = jdd_MemAlloc(sizeof(mmi_ps_set_gprs_data_account_req_struct), 1);
set_gprs_req_p->gprs_account.context_id =
g_ph_cntx.profile_display_p->data_account - MAX_DATA_ACCOUNT_GSM_LIMIT + 1;
if (g_prov_dataAccountData_p != NULL)
{
mmi_prov_oma_fill_gprs_data_account_info(g_prov_dataAccountData_p, &set_gprs_req_p);
}
else
{
PRINT_INFORMATION_2((MMI_TRACE_INFO,
" JProvWap.c ........No Valid Data Account(NAPDEF) Available in the OMA Provisionig setting\n"));
if(set_gprs_req_p)
{
jdd_MemFree(set_gprs_req_p);
set_gprs_req_p = NULL;
}
return;
}
/*Added by tk to handle empty APN case*/
if(set_gprs_req_p->gprs_account.apn_length == 0)
{
g_prov_timeout_hdlr = mmi_prov_get_next_appl_or_new_doc_callback;
mmi_prov_handle_data_account_set_rsp((U8) PROV_GPRS_BEARER);
if(set_gprs_req_p)
{
jdd_MemFree(set_gprs_req_p);
set_gprs_req_p = NULL;
}
return;
}
/*end*/
}
set_gprs_req_p1 = (mmi_ps_set_gprs_data_account_req_struct *)
OslConstructDataPtr(sizeof(mmi_ps_set_gprs_data_account_req_struct));
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ;
if (g_prov_setting_type & PROV_NOKIA_SETTINGS)
{
memcpy((void *)&set_gprs_req_p1->gprs_account,
(void*)&g_prov_set_gprs_req_p->gprs_account, sizeof(g_prov_set_gprs_req_p->gprs_account));
Message.oslDataPtr = (oslParaType*) set_gprs_req_p1;
}
else if (g_prov_setting_type & PROV_OMA_SETTINGS)
{
memcpy((void *)&set_gprs_req_p1->gprs_account,
(void*)&set_gprs_req_p->gprs_account, sizeof(set_gprs_req_p->gprs_account));
Message.oslDataPtr = (oslParaType*) set_gprs_req_p1;
if(set_gprs_req_p)
{
jdd_MemFree(set_gprs_req_p);
set_gprs_req_p = NULL;
}
}
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_prov_set_gprs_rsp, PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_RSP);
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* mmi_prov_set_gprs_rsp
* DESCRIPTION
* This API handles the RSP sent by L4 for Set GPRS req .
* Done popup is shown if rsp is positive
* PARAMETERS
* info_p [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_prov_set_gprs_rsp(void *info_p)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
#ifdef __GPRS_MODE__
mmi_ps_set_gprs_data_account_rsp_struct *localPtr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
localPtr = (mmi_ps_set_gprs_data_account_rsp_struct*) info_p;
g_prov_timeout_hdlr = mmi_prov_get_next_appl_or_new_doc_callback;
if (localPtr->result == KAL_TRUE)
{
mmi_prov_handle_data_account_set_rsp((U8) PROV_GPRS_BEARER);
}
else
{
DisplayPopupCallBack(
(PU8) GetString(STR_GLOBAL_NOT_DONE),
IMG_GLOBAL_UNFINISHED,
1,
PROV_DATA_ACCOUNT_NOTIFY_TIMEOUT,
ERROR_TONE,
g_prov_timeout_hdlr);
DeleteUptoScrID(IDLE_SCREEN_ID);
}
#endif /* __GPRS_MODE__ */
}
/*****************************************************************************
* FUNCTION
* mmi_prov_handle_data_account_set_rsp
* DESCRIPTION
* This is general API to handle the data account rsp for both CSD & GPRS Data Account
* Profile data is updated into NVRAM & done popup is shown.
* PARAMETERS
* data_account [IN] CSD or GPRS
* RETURNS
* void
*****************************************************************************/
void mmi_prov_handle_data_account_set_rsp(U8 data_account)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_prov_setting_type & PROV_NOKIA_SETTINGS)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -