package com.ai.ced.bluetooth;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;

import com.sunnada.SYDReader.ConsantHelper;
import com.sunnada.SYDReader.IdentityCardZ;


/**
 * 恒鸿达-sdk外需要用到的类
 * @author xmh
 *
 */
public  class Busi_Idcard_device {

	private  String TAG = "Busi_Idcard_device";
	private  String TIP = "提示";
	private static final int MSG_REG_FAIL 			= 0x02;	
	private static final int MSG_CHECK_ID_SUC		= 0x03;
	public static final int MSG_CHECK_ID_FAIL		= 0x04;
	private static final int MSG_CHECK_ID_TIMEOUT	= 0x05;
	private static final int MSG_GET_ID_INFO_SUCC   = 0x06;
	private static final int MSG_GET_ID_INFO_FAIL   = 0x07;
	
	protected	Context		main_activity;
	
	protected boolean 	isClosed = false;
	public boolean isFail = false;
	public boolean getResult = false;
	private CallBack callBack;     //读取成功的回调函数
	public  String  bmpPath ;
	public  boolean continueflag  = false;   //	

	
	public Busi_Idcard_device(Context a)
	{
		main_activity = a;		
	
	}
	public Handler mHandler = new Handler() 
	{
		
		public void handleMessage(Message msg) 
		{			
			isClosed = true;	
			Common.progressbarEnd();
			switch (msg.what) 
			{
				// 身份证识别失败
				case MSG_REG_FAIL:		
					if(continueflag)
					{
						callBack.HandleResult(null,null,null);
						break;
					}					
					Common.dialogInit(main_activity, TIP, "识别失败！");					
					break;
					
				// 验证身份证通过
				case MSG_CHECK_ID_SUC:
					
					if(continueflag)
					{
						callBack.HandleResult(null,null,null);
						break;
					}	
					break;
					
				// 验证身份证信息失败
				case MSG_CHECK_ID_FAIL:
					if(continueflag)
					{
						callBack.HandleResult(null,null,null);
						break;
					}	
					String desc = (String)msg.obj;
					if(TextUtils.isEmpty(desc)  || "anyType{}".equals(desc)) 
					{
						desc = "读取失败。";
					}
					Common.dialogInit(main_activity, TIP, desc);

					break;
					
				// 验证身份证信息超时
				case MSG_CHECK_ID_TIMEOUT:
					if(continueflag)
					{
						callBack.HandleResult(null,null,null);
						break;
					}	
					Common.dialogInit(main_activity, TIP, "身份验证超时");
					break;
				
				case ConsantHelper.READ_IDCARD_SUCC:
				case MSG_GET_ID_INFO_SUCC:
				{
					isFail = false;
					IdentityCardZ mid = (IdentityCardZ)(msg.obj);
					callBack.HandleResult(mid,null,null);
				}break;
				case ConsantHelper.READER_NOT_FOUND_INDEX:
				case ConsantHelper.READER_ONLY_MATCH_ONE_PHONE:
				case ConsantHelper.NETWORK_UNAVAILABLE:	
					
				case ConsantHelper.IDCARD_NOT_FOUND:
				case ConsantHelper.SERVER_ERROR:
				case ConsantHelper.READER_ERROR:
					
				case ConsantHelper.SOMETHING_WRONG_NEED_RETRY:
				case ConsantHelper.READ_IDCARD_INFO_ERROR:
				case ConsantHelper.READ_IDCARD_CANNOT_CONNECT_TO_SERVER:
					
				case ConsantHelper.CONNET_TO_SERVER_TIMEOUT:
				case ConsantHelper.CONNECT_TO_SERVER_ERROR:
				case ConsantHelper.SERVER_BUSY_ERROR:			
				{	
					if(continueflag)
					{
						callBack.HandleResult(null,null,null);
						break;
					}	
					System.out.println("msg.what=" +msg.what + "msg.org="+msg.obj);				
					String err_type = (String) msg.obj;
					Common.dialogInit(main_activity, TIP, err_type);
				}break;			
				default:			
					break;
			}
		}
	};
	public void setIdCardCallback(CallBack m)
	{
		callBack = m;
	}
}
