package com.doumee.keyCabinet.ui.keyCabinet;
|
|
import androidx.annotation.Nullable;
|
import android.os.Bundle;
|
import android.os.SystemClock;
|
import android.text.TextUtils;
|
import android.view.View;
|
import android.widget.Toast;
|
|
import com.doumee.keyCabinet.R;
|
import com.doumee.keyCabinet.base.MyBaseActivity;
|
import com.doumee.keyCabinet.bean.FingerPrintVo;
|
import com.doumee.keyCabinet.dao.DaoManager;
|
import com.doumee.keyCabinet.dao.FingerPrintDo;
|
import com.doumee.keyCabinet.databinding.ZwlistActivityBinding;
|
import com.doumee.keyCabinet.event.HttpEvent;
|
import com.doumee.keyCabinet.event.RefreshFingerEvent;
|
import com.doumee.keyCabinet.ui.keyCabinet.adapter.ZwListRcvAdapter;
|
import com.doumee.keyCabinet.utils.usb.DevComm;
|
import com.doumee.keyCabinet.utils.usb.IUsbConnState;
|
import com.doumee.lib_coremodel.bean.event.ActionEventData;
|
import com.doumee.lib_coremodel.util.RecyclerHelp;
|
import com.example.datalibrary.api.FaceApi;
|
import com.example.datalibrary.model.User;
|
|
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.ThreadMode;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.List;
|
|
import dagger.hilt.android.AndroidEntryPoint;
|
|
@AndroidEntryPoint
|
public class ZWListActivity extends MyBaseActivity<ZWListVM, ZwlistActivityBinding> {
|
private ZwListRcvAdapter adapter;
|
|
@Override
|
public int getLayoutId() {
|
return R.layout.zwlist_activity;
|
}
|
|
@Override
|
public void initView(@Nullable Bundle savedInstanceState) {
|
isAddCountTimer = false;
|
normalConfig();
|
getDB().setModel(getVM());
|
adapter = new ZwListRcvAdapter(this, R.layout.zwlist_rcv_item);
|
RecyclerHelp.bindVL(this,getDB().recyclerView,30,false);
|
getDB().recyclerView.setAdapter(adapter);
|
}
|
|
@Override
|
public void initData(@Nullable Bundle savedInstanceState) {
|
getDatas();
|
}
|
|
private void getDatas(){
|
List<User> users = FaceApi.getInstance().getAllUserList();
|
List<FingerPrintDo> printDos = DaoManager.getFingerPrintDao().loadAll();
|
HashMap<String,User> mMap = new HashMap<>();
|
if(users!=null&&users.size()>0) {
|
for(User u:users){
|
mMap.put(u.getUserId(),u);
|
}
|
}
|
LinkedHashMap<String,FingerPrintVo> pMap = new LinkedHashMap<>();
|
List<FingerPrintDo> updateList = new ArrayList<>();
|
for(FingerPrintDo d:printDos){
|
FingerPrintVo vo = null;
|
if(pMap.containsKey(d.getMemberId()+"")){
|
vo = pMap.get(d.getMemberId()+"");
|
}else {
|
vo = new FingerPrintVo();
|
pMap.put(d.getMemberId()+"",vo);
|
}
|
vo.setMemberName(d.getMemberName());
|
vo.setMemberId(d.getMemberId());
|
vo.setFace(d.getFace());
|
vo.setGroupId(d.getGroupId());
|
vo.setCount(vo.getCount()+1);
|
if(mMap.containsKey(d.getMemberId()+"")){
|
//更新信息
|
User user = mMap.get(d.getMemberId()+"");
|
d.setFace(user.getImageName());
|
d.setMemberName(user.getUserName());
|
updateList.add(d);
|
}
|
}
|
HashMap<String,Integer> numMap = new HashMap<>();
|
for(String key:pMap.keySet()){
|
numMap.put(key,pMap.get(key).getCount());
|
}
|
List<FingerPrintVo> vos = new ArrayList<>();
|
if(users!=null&&users.size()>0) {
|
for(User u:users){
|
FingerPrintVo vo = new FingerPrintVo();
|
vo.setMemberId(Integer.parseInt(u.getUserId()));
|
vo.setMemberName(u.getUserName());
|
vo.setFace(u.getImageName());
|
vo.setGroupId(u.getGroupId());
|
if(numMap.containsKey(u.getUserId())){
|
vo.setCount(numMap.get(u.getUserId()));
|
pMap.remove(u.getUserId());
|
}
|
vos.add(vo);
|
}
|
}
|
if(pMap.size()>0){
|
for(String key:pMap.keySet()){
|
vos.add(pMap.get(key));
|
}
|
}
|
if(vos.size()>0) {
|
adapter.refreshData(vos);
|
getVM().emptyVisibility.set(View.GONE);
|
}else {
|
getVM().emptyVisibility.set(View.VISIBLE);
|
}
|
if(updateList.size()>0){
|
DaoManager.getFingerPrintDao().update(updateList.toArray(new FingerPrintDo[updateList.size()]));
|
}
|
}
|
|
@Override
|
protected void doRegister(int type, ActionEventData data) {
|
switch (type){
|
default:
|
break;
|
}
|
}
|
|
@Subscribe
|
public void RefreshFingerEvent(RefreshFingerEvent e){
|
if(!isFinishing()){
|
getDatas();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
|
}
|
|
}
|