package com.talent.allshare; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.util.Log; import com.talent.allshare.downloader.DownlaodStateListener.OnDownloadFinishedListener; import com.talent.allshare.downloader.DownlaodStateListener.OnDownloadStartedListener; import com.talent.allshare.downloader.DownlaodStateListener.OnProgressUpdateListener; import com.talent.allshare.downloader.DownloadFileAsync; import com.youplayer.player.R; import com.youplayer.player.YouApplication; public class DownloadProcess { private Context mActivity; private ProgressDialog mProgressDialog; private boolean bvsibledialog=true; public DownloadProcess(Context activity) { mActivity = activity; } public DownloadProcess(Context activity, boolean vsibledialog) { mActivity = activity; bvsibledialog=vsibledialog; } public String decodeUri(String uri) { String newUri = ""; try { newUri = URLDecoder.decode(uri, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return newUri; } public void startDownload(final String fileName, final String downloadUrl) { Log.i("app", "startDownload + " + YouApplication.getInstance()); final DownloadFileAsync downloader = new DownloadFileAsync( mActivity, fileName, downloadUrl,YouApplication.getInstance().notification); downloader .setOnDownloadStartedListener(new OnDownloadStartedListener() { @Override public void onDownloadStarted(String fileName, String downloadUrl, int startProgress) { if(bvsibledialog) { mProgressDialog = new ProgressDialog(mActivity); mProgressDialog.setMessage("Downloading file..."); mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog .setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); mProgressDialog.setButton(mActivity.getResources().getString(R.string.down_bg), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); mProgressDialog.setButton2(mActivity.getResources().getString(R.string.down_cancle), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { downloader.stopDownload(); } }); mProgressDialog.show(); mProgressDialog.setMessage("downloading " + fileName); mProgressDialog.setProgress(startProgress); mProgressDialog .setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { // TODO Auto-generated method stub //stop download when finish // downloader.stopDownload(); } }); } } }); downloader.setOnProgressUpdateListener(new OnProgressUpdateListener() { @Override public void onProgressUpdate(String fileName, String downloadUrl, int progress,int speed) { if(bvsibledialog) { mProgressDialog.setMessage("downloading " + fileName+" "+speed + "KB/S"); //Log.i("downloadprocess", "setProgress : " + progress ); mProgressDialog.setProgress(progress); // updateActiveNotification } } }); downloader .setOnDownloadFinishedListener(new OnDownloadFinishedListener() { @Override public void onDownloadFinished(String fileName, String downloadUrl, boolean isFinish) { if(bvsibledialog) { mProgressDialog.dismiss(); } } }); downloader.execute(fileName, downloadUrl); } }