VersionHandler.java 1.66 KB
package com.ectrip.cyt.version;

import java.io.File;

import com.ectrip.trips.check.R;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;

/**
 * @author jigo 处理通知下载
 */
public class VersionHandler extends Handler {

	private final int DOWN_NOSDCARD = 0;
	private final int DOWN_UPDATE = 1;
	private final int DOWN_OVER = 2;

	private Activity activity;
	private VersionInterface versionInterface;// 回调

	public VersionHandler(Activity activity, VersionInterface versionInterface) {
		this.activity = activity;
		this.versionInterface = versionInterface;
	}

	@Override
	public void handleMessage(Message msg) {
		ProgressBean progressBean = (ProgressBean) msg.obj;
		switch (msg.what) {
			case DOWN_UPDATE:
				versionInterface.setProgress(progressBean.getProgress());
				versionInterface.tmpFileSize(progressBean.getTmpFileSize());
				break;
			case DOWN_OVER:
				String path = progressBean.getApkFilePath();
				versionInterface.dialogDismiss();
				installApk(path);
				break;
			case DOWN_NOSDCARD:
				versionInterface.dialogDismiss();
				Toast.makeText(activity,
						activity.getString(R.string.please_check_whether_the_SD_card_mount),
						Toast.LENGTH_SHORT).show();
				break;
		}
	}

	/**
	 * 安装apk
	 *
	 * @param url
	 */
	private void installApk(String apkFilePath) {
		File apkfile = new File(apkFilePath);
		if (!apkfile.exists()) {
			return;
		}
		Intent i = new Intent(Intent.ACTION_VIEW);
		i.setDataAndType(Uri.parse("file://" + apkfile.toString()),
				"application/vnd.android.package-archive");
		activity.startActivity(i);
	}
}