|  |  |  | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.CloseGridOneResultEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.KeyResultEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.GetKeyStatusEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.OpenErrEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.OpenGridEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.OpenGridListEvent; | 
|---|
|  |  |  | import com.doumee.keyCabinet.event.OpenGridOneResultEvent; | 
|---|
|  |  |  | 
|---|
|  |  |  | private int status; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private int ysDownCount = 10; | 
|---|
|  |  |  | private boolean isChose; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int getLayoutId() { | 
|---|
|  |  |  | 
|---|
|  |  |  | adapter = new CabinetRcvAdapter(this, R.layout.cabinet_rcv_item, new CabinetRcvAdapter.OnItemClick() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void onItemClick(KeyCabinetBean item) { | 
|---|
|  |  |  | if(isChose){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | selectBean = item; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | 
|---|
|  |  |  | Toast.makeText(mContext, "请选择柜门", Toast.LENGTH_SHORT).show(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(isChose){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | isChose = true; | 
|---|
|  |  |  | if(isOpening){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | isOpening = false; | 
|---|
|  |  |  | //开启成功 | 
|---|
|  |  |  | status=1; | 
|---|
|  |  |  | if("0".equals(flag)) { | 
|---|
|  |  |  | if(flag==0) { | 
|---|
|  |  |  | getDB().imgTip2.setImageResource(R.mipmap.ic_notclose_key); | 
|---|
|  |  |  | getDB().tvTip22.setText("请领取钥匙后关闭柜门"); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | 
|---|
|  |  |  | getDB().tvTip21.setText(getTipText(selectBean.getCode(),"柜门打开成功"), TextView.BufferType.SPANNABLE); | 
|---|
|  |  |  | getDB().clTip1.setVisibility(View.GONE); | 
|---|
|  |  |  | getDB().clTip2.setVisibility(View.VISIBLE); | 
|---|
|  |  |  | EventBus.getDefault().post(new GetKeyStatusEvent()); | 
|---|
|  |  |  | ysDownCount = 8; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 7: | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | protected void onDestroy() { | 
|---|
|  |  |  | super.onDestroy(); | 
|---|
|  |  |  | handler.removeCallbacksAndMessages(null); | 
|---|
|  |  |  | handler = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String openTime = ""; | 
|---|
|  |  |  | 
|---|
|  |  |  | if(selectBean!=null){ | 
|---|
|  |  |  | String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) | 
|---|
|  |  |  | +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); | 
|---|
|  |  |  | //开门成功,移除开门 | 
|---|
|  |  |  | if(handler.hasMessages(1)){ | 
|---|
|  |  |  | handler.removeMessages(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(key.equals(e.getKey())) { | 
|---|
|  |  |  | if (e.getIsOpen()==1) { | 
|---|
|  |  |  | //开门成功 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Long keyTime; | 
|---|
|  |  |  | private boolean isOpened = false; | 
|---|
|  |  |  | @Subscribe(threadMode= ThreadMode.MAIN) | 
|---|
|  |  |  | public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ | 
|---|
|  |  |  | if(!isFinishing()){ | 
|---|
|  |  |  | //关门成功,移除开门 | 
|---|
|  |  |  | if(handler.hasMessages(1)){ | 
|---|
|  |  |  | handler.removeMessages(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //获取卡号 | 
|---|
|  |  |  | EventBus.getDefault().post(new GetKeyStatusEvent()); | 
|---|
|  |  |  | if(selectBean!=null){ | 
|---|
|  |  |  | keyTime = new Date().getTime()+500; | 
|---|
|  |  |  | if(handler.hasMessages(0)){ | 
|---|
|  |  |  | handler.removeMessages(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | handler.sendEmptyMessageDelayed(0,1200); | 
|---|
|  |  |  | /*if(selectBean!=null){ | 
|---|
|  |  |  | String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) | 
|---|
|  |  |  | +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); | 
|---|
|  |  |  | if(key.equals(e.getKey())) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Subscribe(threadMode= ThreadMode.MAIN) | 
|---|
|  |  |  | public void OpenErrEvent(OpenErrEvent e){ | 
|---|
|  |  |  | //开门失败 | 
|---|
|  |  |  | if(!isFinishing()){ | 
|---|
|  |  |  | //开门 | 
|---|
|  |  |  | if(handler.hasMessages(1)){ | 
|---|
|  |  |  | handler.removeMessages(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode())); | 
|---|
|  |  |  | handler.sendEmptyMessageDelayed(1,1000); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public void KeyResultEvent(KeyResultEvent e){ | 
|---|
|  |  |  | if(!isFinishing()){ | 
|---|
|  |  |  | if(selectBean!=null){ | 
|---|
|  |  |  | //校验时间 | 
|---|
|  |  |  | if(keyTime==null){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(keyTime!=null&&keyTime>System.currentTimeMillis()){ | 
|---|
|  |  |  | //校验返回时间<命令时间 | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(handler.hasMessages(0)){ | 
|---|
|  |  |  | handler.removeMessages(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) | 
|---|
|  |  |  | +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); | 
|---|
|  |  |  | if(flag==0) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Handler handler = new Handler(){ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void handleMessage(@NonNull Message msg) { | 
|---|
|  |  |  | switch (msg.what){ | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | //重新发送钥匙查询 | 
|---|
|  |  |  | //发送查询钥匙号 | 
|---|
|  |  |  | EventBus.getDefault().post(new GetKeyStatusEvent()); | 
|---|
|  |  |  | handler.sendEmptyMessageDelayed(0,1200); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode())); | 
|---|
|  |  |  | handler.sendEmptyMessageDelayed(1,1000); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|