From d0a0e8e242e293ad35dfbee1217f1103302818cd Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期四, 03 四月 2025 10:22:48 +0800
Subject: [PATCH] refactor(generallibrary):重构卡片和用户搜索功能
---
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java | 188 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 188 insertions(+), 0 deletions(-)
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
new file mode 100644
index 0000000..4c5ab86
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
@@ -0,0 +1,188 @@
+package com.dayu.qihealonelibrary.activity;
+
+import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.baselibrary.view.datepicker.CustomDatePicker;
+import com.dayu.baselibrary.view.datepicker.DateFormatUtils;
+import com.dayu.qihealonelibrary.adapter.NewCardAdapter;
+import com.dayu.qihealonelibrary.databinding.ActivityNewcardListQhaBinding;
+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;
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-10 19:52
+ * Description: 鏂板崱娉ㄥ唽鍒楄〃鐣岄潰
+ */
+
+public class NewCardListActivityQHAlone extends QHAloneBaseActivity {
+
+
+ ActivityNewcardListQhaBinding newcardListBinding;
+ List<UserCardBean> userCardBeanList = new ArrayList<>();
+ NewCardAdapter adapter;
+ private CustomDatePicker beginDatePicker;
+ private CustomDatePicker endDatePicker;
+ long beginTime;
+ long endTime;
+
+ int page = 0;
+
+ //姣忛〉鏁版嵁鏉℃暟
+ int limit = 30;
+ RefreshLayout myRefreshLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ newcardListBinding = ActivityNewcardListQhaBinding.inflate(LayoutInflater.from(this));
+ setContentView(newcardListBinding.getRoot());
+ setRightButton();
+ initDatePicker();
+ initList();
+ getList();
+ }
+
+ private void initList() {
+ myRefreshLayout = (RefreshLayout) newcardListBinding.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 NewCardAdapter(this, userCardBeanList);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+ newcardListBinding.recyclerView.setLayoutManager(layoutManager);
+ newcardListBinding.recyclerView.setAdapter(adapter);
+ int totale = baseDao.userCardDao().getUserTotale();
+ newcardListBinding.userTotal.setText("寮�鎴锋暟锛�" + totale + "");
+ }
+
+
+ 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());
+ }
+ );
+ }
+
+
+ private void setRightButton() {
+ titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ beginDatePicker.show(System.currentTimeMillis());
+ }
+ });
+ }
+
+ private void initDatePicker() {
+ long beginTimestamp = DateFormatUtils.str2Long("2009-05-01", false);
+ final long endTimestamp = System.currentTimeMillis();
+
+ // 閫氳繃鏃堕棿鎴冲垵濮嬪寲鏃ユ湡锛屾绉掔骇鍒�
+ beginDatePicker = new CustomDatePicker(this, "閫夋嫨寮�濮嬫椂闂�", new CustomDatePicker.Callback() {
+ @Override
+ public void onTimeSelected(long timestamp) {
+ beginTime = timestamp;
+ endDatePicker.show(timestamp);
+ }
+ }, beginTimestamp, endTimestamp);
+ // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂�
+ beginDatePicker.setCancelable(false);
+ // 涓嶆樉绀烘椂鍜屽垎
+ beginDatePicker.setCanShowPreciseTime(false);
+ // 涓嶅厑璁稿惊鐜粴鍔�
+ beginDatePicker.setScrollLoop(false);
+ // 涓嶅厑璁告粴鍔ㄥ姩鐢�
+ beginDatePicker.setCanShowAnim(false);
+
+ endDatePicker = new CustomDatePicker(this, "閫夋嫨缁撴潫鏃堕棿", new CustomDatePicker.Callback() {
+ @Override
+ public void onTimeSelected(long timestamp) {
+ endTime = timestamp;
+ if ((endTime < beginTime) && endTime != beginTime) {
+ TipUtil.show(NewCardListActivityQHAlone.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+ } else {
+// try {
+// endTime = endTime + (1000 * 60 * 60 * 24) - 1;
+// List<UserCardBean> userList = baseDao.userCardDao().findByTime(beginTime, endTime);
+// userCardBeanList.clear();
+// userCardBeanList.addAll(userList);
+// adapter.notifyDataSetChanged();
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+ endTime = endTime + (1000 * 60 * 60 * 24) - 1;
+ userCardBeanList.clear();
+ getList();
+ }
+ }
+ }, beginTimestamp, endTimestamp);
+ // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂�
+ endDatePicker.setCancelable(false);
+ // 涓嶆樉绀烘椂鍜屽垎
+ endDatePicker.setCanShowPreciseTime(false);
+ // 涓嶅厑璁稿惊鐜粴鍔�
+ endDatePicker.setScrollLoop(false);
+ // 涓嶅厑璁告粴鍔ㄥ姩鐢�
+ endDatePicker.setCanShowAnim(false);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ endDatePicker.onDestroy();
+ beginDatePicker.onDestroy();
+ }
+}
--
Gitblit v1.8.0