From 96232cdfabd4488b8e1d4d37fa36293adcbe2879 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 15 三月 2024 09:37:47 +0800
Subject: [PATCH] 修復已知bug

---
 app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java |   87 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 71 insertions(+), 16 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
index 588fcaf..88e8d1b 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
@@ -6,17 +6,28 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.dayu.recharge.adapter.NewCardAdapter;
 import com.dayu.recharge.adapter.RechargeAdapter;
 import com.dayu.recharge.databinding.ActivityRechargeListBinding;
 import com.dayu.recharge.dbBean.RechargeBean;
+import com.dayu.recharge.dbBean.UserCardBean;
 import com.dayu.recharge.model.RechargeListModel;
 import com.dayu.recharge.utils.ArithUtil;
 import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.datepicker.CustomDatePicker;
 import com.dayu.recharge.view.datepicker.DateFormatUtils;
+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;
 
 /**
  * Copyright (C), 2023,
@@ -35,27 +46,38 @@
     long beginTime;
     long endTime;
 
+    int page = 0;
+
+    //姣忛〉鏁版嵁鏉℃暟
+    int limit = 30;
+    RefreshLayout myRefreshLayout;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         rechargeListBinding = ActivityRechargeListBinding.inflate(LayoutInflater.from(this));
         setContentView(rechargeListBinding.getRoot());
         setRightButton();
-        setData();
         initDatePicker();
-        getTotal();
+        initList();
+        getList();
     }
 
-    private void setData() {
-
-        RechargeListModel rechargeListModel = new RechargeListModel(this);
-        rechargeListModel.getRechargeList().observe(this, myList -> {
-            rechargeList.clear();
-            rechargeList.addAll(myList);
-            adapter.notifyDataSetChanged();
+    private void initList() {
+        myRefreshLayout = (RefreshLayout) rechargeListBinding.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 RechargeAdapter(this, rechargeList);
-        rechargeListBinding.rechargeList.setAdapter(adapter);
+        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+        rechargeListBinding.recyclerView.setLayoutManager(layoutManager);
+        rechargeListBinding.recyclerView.setAdapter(adapter);
     }
 
     private void getTotal() {
@@ -65,9 +87,46 @@
                 double b = Double.parseDouble(rechargeList.get(i).getMorny());
                 total = ArithUtil.add(total, b);
             }
-            rechargeListBinding.rechargeTotal.setText("绱鍏呭�硷細" + String.valueOf(total) + "鍏�");
+            rechargeListBinding.rechargeTotal.setText("宸插姞杞芥暟鎹疮璁″厖鍊硷細" + String.valueOf(total) + "鍏�");
         }
 
+    }
+
+    private void getList() {
+        // 鍒涘缓涓�涓� Observable
+        Observable<List<RechargeBean>> observable = Observable.create(emitter -> {
+            // 鍦ㄨ繖閲屾墽琛屽紓姝ユ搷浣�
+            List<RechargeBean> beanList;
+            if (beginTime == 0 && endTime == 0) {
+                beanList = asynchBaseDao.rechargeDao().findAll(page * limit, limit);
+            } else {
+                beanList = asynchBaseDao.rechargeDao().ansyFindByTime(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) {
+                                rechargeList.addAll(result);
+                            }
+                            adapter.notifyDataSetChanged();
+                            getTotal();
+                        },
+                        error -> {
+                            // 澶勭悊閿欒
+                            System.err.println("Error: " + error.getMessage());
+                        }
+                );
     }
 
 
@@ -109,12 +168,8 @@
                     TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     endTime = endTime + (1000 * 60 * 60 * 24) - 1;
-                    List<RechargeBean> userList = baseDao.rechargeDao().findByTime(beginTime, endTime);
                     rechargeList.clear();
-                    rechargeList.addAll(userList);
-                    adapter.notifyDataSetChanged();
-                    getTotal();
-
+                    getList();
                 }
             }
         }, beginTimestamp, endTimestamp);

--
Gitblit v1.8.0