package com.dayu.qiheonlinelibrary.activity;
|
|
import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.baselibrary.utils.TipUtil;
|
import com.dayu.baselibrary.view.EdtDialog;
|
import com.dayu.qiheonlinelibrary.adapter.ManagerCardAdapter;
|
import com.dayu.qiheonlinelibrary.card.ManageCard;
|
import com.dayu.qiheonlinelibrary.databinding.ActivityManagerListQhlBinding;
|
import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
|
import com.scwang.smart.refresh.footer.ClassicsFooter;
|
import com.scwang.smart.refresh.layout.api.RefreshLayout;
|
import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
|
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
import io.reactivex.rxjava3.core.Observable;
|
import io.reactivex.rxjava3.schedulers.Schedulers;
|
|
/**
|
* author: zuo
|
* Date: 2024-05-09
|
* Time: 11:20
|
* 备注:管理卡选择本地用户界面
|
*/
|
public class ManagerListActivity extends BaseActivity {
|
|
ActivityManagerListQhlBinding binding;
|
List<UserCardBean> userCardBeanList = new ArrayList<>();
|
ManagerCardAdapter adapter;
|
int page = 0;
|
|
//每页数据条数
|
int limit = 30;
|
RefreshLayout myRefreshLayout;
|
EdtDialog edtDialog;
|
String cardNumber;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
binding = ActivityManagerListQhlBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
cardNumber = this.getIntent().getStringExtra("cardNumber");
|
initList();
|
getList();
|
setRightButton();
|
}
|
|
public void itemClick(View view) {
|
UserCardBean userCardBean = userCardBeanList.get((int) view.getTag());
|
ManageCard manageCard = new ManageCard();
|
String hex = userCardBean.getCardNumber();
|
hex = HexUtil.spaceHex(hex);
|
hex = HexUtil.HighLowHex(hex);
|
manageCard.setUserCard(hex);
|
Intent intent = new Intent(ManagerListActivity.this, NFCWreatActivity.class);
|
intent.putExtra("manageCard", manageCard);
|
// intent.putExtra("cardNumber", cardNumber);
|
intent.putExtra("userCardBean_manager", userCardBean);
|
startActivity(intent);
|
this.finish();
|
}
|
|
private void initList() {
|
myRefreshLayout = (RefreshLayout) binding.refreshLayout;
|
myRefreshLayout.setEnableRefresh(false);
|
myRefreshLayout.setRefreshFooter(new ClassicsFooter(this));
|
myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
|
@Override
|
public void onLoadMore(RefreshLayout refreshlayout) {
|
page = page + 1;
|
getList();
|
}
|
});
|
adapter = new ManagerCardAdapter(this, userCardBeanList);
|
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
|
binding.recyclerView.setLayoutManager(layoutManager);
|
binding.recyclerView.setAdapter(adapter);
|
}
|
|
|
private void getList() {
|
// 创建一个 Observable
|
Observable<List<UserCardBean>> observable = Observable.create(emitter -> {
|
// 在这里执行异步操作
|
List<UserCardBean> beanList;
|
beanList = asynchBaseDao.userCardDao().findAll(page * limit, limit);
|
// 将结果发送给观察者
|
emitter.onNext(beanList);
|
emitter.onComplete();
|
});
|
// 订阅观察者
|
observable.subscribeOn(Schedulers.io()) // 指定在 IO 线程执行
|
.observeOn(AndroidSchedulers.mainThread()) // 指定在单一线程观察结果
|
.subscribe(
|
result -> {
|
// 在这里处理结果,这里是在主线程中
|
// System.out.println("Result: " + result);
|
if (result.size() < limit) {
|
myRefreshLayout.finishLoadMoreWithNoMoreData();
|
}
|
if (result != null && result.size() > 0) {
|
userCardBeanList.addAll(result);
|
}
|
adapter.notifyDataSetChanged();
|
},
|
error -> {
|
// 处理错误
|
System.err.println("Error: " + error.getMessage());
|
}
|
);
|
}
|
|
private void setRightButton() {
|
titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, v -> {
|
edtDialog = new EdtDialog(ManagerListActivity.this, "可输入姓名、身份证号、手机号搜索", new EdtDialog.DialogBack() {
|
@Override
|
public void onOk(String data) {
|
List<UserCardBean> beans = baseDao.userCardDao().findByData(data);
|
if (beans != null && beans.size() > 0) {
|
userCardBeanList.clear();
|
userCardBeanList.addAll(beans);
|
adapter.notifyDataSetChanged();
|
} else {
|
TipUtil.show("未找到该用户");
|
}
|
edtDialog.dismiss();
|
}
|
|
@Override
|
public void onCancel() {
|
edtDialog.dismiss();
|
}
|
});
|
edtDialog.show();
|
});
|
}
|
|
}
|