keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/CheckGridStatusEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ package com.doumee.keyCabinet.event; //æ¥è¯¢ææé¨ç¶æ public class CheckGridStatusEvent { } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/AlcoholTestAlarmParam.java
@@ -3,6 +3,7 @@ public class AlcoholTestAlarmParam { //ä¼åid private Integer memberId; private String alcoholNum; public Integer getMemberId() { return memberId; @@ -11,4 +12,12 @@ public void setMemberId(Integer memberId) { this.memberId = memberId; } public String getAlcoholNum() { return alcoholNum; } public void setAlcoholNum(String alcoholNum) { this.alcoholNum = alcoholNum; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
@@ -9,9 +9,11 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Editable; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.TextWatcher; import android.text.style.TextAppearanceSpan; import android.view.View; import android.view.ViewTreeObserver; @@ -35,6 +37,7 @@ import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.doumee.lib_coremodel.util.SpUtil; import com.doumee.lib_coremodel.util.StringUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.callback.CameraDataCallback; import com.example.datalibrary.callback.FaceDetectCallBack; import com.example.datalibrary.gatecamera.CameraPreviewManager; @@ -137,6 +140,8 @@ break; case 1: //å-管çåå·å¡éªè¯ getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); getDB().tvTitle.setText("管çå身份éªè¯"); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); @@ -162,6 +167,8 @@ break; case 3: //å-叿ºå·å¡éªè¯ getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().clFace.setVisibility(View.GONE); getDB().clSjXuan.setVisibility(View.GONE); @@ -183,14 +190,15 @@ //å¼å§æ£æµ EventBus.getDefault().post(new JiujinBeginEvent()); }else { ToastUtils.toast(this,"æªè·åå°é ç²¾æµåº¦æ¥è¦å¼"); ToastView.show(this,"æªè·åå°é ç²¾æµåº¦æ¥è¦å¼"); statusFsm(6); } break; case 6: //å-叿ºé ç²¾æ£æµå¤±è´¥ Toast.makeText(mContext, "叿ºé ç²¾æ£æµå¤±è´¥", Toast.LENGTH_SHORT).show(); //Toast.makeText(mContext, "叿ºé ç²¾æ£æµå¤±è´¥", Toast.LENGTH_SHORT).show(); getDB().clJiu.setVisibility(View.GONE); getDB().tvJg1.setText("é ç²¾æ£æµå¼å¸¸ï¼è¯·éæ°æ£æµ"); getDB().clTip1.setVisibility(View.VISIBLE); break; case 7: @@ -202,10 +210,18 @@ break; case 8: //è¿-叿ºå·å¡éªè¯ getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); setFaceModel(2); break; case 9: //å-叿ºé ç²¾æ£æµå¤±è´¥ getDB().clJiu.setVisibility(View.GONE); getDB().tvJg1.setText("é ç²¾æ£æµè¶ æ "); getDB().clTip1.setVisibility(View.VISIBLE); break; default: break; @@ -266,6 +282,21 @@ case 5: statusFsm(4); break; case 6: //管çåic塿å statusFsm(5); break; case 7: //叿ºic塿å if(flag==0) { //å statusFsm(4); }else { //è¿ startActivity(KeyCabinetActivity.class); finish(); } break; default: break; } @@ -296,12 +327,39 @@ //icå¡è¯»å getDB().etEwm.requestFocus(); getDB().etEwm.setShowSoftInputOnFocus(false); getDB().etEwm.setFocusable(true); getDB().etEwm.setShowSoftInputOnFocus(true); hideSoftKeyboard(getDB().etEwm); getDB().etEwm.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { hideSoftKeyboard(getDB().etEwm); } }); getDB().etEwm.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { String m = s.toString(); if(TextUtils.isEmpty(m)){ return; } if(status!=1&&status!=3&&status!=8){ return; } if(handler.hasMessages(5)){ handler.removeMessages(5); } handler.sendEmptyMessageDelayed(5,500); } }); } @@ -428,7 +486,8 @@ //isCheckFace = false; break; case 3: Toast.makeText(mContext, "é ç²¾æ£æ¥è¿å", Toast.LENGTH_SHORT).show(); getDB().clJiujinProgress.setVisibility(View.GONE); //Toast.makeText(mContext, "é ç²¾æ£æ¥è¿å", Toast.LENGTH_SHORT).show(); if(new BigDecimal(MApplication.getConfigBean().getCabinetConfigDataVO().getConcentration()) .compareTo(resultEvent.getConcentration())>=0){ //é ç²¾éè¿ @@ -436,14 +495,26 @@ handler.sendEmptyMessageDelayed(4,1000); }else { //é ç²¾ä¸éè¿ getVM().alcoholTestAlarm(""); Toast.makeText(mContext, "é ç²¾æ£æµä¸éè¿", Toast.LENGTH_SHORT).show(); statusFsm(6); getVM().alcoholTestAlarm(resultEvent.getConcentration().toString()); //Toast.makeText(mContext, "é ç²¾æ£æµè¶ æ ", Toast.LENGTH_SHORT).show(); statusFsm(9); } break; case 4: startActivity(KeyCabinetActivity.class); finish(); break; case 5: String m = getDB().etEwm.getText().toString(); int index = m.indexOf("\r"); if(index!=-1){ m = m.substring(0,index); } if(!TextUtils.isEmpty(m)){ getVM().getMemberIdByCode(m,status==1?"0":"1"); } getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); break; default: break; @@ -596,8 +667,10 @@ if(!isFinishing()){ //Toast.makeText(mContext, "é ç²¾æ£æµè¿åï¼"+e.isOk(), Toast.LENGTH_SHORT).show(); if(!e.isOk()){ getDB().clJiujinProgress.setVisibility(View.GONE); statusFsm(6); }else { getDB().clJiujinProgress.setVisibility(View.VISIBLE); if(resultEvent==null){ resultEvent = e; }else if(resultEvent.getConcentration().compareTo(e.getConcentration())<0){ @@ -611,4 +684,5 @@ } } } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceVM.java
@@ -9,6 +9,7 @@ import com.doumee.keyCabinet.bean.CabinetFaceBean; import com.doumee.keyCabinet.bean.FaceUserBean; import com.doumee.keyCabinet.bean.KeyCabinetBean; import com.doumee.keyCabinet.event.HttpEvent; import com.doumee.keyCabinet.http.Apis; import com.doumee.keyCabinet.http.param.AlcoholTestAlarmParam; import com.doumee.keyCabinet.http.param.BaseResponse; @@ -21,9 +22,14 @@ import com.doumee.lib_coremodel.base.BaseModel; import com.doumee.lib_coremodel.base.DataViewModel; import com.doumee.lib_coremodel.http.rxJava.SimpleObserver; import com.doumee.lib_coremodel.http.utils.GsonTools; import com.doumee.lib_coremodel.http.utils.RxUtils; import com.doumee.lib_coremodel.util.StringUtil; import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import java.util.Date; import java.util.List; public class FaceVM extends DataViewModel { @@ -43,26 +49,28 @@ * @param type //0ï¼ç®¡çåï¼1ï¼å¸æº */ public void getMemberIdByCode(String code,String type){ showLoading(true); //showLoading(true); getRetrofitService(Apis.class).getMemberIdByCode(code) .compose(RxUtils.schedulersTransformer()) .subscribe(new SimpleObserver<BaseResponse<Integer>>(rxJavaGcManager) { @Override public void onNext(@NonNull BaseResponse<Integer> response) { EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+ "è·åICå¡ç¨æ·ä¸»é® - 叿º:"+code+", è¿åï¼"+ GsonTools.changeGsonToJson(response))); if(200==response.getCode()){ //æ¥è¯¢æ°æ® if(response.getData()!=null){ if("0".equals(type)){ MApplication.getLoginBean().setAutoMemberId(response.getData()); //doAction(); doAction(6); }else { MApplication.getLoginBean().setMemberId(response.getData()); MApplication.getLoginBean().setAuthType(1); //doAction(); doAction(7); } } }else { toast(response.getMessage()); //toast(response.getMessage()); } } @@ -73,7 +81,7 @@ @Override public void onComplete() { hideLoading(); //hideLoading(); } }); } @@ -85,6 +93,7 @@ public void alcoholTestAlarm(String data){ AlcoholTestAlarmParam param = new AlcoholTestAlarmParam(); param.setMemberId(MApplication.getLoginBean().getMemberId()); param.setAlcoholNum(data); showLoading(true); getRetrofitService(Apis.class).alcoholTestAlarm(ParamsUtil.encodeRequestBody(param)) .compose(RxUtils.schedulersTransformer()) keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ChangeUrlActivity.java
@@ -3,11 +3,25 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.R; import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.databinding.ChangeUrlActivityBinding; import com.doumee.keyCabinet.http.Apis; import com.doumee.keyCabinet.ui.main.MainActivity; import com.doumee.keyCabinet.utils.LMobileInfo; import com.doumee.keyCabinet.utils.i485.SportUtils; import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.doumee.lib_coremodel.util.SpUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.utils.ToastUtils; import dagger.hilt.android.AndroidEntryPoint; @@ -24,11 +38,63 @@ isAddCountTimer = false; normalConfig(); getDB().setModel(getVM()); getDB().etNo.setText(LMobileInfo.getDeviceUniqueId()); getDB().etNo.setEnabled(false); } @Override public void initData(@Nullable Bundle savedInstanceState) { getDB().etUrl.setText(SpUtil.getString("base_url", Apis.HTTP)); getDB().etTime.setText(SpUtil.getInt("loop_time",30)+""); } @Override protected void doRegister(int type, ActionEventData data) { switch (type){ case 2: String url = getDB().etUrl.getText().toString(); if(TextUtils.isEmpty(url)){ ToastView.show(MApplication.mContext,"æ¥å£å°åä¸è½ä¸ºç©º"); return; } if(!url.startsWith("http://")||!url.startsWith("https://")||!url.endsWith("/")){ ToastView.show(MApplication.mContext,"æ¥å£å°åé误"); return; } if(TextUtils.isEmpty(getDB().etTime.getText().toString())){ ToastView.show(MApplication.mContext,"æ¥å£è°ç¨é´éä¸è½ä¸ºç©º"); return; } int time = Integer.parseInt(getDB().etTime.getText().toString()); if(time<=0){ ToastView.show(MApplication.mContext,"æ¥å£è°ç¨é´éé误"); return; } String oldUrl = SpUtil.getString("base_url", Apis.HTTP); SpUtil.saveString("base_url",url); SpUtil.saveInt("loop_time",time); ToastView.show(MApplication.mContext,"ä¿åæå"); if(!oldUrl.equals(url)){ //æ¥å£ä¸åï¼éæ°å¯å¨ restartApp(); } break; } } private void restartApp(){ // å建ä¸ä¸ªæ°çå¯å¨æå¾ Intent intent = new Intent(mContext, MainActivity.class); // 设置FLAG_ACTIVITY_CLEAR_TASKæ å¿ä½ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // 使ç¨PendingIntentå è£ å¯å¨æå¾ PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_ONE_SHOT); // è·åAlarmManagerå®ä¾ AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); // å¨500毫ç§å触åéå¯æä½ alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 10, pendingIntent); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ChangeUrlVM.java
@@ -13,4 +13,9 @@ public ChangeUrlVM(@NonNull Application application, BaseModel model) { super(application, model); } @Override protected void clickByTypeCommand(int type) { doAction(type); } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
@@ -26,12 +26,15 @@ import com.doumee.keyCabinet.event.KeyResultEvent; import com.doumee.keyCabinet.event.GetKeyStatusEvent; import com.doumee.keyCabinet.event.OpenGridEvent; import com.doumee.keyCabinet.event.OpenGridListEvent; import com.doumee.keyCabinet.event.OpenGridOneResultEvent; import com.doumee.keyCabinet.ui.keyCabinet.adapter.CabinetRcvAdapter; import com.doumee.keyCabinet.utils.i485.SportUtils; import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.doumee.lib_coremodel.util.RecyclerHelp; import com.doumee.lib_coremodel.util.StringUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.utils.ToastUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -106,7 +109,6 @@ for(CabinetGridDo d:gridDos){ oldMap.put(d.getGridKey(),d); } List<CabinetGridDo> addList = new ArrayList<>(); List<CabinetGridDo> updateList = new ArrayList<>(); for(KeyCabinetBean bean:beans){ String key = SportUtils.intToHex(Integer.parseInt(bean.getBoardCode()))+SportUtils.intToHex(Integer.parseInt(bean.getChannelCode())); @@ -122,23 +124,7 @@ gridDo.setKeyStatus(bean.getKeyStatus()); gridDo.setWorkingStatus(bean.getWorkingStatus()); updateList.add(gridDo); }else { //æ°å¢ CabinetGridDo gridDo = new CabinetGridDo(); gridDo.setGridId(bean.getId()); gridDo.setCabinetName(bean.getCode()); gridDo.setGridKey(key); gridDo.setKeyCode(bean.getKeyCode()); gridDo.setBindStatus(bean.getBindStatus()); gridDo.setGridStatus(bean.getStatus()); gridDo.setKeyStatus(bean.getKeyStatus()); gridDo.setWorkingStatus(bean.getWorkingStatus()); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); addList.add(gridDo); } } if(addList.size()>0){ DaoManager.getCabinetGridDao().insert(addList); } if(updateList.size()>0){ CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; @@ -302,34 +288,6 @@ } } @Subscribe(threadMode= ThreadMode.MAIN) public void KeyResultEvent(KeyResultEvent e){ if(!isFinishing()){ //é¥ååæ´äº if(selectBean!=null) { String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) + SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); //æ¥è¯¢ææ ¼ CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key); if (gridDo != null) { if(flag==0){ //å if(TextUtils.isEmpty(gridDo.getCurKeyCode())){ //ç©ºäº doRegister(7,null); } }else { //è¿ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ //æé¥åäº doRegister(7,null); } } } } } } @Override protected void onDestroy() { super.onDestroy(); @@ -379,6 +337,8 @@ @Subscribe(threadMode= ThreadMode.MAIN) public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ if(!isFinishing()){ //è·åå¡å· EventBus.getDefault().post(new GetKeyStatusEvent()); if(selectBean!=null){ String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); @@ -405,7 +365,7 @@ getVM().closeGrid(gridDo); }else { //é¥åä¸å¹é Toast.makeText(mContext, "æä½10", Toast.LENGTH_LONG).show(); //Toast.makeText(mContext, "æä½10", Toast.LENGTH_LONG).show(); doRegister(10,null); EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode())); } @@ -416,7 +376,7 @@ getVM().closeGrid(gridDo); } }else { Toast.makeText(mContext, "æªæ¥è¯¢å°", Toast.LENGTH_LONG).show(); ToastView.show(MApplication.mContext, "æªæ¥è¯¢å°è§æ ¼ä¿¡æ¯"); } } else { //å ³é¨å¤±è´¥ @@ -452,7 +412,7 @@ getVM().closeGrid(gridDo); } }else { Toast.makeText(mContext, "æªæ¥è¯¢å°", Toast.LENGTH_LONG).show(); ToastView.show(MApplication.mContext, "æªæ¥è¯¢å°è§æ ¼ä¿¡æ¯"); } } else { //å ³é¨å¤±è´¥ @@ -462,4 +422,83 @@ } } } @Subscribe(threadMode= ThreadMode.MAIN) public void KeyResultEvent(KeyResultEvent e){ if(!isFinishing()){ if(selectBean!=null){ String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode())) +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode())); if(flag==0) { //é¢å //æ¥è¯¢é¥åå· CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key); if (gridDo != null) { if (gridDo.getIsOpen() == 0) { //å ³é¨æå if (!TextUtils.isEmpty(gridDo.getCurKeyCode())) { if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) { //é¢å失败 isOpened = false; doRegister(6, null); getVM().closeGrid(gridDo); }else { //é¥åä¸å¹é //Toast.makeText(mContext, "æä½10", Toast.LENGTH_LONG).show(); doRegister(10,null); EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode())); } } else { //é¥åæ¿èµ°äº isOpened = false; doRegister(5, null); getVM().closeGrid(gridDo); } }else { //æ²¡å ³é¨ if(TextUtils.isEmpty(gridDo.getCurKeyCode())){ //ç©ºäº doRegister(7,null); } } }else { ToastView.show(MApplication.mContext, "æªæ¥è¯¢å°è§æ ¼ä¿¡æ¯"); } }else { //å½è¿ CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key); if (gridDo != null) { if (gridDo.getIsOpen() == 0) { //å ³é¨æå if (!TextUtils.isEmpty(gridDo.getCurKeyCode())) { if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) { //ç¸åå½è¿æå isOpened = false; doRegister(8, null); getVM().closeGrid(gridDo); }else { //é¥åä¸å¹é doRegister(10,null); EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode())); } } else { //é¥åæªå½è¿ isOpened = false; doRegister(9, null); getVM().closeGrid(gridDo); } }else { //æ²¡å ³é¨ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ //æé¥åäº doRegister(7,null); } } } else { ToastView.show(MApplication.mContext, "æªæ¥è¯¢å°è§æ ¼ä¿¡æ¯"); } } } } } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
@@ -20,18 +20,23 @@ import com.doumee.keyCabinet.dao.CabinetGridDo; import com.doumee.keyCabinet.dao.DaoManager; import com.doumee.keyCabinet.databinding.ManageCabinetActivityBinding; import com.doumee.keyCabinet.event.CheckGridStatusEvent; import com.doumee.keyCabinet.event.CloseGridOneResultEvent; import com.doumee.keyCabinet.event.GetKeyStatusEvent; import com.doumee.keyCabinet.event.HttpEvent; import com.doumee.keyCabinet.event.KeyResultEvent; import com.doumee.keyCabinet.event.ManageOpenGridResultEvent; import com.doumee.keyCabinet.event.OpenAllGridEvent; import com.doumee.keyCabinet.event.OpenGridEvent; import com.doumee.keyCabinet.event.OpenGridListEvent; import com.doumee.keyCabinet.event.OpenGridOneResultEvent; import com.doumee.keyCabinet.event.TimeClockEvent; import com.doumee.keyCabinet.ui.keyCabinet.adapter.ManageCabinetRcvAdapter; import com.doumee.keyCabinet.utils.i485.SportUtils; import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.doumee.lib_coremodel.util.RecyclerHelp; import com.doumee.lib_coremodel.util.StringUtil; import com.example.datalibrary.db.DBManager; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -105,6 +110,7 @@ for(ManageKeyCabinetBean d:datas){ if(d.getIsSelected().get()){ isCanPL = true; isCanBJ = true; if(keyStatus==-1){ keyStatus = getGridStatus(d); }else { @@ -120,8 +126,7 @@ }else { getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile); } if(keyStatus==2||keyStatus==4){ isCanBJ = true; if(isCanBJ){ getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok); }else { getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile); @@ -142,7 +147,6 @@ for(CabinetGridDo d:gridDos){ oldMap.put(d.getGridKey(),d); } List<CabinetGridDo> addList = new ArrayList<>(); List<CabinetGridDo> updateList = new ArrayList<>(); for(ManageKeyCabinetBean bean:beans){ String key = SportUtils.intToHex(Integer.parseInt(bean.getBoardCode()))+SportUtils.intToHex(Integer.parseInt(bean.getChannelCode())); @@ -158,29 +162,19 @@ gridDo.setKeyStatus(bean.getKeyStatus()); gridDo.setWorkingStatus(bean.getWorkingStatus()); updateList.add(gridDo); }else { //æ°å¢ CabinetGridDo gridDo = new CabinetGridDo(); gridDo.setGridId(bean.getId()); gridDo.setCabinetName(bean.getCode()); gridDo.setGridKey(key); gridDo.setKeyCode(bean.getKeyCode()); gridDo.setBindStatus(bean.getBindStatus()); gridDo.setGridStatus(bean.getStatus()); gridDo.setKeyStatus(bean.getKeyStatus()); gridDo.setWorkingStatus(bean.getWorkingStatus()); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); addList.add(gridDo); } } if(addList.size()>0){ DaoManager.getCabinetGridDao().insert(addList); } if(updateList.size()>0){ CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; for(int i=0;i<updateList.size();i++){ upList[i] = updateList.get(i); } //todo 廿 CabinetGridDo gridDo = oldMap.get("0101"); if(gridDo!=null){ EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>æ´æ°æ°æ®å½åé¥å2ï¼"+gridDo.getCurKeyCode())); } DaoManager.getCabinetGridDao().update(upList); } } @@ -240,6 +234,7 @@ SportUtils.intToHex(Integer.parseInt(bean.getChannelCode())); waitOpenMap.put(key,bean.getCode()); } waitResultCount = 2; EventBus.getDefault().post(new OpenAllGridEvent()); }break; case 10: { @@ -255,11 +250,12 @@ keys.add(key); } } waitResultCount = keys.size(); EventBus.getDefault().post(new OpenGridListEvent(keys)); }break; case 4: { //æ è®° if(!isCanPL){ if(!isCanBJ){ return; } bjIds.clear(); @@ -285,7 +281,12 @@ getDB().tvBjgz.setText("æ 记为æ é"); getDB().tvBjgz.setTextColor(0xffFF3600); getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_1_bg); if(keyStatus==2) { //0æªç»å® 1å¨ä½ 2ååº 3ç»´ä¿®ä¿å » getDB().tvBy.setVisibility(View.VISIBLE); }else { getDB().tvBy.setVisibility(View.GONE); } } getDB().clCz.setVisibility(View.VISIBLE); }break; @@ -336,7 +337,6 @@ if(tipDownCount==0){ isShowTip = false; getDB().clTip.setVisibility(View.GONE); finish(); }else { tipDownCount--; getDB().tvDjs.setText(tipDownCount+"s"); @@ -404,10 +404,10 @@ return styledText; } private void showKeyErrTip(CabinetGridDo gridDo){ private void showKeyErrTip(String name){ getDB().imgClKm1.setImageResource(R.mipmap.ic_jjfail); getDB().tvClKm1.setText("è¯å«å¤±è´¥"); getDB().tvClKm2.setText(getTipText2("é¥åæ",gridDo.getCabinetName(),"è¯å«å¤±è´¥"), TextView.BufferType.SPANNABLE); getDB().tvClKm2.setText(getTipText2("é¥åæ",name,"è¯å«å¤±è´¥"), TextView.BufferType.SPANNABLE); getDB().tvClKmClose.setText("éæ°åæ¾"); getDB().tvClKmClose.setTextColor(0xffffffff); getDB().tvClKmClose.setBackgroundResource(R.drawable.shape_mb_bt_ok); @@ -425,6 +425,7 @@ return super.onKeyDown(keyCode, event); } private int waitResultCount = 0; /** * å¼é¨è¿å * @param e @@ -432,6 +433,13 @@ @Subscribe(threadMode = ThreadMode.MAIN) public void ManageOpenGridResultEvent(ManageOpenGridResultEvent e){ if(!isFinishing()){ if(waitResultCount>0){ waitResultCount--; } if(waitResultCount>0){ return; } EventBus.getDefault().post(new CheckGridStatusEvent()); //æ ¡éªæ¯å¦å·²å ¨å¼ List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll(); List<String> msgList = new ArrayList<>(); @@ -518,6 +526,22 @@ } } private String sygKey; @Subscribe public void OpenGridOneResultEvent(OpenGridOneResultEvent e){ if(!isFinishing()){ if(e.getIsOpen()==0){ if(e.getKey().equals(sygKey)){ return; } sygKey = e.getKey(); //å¼é¨å¤±è´¥,éæ°å¼é¨ EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"", Integer.parseInt(e.getKey().substring(0,2), 16)+"")); } } } /** * å ³é¨ * @param e @@ -525,14 +549,19 @@ @Subscribe(threadMode= ThreadMode.MAIN) public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ if(!isFinishing()){ //è·åå¡å· EventBus.getDefault().post(new GetKeyStatusEvent()); if(isShowTip){ isShowTip = false; getDB().clTip.setVisibility(View.GONE); } //æ ¡éªå¡å· CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey()); if(gridDo!=null){ //æ ¡éªé¥åæ¯å¦å¹é if(gridDo.getGridKey()==null){ if(TextUtils.isEmpty(gridDo.getGridKey())){ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ //æªç»å®çåæ¾äºé¥å showKeyErrTip(gridDo); showKeyErrTip(gridDo.getCabinetName()+"-"+gridDo.getCurKeyCode()); //å¼é¨ EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"", Integer.parseInt(e.getKey().substring(0,2), 16)+"")); @@ -542,7 +571,8 @@ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())){ //é¥åä¸å¹é showKeyErrTip(gridDo); showKeyErrTip(gridDo.getCabinetName()+"-"+gridDo.getCurKeyCode()); EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¥åä¸å¹é ==>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); //å¼é¨ EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"", Integer.parseInt(e.getKey().substring(0,2), 16)+"")); @@ -550,8 +580,49 @@ } } } EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¨å ³éæå==>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); getVM().closeGrid(gridDo); } } } @Subscribe public void KeyResultEvent(KeyResultEvent e){ if(!isFinishing()){ //æ ¡éªå¡å·ä¸å¯¹çï¼ç´æ¥å¼¹åº List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll(); List<String> keys = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for(CabinetGridDo gridDo:gridDos){ if(TextUtils.isEmpty(gridDo.getGridKey())){ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())&&gridDo.getIsOpen()==0){ //æªç»å®çåæ¾äºé¥å keys.add(gridDo.getGridKey()); if(sb.length()>0){ sb.append("ã"); } sb.append(gridDo.getCabinetName()); } }else { if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())&&gridDo.getIsOpen()==0){ //é¥åä¸å¹é keys.add(gridDo.getGridKey()); if(sb.length()>0){ sb.append("ã"); } sb.append(gridDo.getCabinetName()); } } } } if(sb.length()>0){ showKeyErrTip(sb.toString()); } if(keys.size()>0){ //å¼é¨ EventBus.getDefault().post(new OpenGridListEvent(keys)); } } } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -49,6 +49,7 @@ import com.doumee.keyCabinet.databinding.MainActivityBinding; import com.doumee.keyCabinet.event.CLGridEvent; import com.doumee.keyCabinet.event.CLKeyEvent; import com.doumee.keyCabinet.event.CheckGridStatusEvent; import com.doumee.keyCabinet.event.CloseGridOneResultEvent; import com.doumee.keyCabinet.event.GetFacesEvent; import com.doumee.keyCabinet.event.GetKeyStatusEvent; @@ -76,6 +77,7 @@ import com.doumee.keyCabinet.ui.face.UserManagerActivity; import com.doumee.keyCabinet.ui.view.BannerViewImageHolder; import com.doumee.keyCabinet.utils.BraceletLogUtils; import com.doumee.keyCabinet.utils.CircularQueue; import com.doumee.keyCabinet.utils.CrashHandler; import com.doumee.keyCabinet.utils.LMobileInfo; import com.doumee.keyCabinet.utils.TimeUtils; @@ -99,11 +101,13 @@ import com.doumee.lib_coremodel.http.utils.GsonTools; import com.doumee.lib_coremodel.util.SpUtil; import com.doumee.lib_coremodel.util.StringUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.api.FaceApi; import com.example.datalibrary.listener.DBLoadListener; import com.example.datalibrary.listener.SdkInitListener; import com.example.datalibrary.model.ImportFeatureResult; import com.example.datalibrary.model.User; import com.example.datalibrary.utils.ToastUtils; import com.example.datalibrary.view.PreviewTexture; import com.yanzhenjie.permission.runtime.Permission; @@ -277,7 +281,6 @@ getDB().tvId.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(ManageLoginActivity.class); //æ´æ¹url if(lastDownTime2!=null){ if(System.currentTimeMillis()-lastDownTime2>1000){ @@ -469,7 +472,9 @@ }else { getDB().banner.stopTurning(); } unCloseGrid(); //æ£æ¥ææææ ¼é¨ãé¥åç¶æ checkKeyStatus(0); checkGridStatus(900); } private void unCloseGrid(){ @@ -951,10 +956,7 @@ } private void initRGBCheck(){ String index = SpUtil.getString("rbgCameraId"); if(!"1".equals(index)){ index = "0"; } String index = SpUtil.getString("rbgCameraId","0"); setRgbCameraId(Integer.parseInt(index)); /*if (isSetCameraId()){ setRgbCameraId(SingleBaseConfig.getBaseConfig().getRBGCameraId()); @@ -1078,9 +1080,11 @@ } private int tipDownCount = 10; private int loopDownCount = 30; private boolean isShowTip; @Subscribe public void TimeClockEvent(TimeClockEvent e){ if(!isFinishing()) { if(isShowTip){ if(tipDownCount==0){ isShowTip = false; @@ -1088,6 +1092,14 @@ }else { tipDownCount--; getDB().tvDjs.setText(tipDownCount+"s"); } } if(loopDownCount==0){ loopDownCount = SpUtil.getInt("loop_time",30); //宿¶æååºæ¬ä¿¡æ¯ getVM().devLogin(); }else { loopDownCount--; } } } @@ -1179,7 +1191,7 @@ !TextUtils.isEmpty(gridDo.getKeyCode())&& !gridDo.getCurKeyCode().equals(gridDo.getKeyCode())){ //é¥åä¸ä¸æ ·ï¼å¼é¨ Toast.makeText(mContext, "é¥ååæ¾ä½ç½®é误", Toast.LENGTH_SHORT).show(); ToastView.show(MApplication.mContext,gridDo.getCabinetName()+"é¥ååæ¾ä½ç½®é误"); EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"", Integer.parseInt(e.getKey().substring(0,2), 16)+"")); }else { @@ -1252,23 +1264,33 @@ });*/ String key = bh+tdh; CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key); if(gridDo==null){ //æ°å¢ gridDo = new CabinetGridDo(); gridDo.setIsOpen("00".equals(open)?1:0); gridDo.setGridKey(key); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); DaoManager.getCabinetGridDao().insert(gridDo); }else { if(gridDo!=null){ gridDo.setIsOpen("00".equals(open)?1:0); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); //todo 廿 EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>æ´æ°æ°æ®å½åé¥å3ï¼"+gridDo.getCurKeyCode())); DaoManager.getCabinetGridDao().update(gridDo); EventBus.getDefault().post(new ManageOpenGridResultEvent()); if(gridDo.getIsOpen()==0) { //å¼é¨å¤±è´¥ if (isShowing) { //é¦é¡µå¼é¨å¤±è´¥ï¼é¥åä¸å¯¹ if (!TextUtils.isEmpty(gridDo.getCurKeyCode()) && !TextUtils.isEmpty(gridDo.getKeyCode()) && !gridDo.getCurKeyCode().equals(gridDo.getKeyCode())) { //é¥åä¸ä¸æ ·ï¼å¼é¨ ToastView.show(MApplication.mContext, gridDo.getCabinetName() + "é¥ååæ¾ä½ç½®é误"); EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(gridDo.getGridKey().substring(2, 4), 16) + "", Integer.parseInt(gridDo.getGridKey().substring(0, 2), 16) + "")); } } }else { //å¼é¨æå } } //å¼é¨è¿å EventBus.getDefault().post(new OpenGridOneResultEvent(key,gridDo.getIsOpen())); if(!portHandler.hasMessages(1)){ EventBus.getDefault().post(new ManageOpenGridResultEvent()); } EventBus.getDefault().post(new OpenGridOneResultEvent(key,"00".equals(open)?1:0)); }else if(data.length()==16){ //æ¹é //8A 02 00 00 00 00 11 99 @@ -1281,12 +1303,7 @@ for(CabinetGridDo d:gridDos){ oldMap.put(d.getGridKey(),d); } List<CabinetGridDo> addList = new ArrayList<>(); List<CabinetGridDo> updateList = new ArrayList<>(); String finalDm = dm; /*runOnUiThread(() -> { getVM().addInfo("æ¹éæ¥è¯¢è¿åï¼" +bh+","+ finalDm+",æ»æ°æ®ï¼"+oldMap.size()); });*/ try { for(int i=1;i<=dm.length();i++){ String key = bh+SportUtils.intToHex(i); @@ -1295,22 +1312,19 @@ gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); updateList.add(gridDo); }/*else { getVM().addInfo("æ°å¢keyï¼" +key); CabinetGridDo gridDo = new CabinetGridDo(); gridDo.setGridKey(key); gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); addList.add(gridDo); }*/ } } runOnUiThread(() -> { getVM().addInfo("æ¹éå¼é¨æ´æ°åºæ°æ®:çå·ï¼" +bh+","+ addList.size()+","+updateList.size()); getVM().addInfo("æ¹éå¼é¨æ´æ°åºæ°æ®:çå·ï¼" +bh+","+updateList.size()); }); getVM().updateGrids(updateList); if(!portHandler.hasMessages(1)){ EventBus.getDefault().post(new ManageOpenGridResultEvent()); //todo 廿 CabinetGridDo gridDo = oldMap.get("0101"); if(gridDo!=null) { EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>æ´æ°æ°æ®å½åé¥å6ï¼" + gridDo.getCurKeyCode())); } getVM().updateGrids(updateList); EventBus.getDefault().post(new ManageOpenGridResultEvent()); }catch (Exception exception){ runOnUiThread(() -> { getVM().addInfo("æ¹éå¼é¨æ¥éï¼" +exception.getMessage()); @@ -1324,20 +1338,16 @@ String open = data.substring(6,8); String key = bh+tdh; CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key); if(gridDo==null){ //æ°å¢ gridDo = new CabinetGridDo(); gridDo.setIsOpen("00".equals(open)?1:0); gridDo.setGridKey(key); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); DaoManager.getCabinetGridDao().insert(gridDo); }else { if(gridDo!=null){ gridDo.setIsOpen("00".equals(open)?1:0); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); //todo 廿 EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>æ´æ°æ°æ®å½åé¥å3ï¼"+gridDo.getCurKeyCode())); DaoManager.getCabinetGridDao().update(gridDo); } //å ³é¨è¿å EventBus.getDefault().post(new CloseGridOneResultEvent(key,gridDo.getIsOpen())); EventBus.getDefault().post(new CloseGridOneResultEvent(key,"00".equals(open)?1:0)); if(isShowing&&isShowTip){ //ä¿®æ¹æ¾ç¤ºæé doRegister(5,null); @@ -1383,7 +1393,17 @@ runOnUiThread(() -> { getVM().addInfo("æ´æ°åºæ°æ®:çå·ï¼" +bh+","+ addList.size()+","+updateList.size()); }); //todo 廿 CabinetGridDo gridDo = oldMap.get("0101"); if(gridDo!=null){ EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+ "=================>æ´æ°æ°æ®å½åé¥å5ï¼"+gridDo.getCurKeyCode())); } getVM().updateGrids(updateList); if(isShowing){ unCloseGrid(); } }catch (Exception exception){ runOnUiThread(() -> { getVM().addInfo("æ¥éï¼" +exception.getMessage()); @@ -1440,7 +1460,15 @@ String data2 = keyPreviousData+data; runOnUiThread(() -> { getVM().addInfo("è·åå°é¥åæ°æ®:" + data2); if(data2.contains("CC01")&&data2.contains("CC02")){ String[] sp = data2.split("CC02"); if(sp.length==2){ jxKey(sp[0]); jxKey("CC02"+sp[1]); } }else { jxKey(data2); } }); keyPreviousData = null; } @@ -1483,11 +1511,22 @@ }else { gridDo.setCurKeyCode(""); } if("0101".equals(key)) { getVM().addInfo(key+" , "+isHaveKey+" "+keyCode); getVM().addInfo(key + "设置é¥åï¼" + gridDo.getCurKeyCode()); } gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); updateList.add(gridDo); } } } //todo 廿 CabinetGridDo gridDo = oldMap.get("0101"); if(gridDo!=null) { EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+ "=================>æ´æ°æ°æ®å½åé¥å7ï¼" + gridDo.getCurKeyCode())); } getVM().updateGrids(updateList); EventBus.getDefault().post(new KeyResultEvent()); } @@ -1513,11 +1552,11 @@ } try { runOnUiThread(() -> { getVM().addInfo("è·åå°é ç²¾æ£æµæ°æ®:"+StringUtil.DateToStrSS(new Date())+" " + new String(bytes)); //getVM().addInfo("è·åå°é ç²¾æ£æµæ°æ®:"+StringUtil.DateToStrSS(new Date())+" " + new String(bytes)); }); String data = new String(bytes); runOnUiThread(() -> { getVM().addInfo("è·åå°é ç²¾æ£æµæ¯å¦æ£æµå¤±è´¥:" + (data.contains("blow fail"))); //getVM().addInfo("è·åå°é ç²¾æ£æµæ¯å¦æ£æµå¤±è´¥:" + (data.contains("blow fail"))); }); if(data.contains("blow fail")){ //æ£æµå¤±è´¥ @@ -1633,6 +1672,13 @@ } }; @Subscribe(threadMode = ThreadMode.MAIN) public void CheckGridStatusEvent(CheckGridStatusEvent e){ if(!isFinishing()){ checkGridStatus(0); } } //æ£æ¥ææé¨ç¶æ private void checkGridStatus(long time){ sendPortHandlerMsg(1,"80010033B2",time+100); @@ -1666,20 +1712,24 @@ portHandler.sendMessageDelayed(mc,time); } private boolean isInitPort; //åå§åä¸²å£ private void initPort(){ SpUtil.setString("port_grid","/dev/ttyS7"); SpUtil.setString("port_key","/dev/ttyS1"); SpUtil.setString("port_jiu","/dev/ttyS2"); gridPath = SpUtil.getString("port_grid"); getVM().addInfo("é¨ä¸²å£é¾æ¥ï¼"+gridPath); //getVM().addInfo("é¨ä¸²å£é¾æ¥ï¼"+gridPath); keyPath = SpUtil.getString("port_key"); getVM().addInfo("é¥å串å£é¾æ¥ï¼"+keyPath); //getVM().addInfo("é¥å串å£é¾æ¥ï¼"+keyPath); jiuPath = SpUtil.getString("port_jiu"); getVM().addInfo("é 精串å£é¾æ¥ï¼"+jiuPath); //getVM().addInfo("é 精串å£é¾æ¥ï¼"+jiuPath); if(!TextUtils.isEmpty(SpUtil.getString("port_grid"))&& !TextUtils.isEmpty(SpUtil.getString("port_key"))&& !TextUtils.isEmpty(SpUtil.getString("port_jiu"))){ if(isInitPort){ return; } xhCount=0; closePort(chosePort); if(!TextUtils.isEmpty(SpUtil.getString("port_grid"))){ @@ -1690,6 +1740,7 @@ ,1 , 0,gridReadObserver); boolean isSucc = gridPort.open(); if(isSucc) { isInitPort = true; getVM().addInfo("é¨ä¸²å£é¾æ¥æåï¼"+path); String msg = isSucc ? "æå" : "失败"; //getVM().append("ä¸²å£ "+ settingBean.getDevicePath() + " -è¿æ¥"+msg); @@ -1707,6 +1758,7 @@ ,1 , 0,keyReadObserver); boolean isSucc = keyPort.open(); if(isSucc) { isInitPort = true; getVM().addInfo("é¥å串å£é¾æ¥æåï¼"+path); String msg = isSucc ? "æå" : "失败"; //getVM().append("ä¸²å£ "+ settingBean.getDevicePath() + " -è¿æ¥"+msg); @@ -1723,6 +1775,7 @@ ,1 , 0,jiuReadObserver); boolean isSucc = jiuPort.open(); if(isSucc) { isInitPort = true; getVM().addInfo("é 精串å£é¾æ¥æåï¼"+path); String msg = isSucc ? "æå" : "失败"; //getVM().append("ä¸²å£ "+ settingBean.getDevicePath() + " -è¿æ¥"+msg); @@ -1809,15 +1862,23 @@ portHandler.sendEmptyMessageDelayed(0,0); } private CircularQueue openGridQueue = new CircularQueue(); private void send485(int type,String code){ runOnUiThread(new Runnable() { @Override public void run() { //todo 廿 if(type==2){ return; } getVM().addInfo("åéæä»¤ï¼"+StringUtil.DateToStrSS(new Date())+"==>"+code); } }); if(type==0){ if(gridPort!=null){ if(code.startsWith("8A")){ openGridQueue.enqueue(code); } byte[] sendByte = SportUtils.hexToByteArray(code); gridPort.write(sendByte); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
@@ -128,6 +128,7 @@ gridDo.setKeyStatus(bean.getKeyStatus()); gridDo.setWorkingStatus(bean.getWorkingStatus()); updateList.add(gridDo); oldMap.remove(key); }else { //æ°å¢ CabinetGridDo gridDo = new CabinetGridDo(); @@ -143,9 +144,26 @@ addList.add(gridDo); } } if(oldMap.size()>0) { CabinetGridDo[] dels = new CabinetGridDo[oldMap.size()]; int i=0; for (String key : oldMap.keySet()) { dels[i] = oldMap.get(key); i++; } //å é¤å¤ç DaoManager.getCabinetGridDao().delete(dels); } if(addList.size()>0){ DaoManager.getCabinetGridDao().insert(addList); } //todo 廿 CabinetGridDo gridDo = oldMap.get("0101"); if(gridDo!=null){ EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>æ´æ°æ°æ®å½åé¥å1ï¼"+gridDo.getCurKeyCode())); } if(updateList.size()>0){ CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; for(int i=0;i<updateList.size();i++){ @@ -262,13 +280,6 @@ return DaoManager.getCabinetGridDao().getOpenGrids(); } public void insertGrids(List<CabinetGridDo> addList){ if(addList.size()>0){ DaoManager.getCabinetGridDao().insert(addList); } addInfo("æ´æ°åºæ°æ®:æ°å¢" + addList.size()); } public void updateGrids(List<CabinetGridDo> updateList){ if(updateList.size()>0){ CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; @@ -340,7 +351,7 @@ public void addInfo(String info){ String s = infoObs.get(); s+=info+"\n"; s=info+"\n"+s; infoObs.set(s); } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/CircularQueue.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.doumee.keyCabinet.utils; import java.util.ArrayList; import java.util.List; // 顺åºéå示ä¾ï¼å¾ªç¯éå,å è¿ååºï¼ public class CircularQueue { List<String> list = new ArrayList<>(10); public void enqueue(String element){ if(list.size()==10){ list.remove(0); } list.add(element); } public String dequeue(){ //仿åå if(list.size()==0){ return null; } String element = list.get(list.size()-1); list.remove(list.size()-1); return element; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java
@@ -8,6 +8,7 @@ import com.baidu.idl.main.facesdk.license.BDFaceLicenseAuthInfo; import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon; import com.baidu.idl.main.facesdk.utils.PreferencesUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.listener.SdkInitListener; import com.example.datalibrary.utils.ToastUtils; @@ -59,7 +60,7 @@ // 妿licenseKey ä¸åå¨æç¤ºææç 为空ï¼å¹¶è·³è½¬ææé¡µé¢ææ if (TextUtils.isEmpty(licenseOfflineKey) && TextUtils.isEmpty(licenseOnlineKey) && TextUtils.isEmpty(licenseBatchlineKey)) { ToastUtils.toast(context, "æªææè®¾å¤ï¼è¯·å®ææææ¿æ´»"); ToastView.show(context, "æªææè®¾å¤ï¼è¯·å®ææææ¿æ´»"); if (listener != null) { listener.initLicenseFail(-1, "ææç ä¸åå¨ï¼è¯·éæ°è¾å ¥ï¼"); } keyCabinet-android/app/src/main/res/layout/face_activity.xml
@@ -482,7 +482,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@color/white" android:visibility="gone"> android:visibility="visible"> <EditText android:id="@+id/et_ewm" android:layout_width="100dp" android:layout_height="wrap_content" android:text="" android:inputType="number" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@null" android:layout_marginTop="20dp" /> <View android:id="@+id/v_c_sl" @@ -685,17 +698,43 @@ </androidx.constraintlayout.widget.ConstraintLayout> <EditText android:id="@+id/et_ewm" android:layout_width="100dp" <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_jiujin_progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:background="@drawable/shape_jiujin_ok" android:paddingLeft="80dp" android:paddingRight="80dp" android:paddingTop="50dp" android:paddingBottom="50dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@null" /> android:visibility="gone"> <pl.droidsonroids.gif.GifImageView android:id="@+id/img_progress" android:layout_width="150dp" android:layout_height="150dp" android:src="@mipmap/zhuanquan" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginBottom="30dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="æ£æµä¸" android:textColor="#ffffffff" android:textSize="33sp" app:layout_constraintTop_toBottomOf="@+id/img_progress" android:layout_marginTop="10dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> </layout> keyCabinet-android/app/src/main/res/layout/main_activity.xml
@@ -365,7 +365,7 @@ <androidx.core.widget.NestedScrollView android:id="@+id/nsv" android:layout_width="match_parent" android:layout_height="200dp" android:layout_height="700dp" app:layout_constraintTop_toTopOf="parent" android:background="@color/white" android:visibility="gone"> @@ -384,6 +384,12 @@ </TextView> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.core.widget.NestedScrollView> <TextView android:id="@+id/tv11" android:layout_width="wrap_content" @@ -392,14 +398,11 @@ android:textColor="#ff279baa" android:textSize="20sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:commandType="@{55}" app:onClickCommand="@{model.myTypeCommand}"/> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.core.widget.NestedScrollView> <ImageView android:id="@+id/img" keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml
@@ -37,6 +37,18 @@ android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:paddingBottom="9dp"/> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{data.keyCode}" android:textColor="#ff279baa" android:textSize="14sp" app:layout_constraintTop_toBottomOf="@+id/tv2" app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:paddingBottom="9dp"/> <ImageView android:layout_width="45dp" keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
@@ -32,7 +32,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="30s" android:textColor="#ff279baa" android:textColor="@color/white" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="33dp" @@ -88,7 +88,7 @@ android:layout_width="0dp" android:layout_height="75dp" android:background="@null" android:text="15055153182" android:text="18656077929" android:textColor="#111111" android:hint="请è¾å ¥ç»å½è´¦å·" android:textColorHint="#999999" @@ -138,7 +138,7 @@ android:layout_width="0dp" android:layout_height="75dp" android:background="@null" android:text="123456a" android:text="Whyc2025" android:hint="请è¾å ¥è´¦å·å¯ç " android:textColorHint="#999999" android:textSize="24sp" @@ -186,7 +186,7 @@ android:id="@+id/tv_no" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="NOï¼28228293837" android:text="NOï¼" android:textColor="#b3ffffff" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" keyCabinet-android/app/src/test/java/com/doumee/ticketmachine/ExampleUnitTest.java
@@ -1,6 +1,9 @@ package com.doumee.ticketmachine; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.utils.CircularQueue; import com.doumee.keyCabinet.utils.i485.SportUtils; import com.example.datalibrary.utils.ToastUtils; import org.junit.Test; @@ -12,12 +15,14 @@ public class ExampleUnitTest { @Test public void addition_isCorrect() { String s = "Result:12.00mg/100ml"; Pattern pattern = Pattern.compile("([0-9]+\\.[0-9]+)"); Matcher matcher = pattern.matcher(s); if (matcher.find()) { System.out.println(matcher.group(1)); // è¾åº: 12.00 CircularQueue queue = new CircularQueue(); for(int i=0;i<3;i++){ queue.enqueue(i+""); } System.out.println(queue.dequeue()); System.out.println(queue.dequeue()); System.out.println(queue.dequeue()); System.out.println(queue.dequeue()); } keyCabinet-android/datalibrary/src/main/java/com/example/datalibrary/utils/ToastUtils.java
@@ -13,7 +13,7 @@ handler.post(new Runnable() { @Override public void run() { Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); Toast.makeText(context, text, Toast.LENGTH_LONG).show(); } }); } @@ -22,7 +22,7 @@ handler.post(new Runnable() { @Override public void run() { Toast.makeText(context, resId, Toast.LENGTH_SHORT).show(); Toast.makeText(context, resId, Toast.LENGTH_LONG).show(); } }); } keyCabinet-android/lib_coremodel/src/main/res/layout/toast_view.xml
@@ -3,7 +3,9 @@ android:orientation="vertical" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent"> android:layout_height="match_parent" android:focusable="false" android:focusableInTouchMode="false"> <TextView android:layout_width="wrap_content"