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

📄 jam_java_native_msg_handler.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 4 页
字号:
    /*----------------------------------------------------------------*/
    /* 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 + -