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

📄 jprovwap.c

📁 MTK_MMI的部分源代码,从code中大致了解到MMI的执行流程
💻 C
📖 第 1 页 / 共 5 页
字号:
    }
    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 + -