@Deprecated
	public File downloadFileNew(File inputUrl, File outputFile){
		OutputStream out = null;
		InputStream fis = null;
		
		HttpParams httpParameters = new BasicHttpParams();
		int timeoutConnection = 2500;
		HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
		int timeoutSocket = 2500;
		HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
		
		File dir = outputFile.getParentFile();
		dir.mkdirs();

		try {
						
			HttpGet httpRequest = new HttpGet(stringFromFile(inputUrl));
			DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
			HttpResponse response = httpClient.execute(httpRequest);
			
			int statusCode = response.getStatusLine().getStatusCode();
			if (statusCode == HttpStatus.SC_OK) {
				HttpEntity entity = response.getEntity();
				out = new BufferedOutputStream(new FileOutputStream(outputFile));
				long total = entity.getContentLength();
				fis = entity.getContent();
				
				
				if(total>1||true)
					startTalker(total);
				else{
					throw new IOException("Content null");
				}
				long progress = 0;
				
				byte[] buffer = new byte[1024];
				int length = 0;
				while ((length = fis.read(buffer)) != -1) {
					
					out.write(buffer, 0, length);
					
					progressTalker(length);
					progress+=length;
				}
				
				/*
				for (int b; (b = fis.read()) != -1;) {
					out.write(b);
					progress+=b;
					progressTalker(b);
				}
				*/
				
				finishTalker(progress);
			}
		}catch(Exception e){
			cancelTalker(e);
			e.printStackTrace();
			return null;
		}finally{
			try {
				if(out!=null){
					out.flush();
					out.close();
				}
				if(fis!=null)
					fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return outputFile;
	}
@ Deprecated public File downloadFileNew ( File inputUrl , File outputFile ) { OutputStream out = null ; InputStream fis = null ; HttpParams httpParameters = new BasicHttpParams ( ) ; int timeoutConnection = 2500 ; HttpConnectionParams . setConnectionTimeout ( httpParameters , timeoutConnection ) ; int timeoutSocket = 2500 ; HttpConnectionParams . setSoTimeout ( httpParameters , timeoutSocket ) ; File dir = outputFile . getParentFile ( ) ; dir . mkdirs ( ) ; try { HttpGet httpRequest = new HttpGet ( stringFromFile ( inputUrl ) ) ; DefaultHttpClient httpClient = new DefaultHttpClient ( httpParameters ) ; HttpResponse response = httpClient . execute ( httpRequest ) ; int statusCode = response . getStatusLine ( ) . getStatusCode ( ) ; if ( statusCode == HttpStatus . SC_OK ) { HttpEntity entity = response . getEntity ( ) ; out = new BufferedOutputStream ( new FileOutputStream ( outputFile ) ) ; long total = entity . getContentLength ( ) ; fis = entity . getContent ( ) ; if ( total > 1 || true ) startTalker ( total ) ; else { throw new IOException ( "Content null" ) ; } long progress = 0 ; byte [ ] buffer = new byte [ 1024 ] ; int length = 0 ; while ( ( length = fis . read ( buffer ) ) != - 1 ) { out . write ( buffer , 0 , length ) ; progressTalker ( length ) ; progress += length ; } finishTalker ( progress ) ; } } catch ( Exception e ) { cancelTalker ( e ) ; e . printStackTrace ( ) ; return null ; } finally { try { if ( out != null ) { out . flush ( ) ; out . close ( ) ; } if ( fis != null ) fis . close ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } } return outputFile ; }
still has issues...

@param inputUrl
@param outputFile
@return