keyCabinet-android/app/build.gradle
@@ -10,8 +10,8 @@ applicationId "com.doumee.keyCabinet" minSdkVersion build_versions.min_sdk targetSdkVersion build_versions.target_sdk versionCode 1 versionName "1.0.0" versionCode 2 versionName "1.0.1" //æ¯ævectorDrawablesç¢éå¾ vectorDrawables.useSupportLibrary = true keyCabinet-android/app/src/main/AndroidManifest.xml
@@ -76,19 +76,19 @@ android:resource="@xml/provider_paths" /> </provider> <receiver <!--<receiver android:name="com.doumee.keyCabinet.ui.service.BootCompleteReceiver" android:enabled="true" android:exported="true"> <!-- æ¥æ¶å¯å¨å®æç广æ --> <!– æ¥æ¶å¯å¨å®æçå¹¿æ –> <intent-filter android:priority="1000"> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </receiver>--> <service android:name="com.doumee.keyCabinet.ui.service.HeartbeatService" /> <service android:name="com.doumee.keyCabinet.ui.service.FaceUpdateService" /> <!--<service android:name="com.doumee.keyCabinet.ui.service.HeartbeatService" /> <service android:name="com.doumee.keyCabinet.ui.service.FaceUpdateService" />--> <uses-library android:name="org.apache.http.legacy" keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/FaceUserBean.java
@@ -8,7 +8,7 @@ private Integer memberId; private String memberName; //0:管çåï¼1ï¼ç¨æ· //0:管çåï¼1ï¼å¸æº private String groupId; private boolean checked; keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/OpenErrEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.doumee.keyCabinet.event; public class OpenErrEvent { private String key; public OpenErrEvent(String key) { this.key = key; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/OpenGridEvent.java
@@ -5,12 +5,25 @@ private String channelCode; //æ¿å· private String boardCode; private String key; public OpenGridEvent(String channelCode, String boardCode) { this.channelCode = channelCode; this.boardCode = boardCode; } public OpenGridEvent(String key) { this.key = key; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getChannelCode() { return channelCode; } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
@@ -61,7 +61,7 @@ * è·åICå¡ç¨æ·ä¸»é® - 叿º */ @POST("visitsAdmin/cloudService/web/cabinet/getMemberIdByCode") Observable<BaseResponse<Integer>> getMemberIdByCode(@Query("code")String code); Observable<BaseResponse<Integer>> getMemberIdByCode(@Body RequestBody requestBody); /** * é ç²¾æ£æµåè¦ keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/AlcoholTestAlarmParam.java
@@ -1,6 +1,8 @@ package com.doumee.keyCabinet.http.param; public class AlcoholTestAlarmParam { //æåid private Integer cabinetId; //ä¼åid private Integer memberId; private String alcoholNum; @@ -20,4 +22,12 @@ public void setAlcoholNum(String alcoholNum) { this.alcoholNum = alcoholNum; } public Integer getCabinetId() { return cabinetId; } public void setCabinetId(Integer cabinetId) { this.cabinetId = cabinetId; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/param/GetMemberIdByCodeParam.java
@@ -1,11 +1,9 @@ package com.doumee.keyCabinet.http.param; public class GetMemberIdByCodeParam { //å ³è人åç±»åï¼0=叿ºï¼1=æ ¡éªäººå private Integer userType; private String code; public GetMemberIdByCodeParam(String code) { this.code = code; } public String getCode() { return code; @@ -14,4 +12,12 @@ public void setCode(String code) { this.code = code; } public Integer getUserType() { return userType; } public void setUserType(Integer userType) { this.userType = userType; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceVM.java
@@ -51,13 +51,13 @@ List<FaceUserBean> datas = new ArrayList<>(); if(faceBean!=null&&faceBean.getAutoFaceList()!=null){ for(FaceUserBean bean:faceBean.getAutoFaceList()){ bean.setGroupId("1"); bean.setGroupId("0"); } datas.addAll(faceBean.getAutoFaceList()); } if(faceBean!=null&&faceBean.getDriverFaceList()!=null){ for(FaceUserBean bean:faceBean.getDriverFaceList()){ bean.setGroupId("0"); bean.setGroupId("1"); } datas.addAll(faceBean.getDriverFaceList()); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
@@ -27,6 +27,7 @@ import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.databinding.FaceActivityBinding; import com.doumee.keyCabinet.event.FaceStatusChangeEvent; import com.doumee.keyCabinet.event.HttpEvent; import com.doumee.keyCabinet.event.JiujinBeginEvent; import com.doumee.keyCabinet.event.JiujinResultEvent; import com.doumee.keyCabinet.event.TimeClockEvent; @@ -130,6 +131,7 @@ private void statusFsm(int toStatus){ status = toStatus; isToChose = false; getDB().etEwm.requestFocus(); switch (toStatus){ case 0: //å-管çå人è¸éªè¯ @@ -141,7 +143,6 @@ case 1: //å-管çåå·å¡éªè¯ getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); getDB().tvTitle.setText("管çå身份éªè¯"); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); @@ -198,7 +199,7 @@ //å-叿ºé ç²¾æ£æµå¤±è´¥ //Toast.makeText(mContext, "叿ºé ç²¾æ£æµå¤±è´¥", Toast.LENGTH_SHORT).show(); getDB().clJiu.setVisibility(View.GONE); getDB().tvJg1.setText("é ç²¾æ£æµå¼å¸¸ï¼è¯·éæ°æ£æµ"); getDB().tvJg1.setText("é ç²¾æ£æµæä½ä¸å½ï¼è¯·éæ°æ£æµ"); getDB().clTip1.setVisibility(View.VISIBLE); break; case 7: @@ -297,6 +298,14 @@ finish(); } break; case 8: getDB().message.setText(data.getData().get("obj").toString()); getDB().message.setVisibility(View.VISIBLE); handler.sendEmptyMessageDelayed(6,2000); getDB().message.invalidate(); getDB().message.requestLayout(); EventBus.getDefault().post(new HttpEvent("icå¡+++++++"+data.getData().get("type").toString())); break; default: break; } @@ -328,7 +337,7 @@ //icå¡è¯»å getDB().etEwm.requestFocus(); getDB().etEwm.setFocusable(true); getDB().etEwm.setShowSoftInputOnFocus(true); getDB().etEwm.setShowSoftInputOnFocus(false); hideSoftKeyboard(getDB().etEwm); getDB().etEwm.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override @@ -336,6 +345,7 @@ hideSoftKeyboard(getDB().etEwm); } }); getDB().etEwm.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -354,6 +364,8 @@ return; } if(status!=1&&status!=3&&status!=8){ getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); return; } if(handler.hasMessages(5)){ @@ -498,6 +510,8 @@ getVM().alcoholTestAlarm(resultEvent.getConcentration().toString()); //Toast.makeText(mContext, "é ç²¾æ£æµè¶ æ ", Toast.LENGTH_SHORT).show(); statusFsm(9); //忣æµï¼å°å£°é³å ³é EventBus.getDefault().post(new JiujinBeginEvent()); } break; case 4: @@ -515,6 +529,9 @@ } getDB().etEwm.setText(""); getDB().etEwm.requestFocus(); break; case 6: getDB().message.setVisibility(View.GONE); break; default: break; @@ -593,6 +610,7 @@ User user = livenessModel.getUser(); if (user == null) { mUser = null; //EventBus.getDefault().post(new HttpEvent("人è¸ç¨æ·æ£æµå¤±è´¥------->"+(status==0?"管çåäººè¸æ£æµï¼":"叿ºäººè¸æ£æµï¼"))); if (isCompareCheck) { /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); @@ -601,6 +619,8 @@ } else { mUser = user; /*EventBus.getDefault().post(new HttpEvent("人è¸ç¨æ·------->"+(status==0?"管çåäººè¸æ£æµï¼":"叿ºäººè¸æ£æµï¼") +(user.getGroupId().equals("0")?"管çå":"叿º")));*/ if (isCompareCheck) { getDB().clFail.setVisibility(View.GONE); if(handler.hasMessages(0)) { @@ -665,6 +685,9 @@ @Subscribe(threadMode = ThreadMode.MAIN) public void JiujinResultEvent(JiujinResultEvent e){ if(!isFinishing()){ if(status!=4&&status!=6){ return; } //Toast.makeText(mContext, "é ç²¾æ£æµè¿åï¼"+e.isOk(), Toast.LENGTH_SHORT).show(); if(!e.isOk()){ getDB().clJiujinProgress.setVisibility(View.GONE); keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceVM.java
@@ -49,8 +49,10 @@ * @param type //0ï¼ç®¡çåï¼1ï¼å¸æº */ public void getMemberIdByCode(String code,String type){ //showLoading(true); getRetrofitService(Apis.class).getMemberIdByCode(code) GetMemberIdByCodeParam param = new GetMemberIdByCodeParam(); param.setUserType("0".equals(type)?1:0); param.setCode(code); getRetrofitService(Apis.class).getMemberIdByCode(ParamsUtil.encodeRequestBody(param)) .compose(RxUtils.schedulersTransformer()) .subscribe(new SimpleObserver<BaseResponse<Integer>>(rxJavaGcManager) { @Override @@ -70,7 +72,7 @@ } } }else { //toast(response.getMessage()); doAction(8,response.getMessage()); } } @@ -92,6 +94,7 @@ */ public void alcoholTestAlarm(String data){ AlcoholTestAlarmParam param = new AlcoholTestAlarmParam(); param.setCabinetId(MApplication.getConfigBean().getId()); param.setMemberId(MApplication.getLoginBean().getMemberId()); param.setAlcoholNum(data); showLoading(true); keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/adapter/FaceUserAdapter.java
@@ -69,7 +69,7 @@ // æ·»å æ°æ® holder.text_user_ctime.setText(mList.get(position).getId()+""); holder.textUserName.setText(mList.get(position).getUserName()); holder.textSf.setText(mList.get(position).getGroupId().equals("0")? holder.textSf.setText(mList.get(position).getGroupId().equals("1")? MApplication.mContext.getString(R.string.face_hy) :MApplication.mContext.getString(R.string.face_xy)); FrescoUtils.displayImageFresco(mList.get(position).getImageName(),holder.circleUserHead); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ChangeUrlActivity.java
@@ -45,7 +45,7 @@ @Override public void initData(@Nullable Bundle savedInstanceState) { getDB().etUrl.setText(SpUtil.getString("base_url", Apis.HTTP)); getDB().etTime.setText(SpUtil.getInt("loop_time",30)+""); getDB().etTime.setText(SpUtil.getInt("loop_time",60)+""); } @Override @@ -57,7 +57,9 @@ ToastView.show(MApplication.mContext,"æ¥å£å°åä¸è½ä¸ºç©º"); return; } if(!url.startsWith("http://")||!url.startsWith("https://")||!url.endsWith("/")){ if((url.startsWith("http://")||url.startsWith("https://"))&&url.endsWith("/")){ //æ£ç¡® }else { ToastView.show(MApplication.mContext,"æ¥å£å°åé误"); return; } 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; } } }; } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
@@ -1,10 +1,13 @@ package com.doumee.keyCabinet.ui.keyCabinet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.Observer; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; @@ -14,6 +17,7 @@ import android.widget.TextView; import android.widget.Toast; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.R; import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.bean.ManageKeyCabinetBean; @@ -27,6 +31,7 @@ import com.doumee.keyCabinet.event.KeyResultEvent; import com.doumee.keyCabinet.event.ManageOpenGridResultEvent; import com.doumee.keyCabinet.event.OpenAllGridEvent; import com.doumee.keyCabinet.event.OpenErrEvent; import com.doumee.keyCabinet.event.OpenGridEvent; import com.doumee.keyCabinet.event.OpenGridListEvent; import com.doumee.keyCabinet.event.OpenGridOneResultEvent; @@ -37,6 +42,7 @@ import com.doumee.lib_coremodel.util.RecyclerHelp; import com.doumee.lib_coremodel.util.StringUtil; import com.example.datalibrary.db.DBManager; import com.innohi.YNHAPI; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -100,6 +106,15 @@ } }); getVM().getCabinetDetail(); getDB().tvTitle.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { //å¯ä»¥ä¸æ YNHAPI mAPI = YNHAPI.getInstance(); mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.VISIBLE); return true; } }); } private void updateBtnStatus(){ @@ -168,11 +183,6 @@ 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); @@ -344,7 +354,7 @@ } if(isShowOpenTip){ if(openTipDownCount==0){ doRegister(9,null); getVM().doAction(9); }else { openTipDownCount--; getDB().tvClKmClose.setText(openTipDownCount+"s èªå¨å ³é"); @@ -526,15 +536,14 @@ } } private String sygKey; @Subscribe public void OpenGridOneResultEvent(OpenGridOneResultEvent e){ if(!isFinishing()){ //å¼é¨æåï¼ç§»é¤å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); } 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)+"")); @@ -542,6 +551,8 @@ } } private Long keyTime; private HashMap<String,String> closeMap = new HashMap<>(); /** * å ³é¨ * @param e @@ -549,12 +560,23 @@ @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); } //å ³é¨æåï¼ç§»é¤å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); } //åéæ¥è¯¢é¥åå· EventBus.getDefault().post(new GetKeyStatusEvent()); keyTime = new Date().getTime()+500; if(handler.hasMessages(0)){ handler.removeMessages(0); } handler.sendEmptyMessageDelayed(0,1200); closeMap.put(e.getKey(),""); /*111 //æ ¡éªå¡å· CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey()); if(gridDo!=null){ @@ -580,20 +602,51 @@ } } } EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¨å ³éæå==>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¨å ³éæå***************************>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); getVM().closeGrid(gridDo); }*/ } } @Subscribe(threadMode= ThreadMode.MAIN) public void OpenErrEvent(OpenErrEvent e){ //å¼é¨å¤±è´¥ if(!isFinishing()){ //å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); } EventBus.getDefault().post(new OpenGridEvent(e.getKey())); Message msg = Message.obtain(); msg.what=1; msg.obj = e.getKey(); handler.sendMessageDelayed(msg,1000); } } @Subscribe public void KeyResultEvent(KeyResultEvent e){ if(!isFinishing()){ //æ ¡éªæ¶é´ if(keyTime==null){ return; } if(keyTime!=null&&keyTime>System.currentTimeMillis()){ //æ ¡éªè¿åæ¶é´<å½ä»¤æ¶é´ return; } if(handler.hasMessages(0)){ handler.removeMessages(0); } HashMap<String,String> copyMap = new HashMap<>(); copyMap.putAll(closeMap); closeMap.clear(); //æ ¡éªå¡å·ä¸å¯¹çï¼ç´æ¥å¼¹åº List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll(); List<String> keys = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for(CabinetGridDo gridDo:gridDos){ boolean isFail = false; if(TextUtils.isEmpty(gridDo.getGridKey())){ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())&&gridDo.getIsOpen()==0){ //æªç»å®çåæ¾äºé¥å @@ -602,6 +655,7 @@ sb.append("ã"); } sb.append(gridDo.getCabinetName()); isFail = true; } }else { if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ @@ -612,7 +666,15 @@ sb.append("ã"); } sb.append(gridDo.getCabinetName()); isFail = true; } } } if(!isFail){ if(copyMap.containsKey(gridDo.getGridKey())){ //å ³é¨æå EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¨å ³éæå***************************>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); getVM().closeGrid(gridDo); } } } @@ -625,4 +687,31 @@ } } } @Override protected void onDestroy() { super.onDestroy(); handler.removeCallbacksAndMessages(null); handler = null; } 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((String) msg.obj)); handler.sendEmptyMessageDelayed(1,1000); break; default: break; } } }; } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
@@ -296,7 +296,7 @@ @Override public void onNext(@NonNull BaseResponse response) { if(response.getCode()==200){ EventBus.getDefault().post(new HttpEvent("å ³éææ ¼æ¥å£æå")); EventBus.getDefault().post(new HttpEvent("å ³éææ ¼æ¥å£æå:"+gridDo.getCurKeyCode())); getCabinetDetail(); doAction(11); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java
@@ -11,12 +11,14 @@ import android.widget.Toast; import com.doumee.keyCabinet.BuildConfig; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.R; import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.databinding.ManageLoginActivityBinding; import com.doumee.keyCabinet.event.TimeClockEvent; import com.doumee.keyCabinet.utils.LMobileInfo; import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.innohi.YNHAPI; import org.greenrobot.eventbus.Subscribe; @@ -44,7 +46,18 @@ getDB().tvNo.setText("NOï¼"+ LMobileInfo.getDeviceUniqueId()); getDB().tvV.setText("V"+ BuildConfig.VERSION_NAME); getDB().tv1.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if(MApplication.getConfigBean().getId()==null){ //å¯ä»¥ä¸æ YNHAPI mAPI = YNHAPI.getInstance(); mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.VISIBLE); return true; } return false; } }); } @Override keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -6,9 +6,11 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.PixelFormat; import android.graphics.drawable.BitmapDrawable; import android.hardware.Camera; import android.opengl.Visibility; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -20,6 +22,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.PopupWindow; import android.widget.RelativeLayout; import android.widget.TextView; @@ -60,6 +63,7 @@ import com.doumee.keyCabinet.event.KeyResultEvent; import com.doumee.keyCabinet.event.ManageOpenGridResultEvent; import com.doumee.keyCabinet.event.OpenAllGridEvent; import com.doumee.keyCabinet.event.OpenErrEvent; import com.doumee.keyCabinet.event.OpenGridEvent; import com.doumee.keyCabinet.event.OpenGridListEvent; import com.doumee.keyCabinet.event.OpenGridOneResultEvent; @@ -109,6 +113,7 @@ import com.example.datalibrary.model.User; import com.example.datalibrary.utils.ToastUtils; import com.example.datalibrary.view.PreviewTexture; import com.innohi.YNHAPI; import com.yanzhenjie.permission.runtime.Permission; import org.greenrobot.eventbus.EventBus; @@ -171,8 +176,21 @@ getVM().getFaceLD(); } getVM().upBraceletLog();*/ case 1: if(isShowing) { EventBus.getDefault().post(new OpenGridEvent((String) msg.obj)); handler.sendEmptyMessageDelayed(1, 1000); } break; case 2: if(isShowing){ //éæ°åéé¥åæ¥è¯¢ //åéæ¥è¯¢é¥åå· EventBus.getDefault().post(new GetKeyStatusEvent()); handler.sendEmptyMessageDelayed(2,1200); } break; default: break; } } @@ -193,12 +211,12 @@ getDB().setModel(getVM()); initRGBCheck(); handler.sendEmptyMessageDelayed(0, 1000); //å¯å¨å¿è·³ /*//å¯å¨å¿è·³ Intent intent = new Intent(MainActivity.this, HeartbeatService.class); startService(intent); //å¯å¨æ´æ°äººè¸ Intent intent2 = new Intent(MainActivity.this, FaceUpdateService.class); startService(intent2); startService(intent2);*/ getPermission(); Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId()); } @@ -212,10 +230,10 @@ long availableMemory = memoryInfo.availMem/(1024*1024); long usedMemory = totalMemory - availableMemory; //getDB().tvM.setText("æ»å åï¼"+totalMemory+",使ç¨å åï¼"+usedMemory+",å¯ç¨å åï¼"+availableMemory); if((availableMemory<400&&showTime!=null&&(System.currentTimeMillis()-showTime>5000))|| if((availableMemory<100&&showTime!=null&&(System.currentTimeMillis()-showTime>5000))|| ("02:00:00".equals(StringUtil.getHM()))){ //å¯ç¨å åå°äº400M,æè æ¯å¤©åæ¨2ç¹ï¼éå¯app //restartApp(); restartApp(); } } @@ -270,7 +288,7 @@ lastDownTime1 = System.currentTimeMillis(); downCount1++; System.out.println(); Timber.tag("==>").d(""+downCount1); //Timber.tag("==>").d(""+downCount1); if(downCount1>4) { downCount1=0; lastDownTime1=null; @@ -296,24 +314,18 @@ } } }); getDB().tvVersion.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //todo 临æ¶ä»£ç  //setJiuConfig(); SpUtil.saveString("rbgCameraId","0"); } }); getDB().imgLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { public void onClick(View v1) { //todo 临æ¶ä»£ç  if (getDB().nsv.getVisibility()== View.VISIBLE) { getDB().nsv.setVisibility(View.GONE); }else { getDB().nsv.setVisibility(View.VISIBLE); } YNHAPI mAPI = YNHAPI.getInstance(); mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.VISIBLE); } }); upErrInfo(); @@ -458,6 +470,9 @@ protected void onResume() { super.onResume(); isShowing = true; YNHAPI mAPI = YNHAPI.getInstance(); mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.ALWAYS_INVISIBLE); mAPI.setBootLaunchApk("com.doumee.keyCabinet", true); showTime = System.currentTimeMillis(); if(!isFaceOk) { initLicense(); @@ -773,7 +788,63 @@ waitBeans.clear(); selectBeans.addAll(userBeans); finishCount=0; faceHandler.sendEmptyMessage(0); /*//å é¤å ¨é¨ FaceApi.getInstance().userClean(); faceHandler.sendEmptyMessage(0);*/ HashMap<String,String> uMap = new HashMap<>(); for(FaceUserBean d:selectBeans){ String key = d.getMemberId().toString()+"_"+d.getGroupId(); uMap.put(key,""); } //å é¤ä¸åå¨ç¨æ· List<User> users = FaceApi.getInstance().getAllUserList(); List<User> dels = new ArrayList<>(); for(User u:users){ String key = u.getUserId()+"_"+u.getGroupId(); if(!uMap.containsKey(key)){ dels.add(u); } } if(dels.size()>0){ UserInfoManager.getInstance().deleteUserListInfo(dels, "", new UserInfoManager.UserInfoListener() { @Override public void userListDeleteSuccess() { // ç¨æ·å表å 餿å faceHandler.sendEmptyMessage(0); } @Override public void userListDeleteFailure(String message) { // ç¨æ·å表å é¤å¤±è´¥ faceHandler.sendEmptyMessage(0); } }, new DBLoadListener() { @Override public void onStart(int successCount) { } @Override public void onLoad(int finishCount, int successCount, float progress) { } @Override public void onComplete(List<User> features, int successCount) { } @Override public void onFail(int finishCount, int successCount, List<User> features) { } }); }else { faceHandler.sendEmptyMessage(0); } } } @@ -1041,14 +1112,21 @@ } } private UpdateUtil updateUtil; private void checkUpdate(){ //çæ¬æ´æ° new UpdateUtil(this).setShowToast(false).getServerVerCode(new UpdateUtil.VersionCallBack() { @Override public void isNeedUpdate(boolean isUpdate) { isUpdateVersion = isUpdate; } }); if(updateUtil==null){ updateUtil = new UpdateUtil(this); updateUtil.setShowToast(false); } if(!updateUtil.isShowing()){ updateUtil.getServerVerCode(new UpdateUtil.VersionCallBack() { @Override public void isNeedUpdate(boolean isUpdate) { isUpdateVersion = isUpdate; } }); } } private PermissiondDialog permissiondDialog; @@ -1080,7 +1158,7 @@ } private int tipDownCount = 10; private int loopDownCount = 30; private int loopDownCount = 60; private boolean isShowTip; @Subscribe public void TimeClockEvent(TimeClockEvent e){ @@ -1095,9 +1173,12 @@ } } if(loopDownCount==0){ loopDownCount = SpUtil.getInt("loop_time",30); loopDownCount = SpUtil.getInt("loop_time",60); //宿¶æååºæ¬ä¿¡æ¯ getVM().devLogin(); getPermission(); getVM().devHeart(); EventBus.getDefault().post(new GetFacesEvent()); }else { loopDownCount--; } @@ -1112,8 +1193,12 @@ public void OpenGridEvent(OpenGridEvent e){ if(!isFinishing()){ //å¼å¯æé¨ String code = "8A"+SportUtils.intToHex(Integer.parseInt(e.getBoardCode())) +SportUtils.intToHex(Integer.parseInt(e.getChannelCode()))+"11"; String key = e.getKey(); if(TextUtils.isEmpty(key)) { key = SportUtils.intToHex(Integer.parseInt(e.getBoardCode())) + SportUtils.intToHex(Integer.parseInt(e.getChannelCode())); } String code = "8A" + key + "11"; code += SportUtils.getBCC(code); send485(0,code); } @@ -1176,38 +1261,6 @@ } } @Subscribe public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ if(!isFinishing()&&isShowing){ //å¨é¦é¡µï¼æ ¡éªå ³é¨çé¥åæ¯å¦å¹é  if (e.getIsOpen() == 0) { //å ³é¨æå //æ¥è¯¢é¥åå· CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey()); if (gridDo != null) { getVM().addInfo("æ¯è¾é¥åï¼å½åï¼"+gridDo.getCurKeyCode()+", å ³èé¥åï¼"+gridDo.getKeyCode()); 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(e.getKey().substring(2,4), 16)+"", Integer.parseInt(e.getKey().substring(0,2), 16)+"")); }else { if(isShowTip){ doRegister(5,null); } if(isShowing){ //å¨é¦é¡µå ³é¨æåï¼éè°ç¨å ³é¨æ¹æ³ getVM().closeGrid(gridDo); } } } } } } private SerialPortModel gridPort; private SerialPortReadObserver gridReadObserver = new SerialPortReadObserver() { @Override @@ -1267,30 +1320,18 @@ 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) + "")); } } EventBus.getDefault().post(new OpenErrEvent(key)); }else { //å¼é¨æå //å¼é¨è¿å EventBus.getDefault().post(new OpenGridOneResultEvent(key,"00".equals(open)?1:0)); } } //å¼é¨è¿å EventBus.getDefault().post(new OpenGridOneResultEvent(key,"00".equals(open)?1:0)); }else if(data.length()==16){ //æ¹é //8A 02 00 00 00 00 11 99 @@ -1314,14 +1355,6 @@ updateList.add(gridDo); } } runOnUiThread(() -> { getVM().addInfo("æ¹éå¼é¨æ´æ°åºæ°æ®:çå·ï¼" +bh+","+updateList.size()); }); //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()); @@ -1341,16 +1374,13 @@ 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,"00".equals(open)?1:0)); if(isShowing&&isShowTip){ //ä¿®æ¹æ¾ç¤ºæé doRegister(5,null); getVM().doAction(5); } }else if(data.startsWith("80")){ //æ¥è¯¢ææé¨ç¶æ @@ -1393,12 +1423,6 @@ 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){ @@ -1520,12 +1544,6 @@ } } } //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()); @@ -1552,12 +1570,9 @@ } 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"))); }); if(data.contains("blow fail")){ //æ£æµå¤±è´¥ EventBus.getDefault().post(new JiujinResultEvent(false,null)); @@ -1691,18 +1706,35 @@ sendPortHandlerMsg(2,"A002010000000003",time+400); } private String jiu_blow; private String jiu_mic_ad; private String jiu_alarm; private String jiu_unit; private void setJiuConfig(long time){ CabinetConfigDataBean config = MApplication.getConfigBean().getCabinetConfigDataVO(); //è®¾ç½®å¹æ°æ¶é´ sendPortHandlerMsg(3,"blow:"+config.getBlowTime(),time+100); //ååå¼ sendPortHandlerMsg(3,"mic_ad:"+config.getPressure(),time+300); //æµåº¦éå¼ sendPortHandlerMsg(3,"alarm:"+config.getConcentration(),time+600); //æµåº¦éå¼åä½ (1=mg/100ml;2=mg/L;3=%BAC) sendPortHandlerMsg(3,"unit:"+config.getThreshold(),time+900); sendPortHandlerMsg(3,"read"+config.getThreshold(),time+1200); if(!config.getBlowTime().equals(jiu_blow)) { //è®¾ç½®å¹æ°æ¶é´ jiu_blow = config.getBlowTime(); sendPortHandlerMsg(3, "blow:" + config.getBlowTime(), time += 100); } if(!config.getPressure().equals(jiu_mic_ad)) { //ååå¼ jiu_mic_ad = config.getPressure(); sendPortHandlerMsg(3, "mic_ad:" + config.getPressure(), time += 300); } if(!config.getConcentration().equals(jiu_alarm)) { //æµåº¦éå¼ jiu_alarm = config.getConcentration(); sendPortHandlerMsg(3, "alarm:" + config.getConcentration(), time += 300); } if("3".equals(config.getThreshold())){ config.setThreshold("0"); } if(!config.getThreshold().equals(jiu_unit)) { //æµåº¦éå¼åä½ (1=mg/100ml;2=mg/L;3=%BAC) jiu_unit = config.getThreshold(); sendPortHandlerMsg(3, "unit:" + config.getThreshold(), time += 300); } } private void sendPortHandlerMsg(int what,String obj,long time){ @@ -1715,15 +1747,15 @@ private boolean isInitPort; //åå§åä¸²å£ private void initPort(){ SpUtil.setString("port_grid","/dev/ttyS7"); SpUtil.setString("port_key","/dev/ttyS1"); SpUtil.setString("port_jiu","/dev/ttyS2"); //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"))){ @@ -1867,10 +1899,6 @@ runOnUiThread(new Runnable() { @Override public void run() { //todo 廿 if(type==2){ return; } getVM().addInfo("åéæä»¤ï¼"+StringUtil.DateToStrSS(new Date())+"==>"+code); } }); @@ -1937,4 +1965,124 @@ getVM().addInfo("串å£å ¨é¨é¾æ¥æåï¼"); return true; } //å¼é¨ @Subscribe public void OpenGridOneResultEvent(OpenGridOneResultEvent e){ if(!isFinishing()&&isShowing){ //å¼é¨æåï¼ç§»é¤å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); getVM().addInfo("==ç§»é¤å¼é¨ä»»å¡"); } } } private Long keyTime; private HashMap<String,String> closeMap = new HashMap<>(); /** * å ³é¨ * @param e */ @Subscribe(threadMode= ThreadMode.MAIN) public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ if(!isFinishing()&&isShowing){ //å ³é¨æåï¼ç§»é¤å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); getVM().addInfo("==ç§»é¤å¼é¨ä»»å¡"); } closeMap.put(e.getKey(),""); //åéæ¥è¯¢é¥åå· EventBus.getDefault().post(new GetKeyStatusEvent()); keyTime = new Date().getTime()+500; if(handler.hasMessages(2)){ handler.removeMessages(2); } handler.sendEmptyMessageDelayed(2,1200); } } @Subscribe(threadMode= ThreadMode.MAIN) public void OpenErrEvent(OpenErrEvent e){ //å¼é¨å¤±è´¥ if(!isFinishing()&&isShowing){ //å¼é¨ if(handler.hasMessages(1)){ handler.removeMessages(1); getVM().addInfo("==ç§»é¤å¼é¨ä»»å¡"); } EventBus.getDefault().post(new OpenGridEvent(e.getKey())); Message msg = Message.obtain(); msg.what=1; msg.obj = e.getKey(); handler.sendMessageDelayed(msg,1000); } } @Subscribe public void KeyResultEvent(KeyResultEvent e){ if(!isFinishing()&&isShowing){ //æ ¡éªæ¶é´ if(keyTime==null){ return; } if(keyTime!=null&&keyTime>System.currentTimeMillis()){ //æ ¡éªè¿åæ¶é´<å½ä»¤æ¶é´ return; } if(handler.hasMessages(2)){ handler.removeMessages(2); } HashMap<String,String> copyMap = new HashMap<>(); copyMap.putAll(closeMap); closeMap.clear(); //æ ¡éªå¡å·ä¸å¯¹çï¼ç´æ¥å¼¹åº List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll(); List<String> keys = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for(CabinetGridDo gridDo:gridDos){ //è¦å¨èå´å if(copyMap.containsKey(gridDo.getGridKey())){ boolean isFail = false; 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()); isFail = true; } }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()); isFail = true; } } } if(!isFail){ //å ³é¨æå EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"é¨å ³éæå***************************>ç®æ ï¼"+gridDo.getKeyCode()+",å½åï¼"+gridDo.getCurKeyCode())); getVM().closeGrid(gridDo); } } } if(sb.length()>0){ ToastView.show(MApplication.mContext, sb.toString() + "é¥ååæ¾ä½ç½®é误"); } if(keys.size()>0){ //å¼é¨ EventBus.getDefault().post(new OpenGridListEvent(keys)); } } } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
@@ -71,7 +71,6 @@ public void devLogin(){ //æ¸ é¤ç»å½ä¿¡æ¯ MApplication.saveConfigBean(new DevConfigBean()); EventBus.getDefault().post(new HttpEvent("è·åé¥åæåºæ¬ä¿¡æ¯-请æ±")); getRetrofitService(Apis.class).getCabinetInfoForDriver(LMobileInfo.getDeviceUniqueId()) .compose(RxUtils.schedulersTransformer()) @@ -89,6 +88,7 @@ toast(MApplication.mContext.getString(R.string.guide_toast_1)); } }else { MApplication.saveConfigBean(new DevConfigBean()); toast(response.getMessage()); } } @@ -158,12 +158,6 @@ 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++){ @@ -215,13 +209,13 @@ List<FaceUserBean> datas = new ArrayList<>(); if(faceBean!=null&&faceBean.getAutoFaceList()!=null){ for(FaceUserBean bean:faceBean.getAutoFaceList()){ bean.setGroupId("1"); bean.setGroupId("0"); } datas.addAll(faceBean.getAutoFaceList()); } if(faceBean!=null&&faceBean.getDriverFaceList()!=null){ for(FaceUserBean bean:faceBean.getDriverFaceList()){ bean.setGroupId("0"); bean.setGroupId("1"); } datas.addAll(faceBean.getDriverFaceList()); } @@ -330,7 +324,7 @@ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { @Override public void onNext(@NonNull BaseResponse response) { toast("å ³é¨æ¥å£è°ç¨æå"); } @Override keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/CrashHandler.java
@@ -14,6 +14,7 @@ import com.doumee.keyCabinet.ui.guide.GuideActivity; import com.doumee.keyCabinet.ui.main.MainActivity; import com.doumee.lib_coremodel.util.SpUtil; import com.innohi.YNHAPI; import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; @@ -86,22 +87,30 @@ public void uncaughtException(Thread thread, Throwable ex) { try { //导åºå¼å¸¸ä¿¡æ¯å°SDå¡ä¸ YNHAPI mAPI = YNHAPI.getInstance(); mAPI.setNavigationBarVisibility(YNHAPI.NavigationBarVisibility.VISIBLE); dumpExceptionToSDCard(ex); //System.out.println("éå¯åºç¨"); // å建ä¸ä¸ªæ°çå¯å¨æå¾ /*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); long time = SpUtil.getLong("err_app"); SpUtil.saveLong("err_app",System.currentTimeMillis()); if(System.currentTimeMillis()-time>60000){ //æ¥éé´é60ç§ï¼æéå¯ //System.out.println("éå¯åºç¨"); // å建ä¸ä¸ªæ°çå¯å¨æå¾ 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);*/ android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } //è¿éå¯ä»¥éè¿ç½ç»ä¸ä¼ å¼å¸¸ä¿¡æ¯å°æå¡å¨ï¼ä¾¿äºå¼å人ååææ¥å¿ä»èè§£å³bug } catch (IOException e) { e.printStackTrace(); System.out.println("é误æ¥å¿1"+e.getMessage()); @@ -263,7 +272,7 @@ dumpPhoneInfo(print); print.println(); ex.printStackTrace(print); SpUtil.saveString(FILE_NAME+time,new String(out.toByteArray())); //SpUtil.saveString(FILE_NAME+time,new String(out.toByteArray())); print.close(); } catch (Exception e) { e.printStackTrace(); keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java
@@ -66,7 +66,7 @@ } return; } // todo å¢å å¤ç©ºå¤ç if (listener != null) { listener.initStart(); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateDialog.java
@@ -55,7 +55,7 @@ } } }); getWritePermision(); //getWritePermision(); } public void setOnOtemListener(UpdialogListener lister) { keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/update/UpdateUtil.java
@@ -57,6 +57,17 @@ // thread.interrupt(); // } } public boolean isShowing() { if(updateDialog!=null&&updateDialog.isShowing()){ return true; } if(downloadDialog!=null&&downloadDialog.isShowing()){ return true; } return false; } public static interface VersionCallBack{ void isNeedUpdate(boolean isUpdate); } @@ -81,8 +92,8 @@ versionCallBack.isNeedUpdate(true); upgradeurl=data.getFullFileUrl(); updatelog=data.getContent(); newVerName = response.getData().getVersionInfo(); doNewVersionUpdate(true); newVerName = data.getVersionInfo(); doNewVersionUpdate(data.getIsForce()==1); }else { versionCallBack.isNeedUpdate(false); } @@ -117,6 +128,7 @@ } } private UpdateDialog updateDialog; // æ´æ°æ°çæ¬ public void doNewVersionUpdate(boolean type) { StringBuffer sb = new StringBuffer(); @@ -132,7 +144,10 @@ } // sb.append(updatelog+"\n\n\r"); // new UpdateDialog(activity).show(); final UpdateDialog updateDialog = new UpdateDialog(activity); if(updateDialog!=null&&updateDialog.isShowing()){ updateDialog.dismiss(); } updateDialog = new UpdateDialog(activity); updateDialog.setText(sb.toString(),newVerName); updateDialog.setOnOtemListener(new UpdateDialog.UpdialogListener() { 
@@ -17,6 +17,18 @@ android:background="@color/white" > <EditText android:id="@+id/et_ewm" android:layout_width="100dp" android:layout_height="wrap_content" android:text="" android:inputType="number" app:layout_constraintTop_toTopOf="@+id/viewBack" app:layout_constraintBottom_toBottomOf="@+id/viewBack" app:layout_constraintStart_toStartOf="parent" android:background="@null" /> <View android:id="@+id/viewBack" android:layout_width="0dp" @@ -482,20 +494,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@color/white" 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" /> android:visibility="gone"> <View android:id="@+id/v_c_sl" @@ -703,10 +702,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_jiujin_ok" android:paddingLeft="80dp" android:paddingRight="80dp" android:paddingTop="50dp" android:paddingBottom="50dp" android:paddingLeft="60dp" android:paddingRight="60dp" android:paddingTop="40dp" android:paddingBottom="40dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -715,8 +714,8 @@ <pl.droidsonroids.gif.GifImageView android:id="@+id/img_progress" android:layout_width="150dp" android:layout_height="150dp" android:layout_width="90dp" android:layout_height="90dp" android:src="@mipmap/zhuanquan" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -736,5 +735,23 @@ </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/activity_vertical_margin" android:layout_marginRight="@dimen/activity_vertical_margin" android:text="" android:textColor="@color/white" android:textSize="24sp" android:padding="@dimen/activity_horizontal_margin" android:background="@drawable/toast_view_bg" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:gravity="center" android:visibility="gone"/> </androidx.constraintlayout.widget.ConstraintLayout> </layout> keyCabinet-android/app/src/main/res/layout/layout_download.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_width="450dp" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_gravity="center" keyCabinet-android/app/src/main/res/layout/main_activity.xml
@@ -22,21 +22,6 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"/> <TextView android:id="@+id/tv_m" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å å" android:textSize="30sp" android:textColor="@color/white" android:gravity="center" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" android:paddingLeft="0dp" android:paddingRight="10dp" android:visibility="gone" /> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/img1" android:layout_width="match_parent" @@ -420,5 +405,20 @@ app:layout_constraintStart_toStartOf="parent" /> <TextView android:id="@+id/tv_m" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textSize="30sp" android:textColor="@color/black" android:gravity="center" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" android:paddingLeft="0dp" android:paddingRight="10dp" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> keyCabinet-android/app/src/main/res/layout/manage_cabinet_rcv_item.xml
@@ -37,18 +37,6 @@ 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
@@ -88,7 +88,7 @@ android:layout_width="0dp" android:layout_height="75dp" android:background="@null" android:text="18656077929" android:text="" 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="Whyc2025" android:text="" android:hint="请è¾å ¥è´¦å·å¯ç " android:textColorHint="#999999" android:textSize="24sp" keyCabinet-android/app/src/main/res/layout/ui_update_dialog.xml
@@ -2,7 +2,7 @@ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rl_root" android:layout_width="match_parent" android:layout_width="450dp" android:layout_height="wrap_content"> <androidx.constraintlayout.widget.ConstraintLayout keyCabinet-android/app/src/main/res/values/strings.xml
@@ -114,8 +114,8 @@ <string name="main_tip3">人è¸åºå 载失败,å ±%1$dæ¡æ°æ®, å·²å è½½%2$dæ¡æ°æ®</string> <string name="main_tip4">模åå è½½æåï¼æ¬¢è¿ä½¿ç¨</string> <string name="main_tip5">模åå 载失败ï¼è¯·å°è¯éå¯åºç¨</string> <string name="face_hy">ä¼å</string> <string name="face_xy">管çå</string> <string name="face_hy">叿º</string> <string name="face_xy">éªè¯äºº</string> <string name="guide_2">è®¾å¤æªç»å½</string> <string name="face_login">人è¸è¯å«ä¸</string> <string name="face_tip1">请æ£è§åæ¹ï¼ä¸è¦é®æ¡è¸é¨</string> keyCabinet-android/datalibrary/src/main/java/com/example/datalibrary/manager/FaceSDKManager.java
@@ -309,15 +309,14 @@ private static BDFaceImageInstance rgbInstance =null; private LivenessModel livenessModel; private String groupId; /** * 0:管çåï¼1ï¼ç¨æ· * @param groupId */ public void setGroupId(String groupId){ if(livenessModel!=null){ livenessModel.setGroupId(groupId); } this.groupId = groupId; } /** * æ£æµ-æ´»ä½-ç¹å¾-äººè¸æ£ç´¢æµç¨ @@ -1215,7 +1214,7 @@ //System.out.println("==isOk==>å¹é å°æ°é"+featureResult.size()); User user = null; Feature topFeature = null; if(TextUtils.isEmpty(livenessModel.getGroupId())){ if(TextUtils.isEmpty(groupId)){ //为空ï¼éè¦æåºï¼ä¼å åä¼å for(Feature feat:featureResult) { threholdScore = bdFaceCheckConfig.scoreThreshold; @@ -1242,7 +1241,7 @@ //System.out.println("==isOk==>50"); // å½åfeatureEntity åªæid+feature ç´¢å¼ï¼å¨æ°æ®åºä¸æ¥å°å®æ´ä¿¡æ¯ User userOld = FaceApi.getInstance().getUserListById(feat.getId()); if(livenessModel.getGroupId().equals(userOld.getGroupId())){ if(groupId.equals(userOld.getGroupId())){ user = userOld; topFeature = feat; break; keyCabinet-android/lib_coremodel/src/main/java/com/doumee/lib_coremodel/base/BaseViewModel.java
@@ -228,6 +228,10 @@ actionEvent.setValue(new ActionEventData(type)); } public void doAction(int type,String obj){ actionEvent.setValue(new ActionEventData(type,obj)); } public LifecycleOwner getLifecycleOwner() { return lifecycleOwner; } keyCabinet-android/lib_coremodel/src/main/java/com/doumee/lib_coremodel/bean/event/ActionEventData.java
@@ -28,6 +28,13 @@ this.data.put("type",type); } public ActionEventData(int type,String obj){ this.action = ActionEvent.Action.DO; this.data = new HashMap<>(); this.data.put("type",type); this.data.put("obj",obj); } public ActionEventData(int action,Object value) { this.action = action; this.data = new HashMap<>(); keyCabinet-android/lib_coremodel/src/main/java/com/doumee/lib_coremodel/util/SpUtil.java
@@ -104,6 +104,16 @@ return getSharedPreferences().getInt(key, 0); } public static void saveLong(String key, Long value){ SharedPreferences.Editor editor = getSharedPreferences().edit(); editor.putLong(key, value); editor.commit(); } public static Long getLong(String key){ return getSharedPreferences().getLong(key, 0L); } public static boolean getBoolean(String key){ return getSharedPreferences().getBoolean(key, false); } keyCabinet-android/lib_coremodel/src/main/res/values/colors.xml
@@ -8,4 +8,5 @@ <color name="line">#E5E5E5</color> <color name="bg">#fff4f6f9</color> <color name="f7">#F7F7F7</color> <color name="dialog_bg">#80000000</color> </resources>