From 2e9e14088a9a7ec0eabb99eed54efeb1254fa927 Mon Sep 17 00:00:00 2001 From: weimingfei <fei_gaming@sina.com> Date: 星期五, 17 十月 2025 14:15:29 +0800 Subject: [PATCH] 钥匙柜 --- keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java | 191 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 133 insertions(+), 58 deletions(-) diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java index e1e7a17..54fcdac 100644 --- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java +++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java @@ -11,7 +11,10 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.text.SpannableString; +import android.text.Spanned; import android.text.TextUtils; +import android.text.style.TextAppearanceSpan; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; @@ -19,6 +22,7 @@ import android.view.ViewGroup; import android.widget.PopupWindow; import android.widget.RelativeLayout; +import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -38,14 +42,21 @@ import com.doumee.keyCabinet.BuildConfig; import com.doumee.keyCabinet.base.BannerPicResponsePara; import com.doumee.keyCabinet.bean.FaceUserBean; +import com.doumee.keyCabinet.bean.LoginBean; import com.doumee.keyCabinet.databinding.MainActivityBinding; import com.doumee.keyCabinet.event.GetFacesEvent; +import com.doumee.keyCabinet.event.HeartEvent; +import com.doumee.keyCabinet.event.KeyDoorEvent; +import com.doumee.keyCabinet.event.KeyResultEvent; +import com.doumee.keyCabinet.event.KeyStatusListener; +import com.doumee.keyCabinet.event.OpenGridEvent; import com.doumee.keyCabinet.event.ReLoginEvent; import com.doumee.keyCabinet.event.TimeClockEvent; import com.doumee.keyCabinet.ui.face.ActivationActivity; import com.doumee.keyCabinet.ui.face.FaceActivity; import com.doumee.keyCabinet.ui.guide.GuideActivity; import com.doumee.keyCabinet.ui.keyCabinet.ChangeUrlActivity; +import com.doumee.keyCabinet.ui.keyCabinet.KeyCabinetActivity; import com.doumee.keyCabinet.ui.keyCabinet.ManageLoginActivity; import com.doumee.keyCabinet.ui.service.FaceUpdateService; import com.doumee.keyCabinet.ui.service.HeartbeatService; @@ -84,12 +95,14 @@ import com.example.datalibrary.view.PreviewTexture; import com.yanzhenjie.permission.runtime.Permission; import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Logger; import org.greenrobot.eventbus.Subscribe; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Random; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.Executors; @@ -130,15 +143,15 @@ if(!isFinishing()){ switch (msg.what) { case 0: - initM(); + //initM(); TimeUtils.updateTimeUi(getVM().dayObs, getVM().timeObs); handler.sendEmptyMessageDelayed(0, 1000); EventBus.getDefault().post(new TimeClockEvent()); - if (isDBLoad && isNeedUpdateFace && !isUpdatingFace) { + /*if (isDBLoad && isNeedUpdateFace && !isUpdatingFace) { isNeedUpdateFace = false; getVM().getFaceLD(); } - getVM().upBraceletLog(); + getVM().upBraceletLog();*/ case 2: getVM().resetReq(); break; @@ -155,19 +168,20 @@ @Override public void initView(@Nullable Bundle savedInstanceState) { - //isToGuild = true; + isAddCountTimer = false; SpUtil.initWH(this); normalConfig(); 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); - //getPermission(); - //getDB().tvName.setText(String.format(getString(R.string.main_name),MApplication.getConfigBean().getName(), LMobileInfo.getDeviceUniqueId())); + getPermission(); + Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId()); } private void initM(){ @@ -225,6 +239,44 @@ } } }); + getDB().tv1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //绠$悊鍛樼櫥褰� + if(lastDownTime1!=null){ + if(System.currentTimeMillis()-lastDownTime1>1000){ + downCount1=0; + } + } + lastDownTime1 = System.currentTimeMillis(); + downCount1++; + System.out.println(); + Timber.tag("==>").d(""+downCount1); + if(downCount1>4) { + downCount1=0; + lastDownTime1=null; + startActivity(ManageLoginActivity.class); + } + } + }); + getDB().tvId.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //鏇存敼url + if(lastDownTime2!=null){ + if(System.currentTimeMillis()-lastDownTime2>1000){ + downCount2=0; + } + } + lastDownTime2 = System.currentTimeMillis(); + downCount2++; + if(downCount2>4) { + downCount2=0; + lastDownTime2=null; + startActivity(ChangeUrlActivity.class); + } + } + }); upErrInfo(); getVM().devHeart(); BraceletLogUtils.saveLog("app鎵撳紑"); @@ -273,45 +325,26 @@ @Override protected void doRegister(int type, ActionEventData data) { switch (type){ - case 1: - { - //绠$悊鍛樼櫥褰� - if(lastDownTime1!=null){ - if(System.currentTimeMillis()-lastDownTime1>1000){ - downCount1=0; - } - } - lastDownTime1 = System.currentTimeMillis(); - downCount1++; - if(downCount1>4) { - downCount1=0; - lastDownTime1=null; - startActivity(ManageLoginActivity.class); - } - } - break; case 2: case 3: - Bundle b = new Bundle(); - b.putString("flag",type==2?"0":"1"); - startActivity(FaceActivity.class,b); + /*tipDownCount = 10; + isShowTip = true; + getDB().tvDjs.setText(tipDownCount+"s"); + getDB().tvTip21.setText(getTipText("AC101"), TextView.BufferType.SPANNABLE); + getDB().clTip.setVisibility(View.VISIBLE);*/ + //鏍¢獙鏄惁鐧诲綍 + if(MApplication.getConfigBean().getId()==null){ + Toast.makeText(mContext, "璁惧鏈坊鍔狅紝鏃犳硶鎿嶄綔", Toast.LENGTH_SHORT).show(); + getVM().devLogin(); + return; + } + MApplication.getLoginBean().setFlag(type==2?0:1); + startActivity(FaceActivity.class); + //startActivity(KeyCabinetActivity.class,b); break; case 4: - { - //鏇存敼url - if(lastDownTime2!=null){ - if(System.currentTimeMillis()-lastDownTime2>1000){ - downCount2=0; - } - } - lastDownTime2 = System.currentTimeMillis(); - downCount2++; - if(downCount2>4) { - downCount2=0; - lastDownTime2=null; - startActivity(ChangeUrlActivity.class); - } - } + isShowTip = false; + getDB().clTip.setVisibility(View.GONE); break; default: break; @@ -322,7 +355,7 @@ protected void onResume() { super.onResume(); showTime = System.currentTimeMillis(); - MApplication.saveMemberBean(new MemberBean()); + MApplication.setLoginBean(new LoginBean()); if(!isFaceOk) { //initLicense(); } @@ -606,14 +639,6 @@ //缁撴潫 isUpdatingFace = false; //System.out.println("==UpdatingFace==>鏇存柊缁撴潫锛�"); - FaceUserBean bean = selectBeans.get(selectBeans.size()-1); - if(!TextUtils.isEmpty(bean.getEditTime())){ - Date date = StringUtil.StrToDate(bean.getEditTime()); - Calendar cal = Calendar.getInstance(); - cal.setTime(date); - cal.add(Calendar.SECOND,1); - SpUtil.saveString("LastTime",StringUtil.DateToStr(cal.getTime())); - } // 娓呴櫎鍐呭瓨缂撳瓨 Glide.get(MainActivity.this).clearMemory(); } @@ -642,7 +667,7 @@ private int repeatCount = 0; private void updateFace(FaceUserBean bean){ Timber.d("==UpdatingFace==>瀹屾垚鏁伴噺 "+finishCount); - if (TextUtils.isEmpty(bean.getFaceUrl())||bean.getFaceUrl().endsWith("null")) { + if (TextUtils.isEmpty(bean.getFaceImg())||bean.getFaceImg().endsWith("null")) { finishCount++; faceHandler.sendEmptyMessage(0); return; @@ -651,7 +676,7 @@ //System.out.println("==UpdatingFace==>寮�濮嬶細" + bean.getName()); Glide.with(this) .asBitmap() - .load(bean.getFaceUrl()) + .load(bean.getFaceImg()) .addListener(new RequestListener<Bitmap>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) { @@ -695,10 +720,10 @@ if (ret == 128) { Timber.d("==UpdatingFace==>鍥剧墖鐗瑰緛鎶藉彇鎴愬姛: %s", JSON.toJSONString(bean)); User user = new User(); - user.setUserId(bean.getId()); - user.setGroupId(bean.getType()); - user.setUserName(bean.getName()); - user.setImageName(bean.getFaceUrl()); + user.setUserId(bean.getMemberId()); + user.setGroupId(bean.getGroupId()); + user.setUserName(bean.getMemberName()); + user.setImageName(bean.getFaceImg()); user.setUserInfo(GsonTools.changeGsonToJson(bean)); user.setFeature(secondFeature); insertOrUpdate(user); @@ -952,12 +977,57 @@ } } + private int tipDownCount = 10; + private boolean isShowTip; @Subscribe public void TimeClockEvent(TimeClockEvent e){ - + if(isShowTip){ + if(tipDownCount==0){ + isShowTip = false; + getDB().clTip.setVisibility(View.GONE); + }else { + tipDownCount--; + getDB().tvDjs.setText(tipDownCount+"s"); + } + } } + /** + * 鐩戝惉寮�闂� + * @param e + */ + @Subscribe + public void OpenGridEvent(OpenGridEvent e){ + if(!isFinishing()){ + EventBus.getDefault().post(new KeyDoorEvent(MApplication.nextBoolean()?"0":"1")); + } + } + /** + * 鐩戝惉閽ュ寵 + * @param e + */ + @Subscribe + public void KeyStatusListener(KeyStatusListener e){ + if(!isFinishing()){ + if(e.getStatus()==0){ + //寮�濮� + Random random = new Random(); + EventBus.getDefault().post(new KeyResultEvent(random.nextBoolean()?"0":"1")); + }else { + //缁撴潫 + } + } + } + + private SpannableString getTipText(String name){ + String text = name+"鏌滈棬鏈叧闂�"; + SpannableString styledText = new SpannableString(text); + styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip1), + 0, name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + styledText.setSpan(new TextAppearanceSpan(this,R.style.style_tip2), name.length()+1, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + return styledText; + } @Override protected void onRestart() { @@ -965,6 +1035,11 @@ getVM().devHeart(); } - + @Subscribe + public void HeartEvent(HeartEvent e){ + if(!isFinishing()){ + getVM().devHeart(); + } + } } -- Gitblit v1.9.3