From 5b602b536c5be89b2cbfd211025236fb41ba2fa3 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 18 十二月 2023 17:46:00 +0800
Subject: [PATCH] 充值记录分页加载 补卡用户列表分页加载 通信模块添加日志方便分析长时间链接后不能通讯问题

---
 app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java |  103 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
index f6c182b..053aaa1 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
@@ -8,13 +8,24 @@
 import android.view.View;
 import android.widget.AdapterView;
 
+import androidx.recyclerview.widget.LinearLayoutManager;
+
 import com.dayu.recharge.adapter.NewCardAdapter;
+import com.dayu.recharge.adapter.ReplacementAdapter;
 import com.dayu.recharge.databinding.ActivityReplacementBinding;
 import com.dayu.recharge.dbBean.UserCardBean;
 import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.EdtDialog;
+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;
 
 /**
  * Created by Android Studio.
@@ -24,42 +35,90 @@
  * 澶囨敞锛� 琛ュ崱鐣岄潰
  */
 public class ReplacementActivity extends BaseActivity {
-    ActivityReplacementBinding binding;
-    List<UserCardBean> userCardBeanList;
-    NewCardAdapter adapter;
+    ActivityReplacementBinding newcardListBinding;
+    List<UserCardBean> userCardBeanList = new ArrayList<>();
+    ReplacementAdapter adapter;
+    long beginTime;
+    long endTime;
+    int page = 0;
+
+    //姣忛〉鏁版嵁鏉℃暟
+    int limit = 30;
+    RefreshLayout myRefreshLayout;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        binding = ActivityReplacementBinding.inflate(LayoutInflater.from(this));
-        setContentView(binding.getRoot());
+        newcardListBinding = ActivityReplacementBinding.inflate(LayoutInflater.from(this));
+        setContentView(newcardListBinding.getRoot());
         setRightButton();
-        setData();
-        initView();
+        initList();
+        getList();
     }
 
-    private void initView() {
-        binding.newCardListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+
+    public void itemClick(View view) {
+        UserCardBean userCardBean = userCardBeanList.get((int) view.getTag());
+        Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class);
+        intent.putExtra("dbUserCard", userCardBean);
+        startActivity(intent);
+    }
+
+    private void initList() {
+        myRefreshLayout = (RefreshLayout) newcardListBinding.refreshLayout;
+        myRefreshLayout.setEnableRefresh(false);
+        myRefreshLayout.setRefreshFooter(new ClassicsFooter(this));
+        myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
             @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                UserCardBean userCardBean = userCardBeanList.get(position);
-                Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class);
-                intent.putExtra("dbUserCard", userCardBean);
-                startActivity(intent);
+            public void onLoadMore(RefreshLayout refreshlayout) {
+                page = page + 1;
+                getList();
             }
         });
+        adapter = new ReplacementAdapter(this, userCardBeanList);
+        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+        newcardListBinding.recyclerView.setLayoutManager(layoutManager);
+        newcardListBinding.recyclerView.setAdapter(adapter);
     }
 
-    private void setData() {
-        try {
-            userCardBeanList = baseDao.userCardDao().findAll();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        adapter = new NewCardAdapter(this, userCardBeanList);
-//        binding.newCardListView.setAdapter(adapter);
+
+    private void getList() {
+        // 鍒涘缓涓�涓� Observable
+        Observable<List<UserCardBean>> observable = Observable.create(emitter -> {
+            // 鍦ㄨ繖閲屾墽琛屽紓姝ユ搷浣�
+            List<UserCardBean> beanList;
+            if (beginTime == 0 && endTime == 0) {
+                beanList = asynchBaseDao.userCardDao().findAll(page * limit, limit);
+            } else {
+                beanList = asynchBaseDao.userCardDao().findByTime(beginTime, endTime);
+            }
+            // 灏嗙粨鏋滃彂閫佺粰瑙傚療鑰�
+            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());
+                        }
+                );
     }
 
+
     EdtDialog edtDialog;
 
     private void setRightButton() {

--
Gitblit v1.8.0