📄 jam_java_native_msg_handler.c
字号:
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
progress_ind->value = progress;
progress_ind->number_of_items = 0;
progress_ind->list_of_items = NULL;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_MMI;
send_ilm->local_para_ptr = (local_para_struct*) progress_ind;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_MMI_JAVA_INSTALL_PROGRESS_IND;
send_ilm->sap_id = J2ME_MMI_SAP;
check_incoming_call_and_block();
msg_send_ext_queue(send_ilm);
}
/*****************************************************************************
* FUNCTION
* jam_file_save_status
* DESCRIPTION
*
* PARAMETERS
* download_err_code [IN]
* downloadSize [IN]
* RETURNS
* void
*****************************************************************************/
void jam_file_save_status(kal_int32 download_err_code, kal_int32 downloadSize)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_java_get_file_and_save_ind_struct *get_file_ind;
ilm_struct *send_ilm;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
get_file_ind = construct_local_para(sizeof(mmi_java_get_file_and_save_ind_struct), TD_CTRL);
if (downloadSize < 0)
{
get_file_ind->error_code = J2ME_FILE_DONWLOAD_FAILED;
}
else
{
get_file_ind->error_code = J2ME_NO_ERROR;
}
get_file_ind->download_error_code = download_err_code;
get_file_ind->session_id = install_session_id;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_MMI;
send_ilm->local_para_ptr = (local_para_struct*) get_file_ind;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_MMI_JAVA_GET_FILE_AND_SAVE_IND;
send_ilm->sap_id = J2ME_MMI_SAP;
check_incoming_call_and_block();
msg_send_ext_queue(send_ilm);
vm_get_next_event(KAL_TRUE, MSG_ID_MMI_JAVA_GET_FILE_AND_SAVE_RES, KAL_FALSE, KAL_FALSE);
}
/* handled by JAS module, not using now */
/* kal_int32 jam_post_result(kal_char* utf8_massage, kal_int32 size,
kal_wchar* ucs2_url, kal_wchar* savePath){
ilm_struct *send_ilm;
java_wap_post_data_req_struct *post_data_req;
post_data_req = construct_local_para(sizeof(java_wap_post_data_req_struct),
TD_CTRL);
post_data_req->content_type = get_ctrl_buffer(1);
post_data_req->content_type[0] = 0;
post_data_req->body = utf8_massage;
post_data_req->body_size = size;
post_data_req->url = ucs2_url;
post_data_req->save_file_path = savePath;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_WAP;
send_ilm->local_para_ptr = (local_para_struct *)post_data_req;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_JAVA_WAP_POST_DATA_REQ;
send_ilm->sap_id = J2ME_MMI_SAP;
msg_send_ext_queue(send_ilm);
return vm_get_next_event(KAL_TRUE, MSG_ID_JAVA_WAP_POST_DATA_CNF, KAL_FALSE, KAL_TRUE);
} */
/*****************************************************************************
* FUNCTION
* get_permission_req
* DESCRIPTION
*
* PARAMETERS
* permission_title_id [IN]
* permission_dialog_selected_item [?]
* default_value [IN]
* RETURNS
* void
*****************************************************************************/
void get_permission_req(
kal_int32 permission_title_id,
kal_int32 *permission_dialog_selected_item,
kal_int32 default_value,
kal_wchar *appendix)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_java_get_permission_ind_struct *msg;
ilm_struct *send_ilm;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
msg = construct_local_para(sizeof(mmi_java_get_permission_ind_struct), TD_CTRL);
msg->title_id = permission_title_id;
msg->chosen_id = permission_dialog_selected_item;
msg->default_value = default_value;
msg->appendix = appendix;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_MMI;
send_ilm->local_para_ptr = (local_para_struct*) msg;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_MMI_JAVA_GET_PERMISSION_IND;
send_ilm->sap_id = J2ME_MMI_SAP;
check_incoming_call_and_block();
msg_send_ext_queue(send_ilm);
}
/*****************************************************************************
* FUNCTION
* jam_get_removal_confirm
* DESCRIPTION
*
* PARAMETERS
* MIDSID [IN]
* RETURNS
*
*****************************************************************************/
kal_bool jam_get_removal_confirm(game_type_enum type, kal_int32 MIDSID)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/* kal_int32 len; */
mmi_java_mids_remove_confirm_ind_struct *remove_confirm_ind;
kal_wchar *buffer;
ilm_struct *send_ilm;
mids_list_info_struct *thisMIDS;
/* mid_struct *thisMID; */
kal_int32 scanPos = 0;
kal_char *tempStr;
kal_int32 commit_remove = KAL_FALSE;
mid_struct *thisMID;
kal_int32 temp_len;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if(clean_event() == J2ME_GET_NEXT_EVENT_ABORT)
{
goto remove_confirm_abort;
}
/* Check if mids exist or not */
thisMIDS = find_mids_info_by_id(type, MIDSID);
if (thisMIDS == NULL)
{
return KAL_FALSE;
}
/* allocate a very big buffer that will be not over */
buffer = (kal_wchar*) jvm_malloc(20000);
if (buffer == NULL)
{
return KAL_FALSE;
}
/* trans_utf8_to_ucs2(buffer, "Are you sure you want to remove ");
scanPos = 32; */
tempStr = (kal_char*) get_string(STR_GLOBAL_DELETE);
scanPos = get_ucs2_len((kal_wchar*) tempStr);
memcpy(buffer, tempStr, scanPos << 1);
memcpy(buffer + scanPos, " \0", 2);
scanPos += 1;
memcpy(buffer + scanPos, thisMIDS->mids_name, get_ucs2_len(thisMIDS->mids_name) << 1);
scanPos += get_ucs2_len(thisMIDS->mids_name);
tempStr = (kal_char*) get_string(STR_JAVA_DELETE_ASK);
temp_len = get_ucs2_len((kal_wchar*)tempStr);
memcpy(buffer + scanPos, tempStr, temp_len << 1);
scanPos += temp_len;
thisMID = thisMIDS->mid_info.mid_list;
while(thisMID != NULL){
kal_wchar* name = thisMID->mid_name;
kal_int32 nameLen = get_ucs2_len(name);
trans_utf8_to_ucs2(buffer + scanPos, " ");
scanPos += 2;
memcpy(buffer + scanPos, name, nameLen << 1);
scanPos += nameLen;
trans_utf8_to_ucs2(buffer + scanPos, "\n");
scanPos += 1;
thisMID = thisMID->mid_next;
}
buffer[scanPos] = 0;
remove_confirm_ind = construct_local_para(sizeof(mmi_java_mids_remove_confirm_ind_struct), TD_CTRL);
remove_confirm_ind->session_id = remove_session_id;
remove_confirm_ind->confirm_msg = buffer;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_MMI;
send_ilm->local_para_ptr = (local_para_struct*) remove_confirm_ind;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_MMI_JAVA_MIDS_REMOVE_CONFIRM_IND;
send_ilm->sap_id = J2ME_MMI_SAP;
check_incoming_call_and_block();
msg_send_ext_queue(send_ilm);
if (get_next_event(KAL_TRUE, MSG_ID_MMI_JAVA_MIDS_REMOVE_CONFIRM_RES, KAL_FALSE, KAL_FALSE, NULL) == KAL_TRUE)
{
commit_remove = KAL_TRUE;
}
jvm_free(buffer);
remove_confirm_abort:
return commit_remove;
}
kal_bool terminated_by_user_cancel = KAL_FALSE;
/*****************************************************************************
* FUNCTION
* waiting_http_response
* DESCRIPTION
*
* PARAMETERS
* msg [IN]
* user_cancel_dont_care [IN]
* RETURNS
*
*****************************************************************************/
kal_bool waiting_http_response(int msg, kal_bool user_cancel_dont_care)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 return_msg;
kal_bool get_an_auth_ind = KAL_FALSE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
while ((return_msg = jnw_http_check_response_primitive()) != msg)
{
if(return_msg == MSG_WPS_HTTP_AUTH_IND)
{
if(!get_an_auth_ind)
{
ilm_struct *send_ilm;
mmi_java_get_auth_ind_struct* auth_ind;
auth_ind = construct_local_para(sizeof(mmi_java_mids_remove_confirm_ind_struct), TD_CTRL);
auth_ind->session_id = 0;
send_ilm = allocate_ilm(MOD_J2ME);
send_ilm->src_mod_id = MOD_J2ME;
send_ilm->dest_mod_id = MOD_MMI;
send_ilm->local_para_ptr = (local_para_struct*) auth_ind;
send_ilm->peer_buff_ptr = NULL;
send_ilm->msg_id = MSG_ID_MMI_JAVA_GET_AUTH_IND;
send_ilm->sap_id = J2ME_MMI_SAP;
check_incoming_call_and_block();
msg_send_ext_queue(send_ilm);
if(vm_get_next_event(KAL_TRUE, MSG_ID_MMI_JAVA_GET_AUTH_RES, KAL_FALSE, KAL_FALSE) == J2ME_GET_NEXT_EVENT_ABORT)
{
if (!user_cancel_dont_care)
{
ota_user_name[0] = 0;
ota_passwd[0] = 0;
jnw_http_auth_res(http_channel_id, ota_user_name, MMI_JAVA_AUTH_LEN_USERNAME, ota_passwd, MMI_JAVA_AUTH_LEN_USERNAME);
terminated_by_user_cancel = KAL_TRUE;
return KAL_FALSE;
}
}
}
else
{
ota_user_name[0] = 0;
ota_passwd[0] = 0;
}
jnw_http_auth_res(http_channel_id, ota_user_name, MMI_JAVA_AUTH_LEN_USERNAME, ota_passwd, MMI_JAVA_AUTH_LEN_USERNAME);
get_an_auth_ind = KAL_TRUE;
}
kal_sleep_task(10);
if (clean_event() == J2ME_GET_NEXT_EVENT_ABORT)
{
if (!user_cancel_dont_care)
{
terminated_by_user_cancel = KAL_TRUE;
return KAL_FALSE;
}
}
}
if(return_msg == MSG_WPS_HTTP_RSP)
{
if(jnw_http_get_status() != 200)
{
return KAL_FALSE;
}
}
if (jnw_http_get_result() != WPS_OK)
{
return KAL_FALSE;
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* jam_http_open_channel
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
kal_bool jam_http_open_channel()
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
jnw_http_open_connection(J2ME_HTTP_WPS_CHANNEL_HTTP);
while (jnw_http_check_response_primitive() != MSG_WPS_SET_CHANNEL_RSP)
{
kal_sleep_task(10);
}
if (jnw_http_get_result() != WPS_OK)
{
return KAL_FALSE;
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* jam_http_close_channel
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
kal_bool jam_http_close_channel()
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int16 channel_id = (kal_int16) J2ME_http_get_channel_id(J2ME_HTTP_WPS_CHANNEL_HTTP);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* check if the connection has been closed */
if (channel_id < 0)
{
return KAL_FALSE;
}
if(jnw_http_close_connection(J2ME_HTTP_WPS_CHANNEL_HTTP))
{
while (jnw_http_check_response_primitive() != MSG_WPS_CANCEL_RSP)
{
kal_sleep_task(10);
}
}
J2ME_http_unset_channel(J2ME_HTTP_WPS_CHANNEL_HTTP);
while (jnw_http_check_response_primitive() != MSG_WPS_UNSET_CHANNEL_RSP)
{
kal_sleep_task(10);
}
return KAL_TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -