package com.dayu.qihealonelibrary.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.qihealonelibrary.adapter.ManagerCardAdapter; 
 | 
import com.dayu.qihealonelibrary.adapter.NewCardAdapter; 
 | 
import com.dayu.qihealonelibrary.card.ManageCard; 
 | 
import com.dayu.qihealonelibrary.databinding.ActivityManagerListQhaBinding; 
 | 
import com.dayu.qihealonelibrary.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 { 
 | 
  
 | 
    ActivityManagerListQhaBinding 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 = ActivityManagerListQhaBinding.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(); 
 | 
        }); 
 | 
    } 
 | 
  
 | 
} 
 |