doum
昨天 22881a4d6409c7d17867e1d40bf81a13578208df
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
@@ -25,6 +25,7 @@
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;
@@ -58,6 +59,7 @@
    private int status;
    private int ysDownCount = 10;
    private boolean isChose;
    @Override
    public int getLayoutId() {
@@ -73,6 +75,9 @@
        adapter = new CabinetRcvAdapter(this, R.layout.cabinet_rcv_item, new CabinetRcvAdapter.OnItemClick() {
            @Override
            public void onItemClick(KeyCabinetBean item) {
                if(isChose){
                    return;
                }
                selectBean = item;
            }
        });
@@ -151,6 +156,10 @@
                    Toast.makeText(mContext, "请选择柜门", Toast.LENGTH_SHORT).show();
                    return;
                }
                if(isChose){
                    return;
                }
                isChose = true;
                if(isOpening){
                    return;
                }
@@ -160,7 +169,7 @@
                downTime = 60;
                break;
            case 2:
                getDB().clTip1.setVisibility(View.GONE);
                //getDB().clTip1.setVisibility(View.GONE);
                if(status==0) {
                    //重新开门
                    openTime = StringUtil.DateToStr(new Date());
@@ -183,7 +192,7 @@
                isOpening = false;
                //开启成功
                status=1;
                if("0".equals(flag)) {
                if(flag==0) {
                    getDB().imgTip2.setImageResource(R.mipmap.ic_notclose_key);
                    getDB().tvTip22.setText("请领取钥匙后关闭柜门");
                }else {
@@ -193,7 +202,6 @@
                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:
@@ -291,6 +299,8 @@
    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacksAndMessages(null);
        handler = null;
    }
    private String openTime = "";
@@ -300,6 +310,10 @@
            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) {
                        //开门成功
@@ -307,8 +321,7 @@
                            return;
                        }
                        isOpened = true;
                        Toast.makeText(mContext, "操作4", Toast.LENGTH_LONG).show();
                        doRegister(4, null);
                        getVM().doAction(4);
                    } else {
                        //失败
                        //如果是钥匙不对继续开门
@@ -321,25 +334,35 @@
                            }
                            if (!gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                //钥匙不匹配
                                doRegister(10,null);
                                getVM().doAction(10,null);
                                EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                return;
                            }
                        }
                        doRegister(3, null);
                        getVM().doAction(3);
                    }
                }
            }
        }
    }
    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())) {
@@ -361,18 +384,17 @@
                                    if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                        //领取失败
                                        isOpened = false;
                                        doRegister(6, null);
                                        getVM().doAction(6);
                                        getVM().closeGrid(gridDo);
                                    }else {
                                        //钥匙不匹配
                                        //Toast.makeText(mContext, "操作10", Toast.LENGTH_LONG).show();
                                        doRegister(10,null);
                                        getVM().doAction(10,null);
                                        EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                    }
                                } else {
                                    //钥匙拿走了
                                    isOpened = false;
                                    doRegister(5, null);
                                    getVM().doAction(5);
                                    getVM().closeGrid(gridDo);
                                }
                            }else {
@@ -398,17 +420,17 @@
                                    if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                        //相同归还成功
                                        isOpened = false;
                                        doRegister(8, null);
                                        getVM().doAction(8);
                                        getVM().closeGrid(gridDo);
                                    }else {
                                        //钥匙不匹配
                                        doRegister(10,null);
                                        getVM().doAction(10,null);
                                        EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                    }
                                } else {
                                    //钥匙未归还
                                    isOpened = false;
                                    doRegister(9, null);
                                    getVM().doAction(9);
                                    getVM().closeGrid(gridDo);
                                }
                            }else {
@@ -419,7 +441,20 @@
                        }
                    }
                }
            }*/
            }
    }
    @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);
        }
    }
@@ -427,6 +462,17 @@
    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) {
@@ -440,25 +486,24 @@
                                if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                    //领取失败
                                    isOpened = false;
                                    doRegister(6, null);
                                    getVM().doAction(6);
                                    getVM().closeGrid(gridDo);
                                }else {
                                    //钥匙不匹配
                                    //Toast.makeText(mContext, "操作10", Toast.LENGTH_LONG).show();
                                    doRegister(10,null);
                                    getVM().doAction(10);
                                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                }
                            } else {
                                //钥匙拿走了
                                isOpened = false;
                                doRegister(5, null);
                                getVM().doAction(5);
                                getVM().closeGrid(gridDo);
                            }
                        }else {
                            //没关门
                            if(TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                //空了
                                doRegister(7,null);
                                getVM().doAction(7);
                            }
                        }
                    }else {
@@ -474,24 +519,24 @@
                                if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                    //相同归还成功
                                    isOpened = false;
                                    doRegister(8, null);
                                    getVM().doAction(8);
                                    getVM().closeGrid(gridDo);
                                }else {
                                    //钥匙不匹配
                                    doRegister(10,null);
                                    getVM().doAction(10);
                                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                }
                            } else {
                                //钥匙未归还
                                isOpened = false;
                                doRegister(9, null);
                                getVM().doAction(9);
                                getVM().closeGrid(gridDo);
                            }
                        }else {
                            //没关门
                            if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                //有钥匙了
                                doRegister(7,null);
                                getVM().doAction(7);
                            }
                        }
                    } else {
@@ -501,4 +546,24 @@
            }
        }
    }
    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;
            }
        }
    };
}