Browse Source

修改一下加载更多的策略,加一个变量控制

Pq 3 years ago
parent
commit
5aefbee25b

+ 2 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/Constanst.java

@@ -10,4 +10,6 @@ import com.cooleshow.base.utils.AppUtils;
 public class Constanst {
     public static final String CLIENT = BaseApplication.Companion.isTeacherClient() ? "teacher" : "student";
     public static final String COLEXIUAPPA = "COLEXIUAPPA";//H5 js接口注册interfaceName
+    public static final int DEFAULT_DATA_SIZE = 10;//加载更多默认一页请求数据
+
 }

+ 15 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/CourseCommentContract.java

@@ -0,0 +1,15 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.ReceivedCommentListBean;
+
+/**
+ * Author by pq, Date on 2022/5/5.
+ */
+public interface CourseCommentContract {
+    interface CourseCommentView extends BaseView {
+    }
+
+    interface Presenter {
+    }
+}

+ 21 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/comment/CourseCommentPresenter.java

@@ -0,0 +1,21 @@
+package com.cooleshow.teacher.presenter.comment;
+
+import android.text.TextUtils;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.ReceivedCommentListBean;
+import com.cooleshow.teacher.contract.CourseCommentContract;
+import com.cooleshow.teacher.contract.ReceivedCommentContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * Author by pq, Date on 2022/5/5.
+ */
+public class CourseCommentPresenter extends BasePresenter<CourseCommentContract.CourseCommentView> implements CourseCommentContract.Presenter {
+
+}

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/comment/ReceivedCommentPresenter.java

@@ -2,6 +2,7 @@ package com.cooleshow.teacher.presenter.comment;
 
 import android.text.TextUtils;
 
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -31,7 +32,7 @@ public class ReceivedCommentPresenter extends BasePresenter<ReceivedCommentContr
             if (!TextUtils.isEmpty(studentName)) {
                 jsonObject.putOpt("studentName", studentName);
             }
-            jsonObject.putOpt("rows", 10);
+            jsonObject.putOpt("rows", Constanst.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
             e.printStackTrace();
         }

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/course/LiveCoursePresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.presenter.course;
 
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -31,7 +32,7 @@ public class LiveCoursePresenter extends BasePresenter<LiveCourseContract.LiveCo
                 jsonObject.putOpt("subjectId", subjectId);
             }
             jsonObject.putOpt("page", page);
-            jsonObject.putOpt("rows", 10);
+            jsonObject.putOpt("rows", Constanst.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
             e.printStackTrace();
         }

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCoursePresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.presenter.course;
 
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -29,7 +30,7 @@ public class SparringCoursePresenter extends BasePresenter<SparringCourseContrac
                 jsonObject.putOpt("subjectId", subjectId);
             }
             jsonObject.putOpt("page", page);
-            jsonObject.putOpt("rows", 10);
+            jsonObject.putOpt("rows", Constanst.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
             e.printStackTrace();
         }

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/course/VideoCoursePresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.presenter.course;
 
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -29,7 +30,7 @@ public class VideoCoursePresenter extends BasePresenter<VideoCourseContract.Vide
                 jsonObject.putOpt("subjectId", subjectId);
             }
             jsonObject.putOpt("page", page);
-            jsonObject.putOpt("rows", 10);
+            jsonObject.putOpt("rows", Constanst.DEFAULT_DATA_SIZE);
         } catch (JSONException e) {
             e.printStackTrace();
         }

+ 22 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/comment/CourseCommentActivity.java

@@ -0,0 +1,22 @@
+package com.cooleshow.teacher.ui.comment;
+
+import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.teacher.contract.CourseCommentContract;
+import com.cooleshow.teacher.databinding.ActivityCourseCommentLayoutBinding;
+import com.cooleshow.teacher.presenter.comment.CourseCommentPresenter;
+
+/**
+ * Author by pq, Date on 2022/5/5.
+ */
+public class CourseCommentActivity extends BaseActivity<ActivityCourseCommentLayoutBinding> {
+    @Override
+    protected void initView() {
+
+    }
+
+    @Override
+    protected ActivityCourseCommentLayoutBinding getLayoutView() {
+        return ActivityCourseCommentLayoutBinding.inflate(getLayoutInflater());
+    }
+}

+ 33 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/comment/CourseCommentNoReplyFragment.java

@@ -0,0 +1,33 @@
+package com.cooleshow.teacher.ui.comment;
+
+import android.view.View;
+
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.teacher.contract.CourseCommentContract;
+import com.cooleshow.teacher.databinding.FragmentCourseCommentNoReplyLayoutBinding;
+import com.cooleshow.teacher.presenter.comment.CourseCommentPresenter;
+
+/**
+ * Author by pq, Date on 2022/5/5.
+ */
+public class CourseCommentNoReplyFragment extends BaseMVPFragment<FragmentCourseCommentNoReplyLayoutBinding, CourseCommentPresenter> implements CourseCommentContract.CourseCommentView {
+    @Override
+    protected FragmentCourseCommentNoReplyLayoutBinding getLayoutView() {
+        return FragmentCourseCommentNoReplyLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected CourseCommentPresenter createPresenter() {
+        return new CourseCommentPresenter();
+    }
+
+    @Override
+    protected void initView(View rootView) {
+
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+}

+ 14 - 19
teacher/src/main/java/com/cooleshow/teacher/ui/comment/ReceivedCommentActivity.java

@@ -12,6 +12,7 @@ import com.bigkoo.pickerview.builder.TimePickerBuilder;
 import com.bigkoo.pickerview.listener.CustomListener;
 import com.bigkoo.pickerview.view.TimePickerView;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.TimeUtils;
@@ -47,6 +48,7 @@ public class ReceivedCommentActivity extends BaseMVPActivity<ActivityReceivedCom
     private ReceivedCommentListAdapter mListAdapter;
     private View mEmptyView;
     private TextView mTvEmptyTip;
+    private boolean hasNext = true;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -85,27 +87,14 @@ public class ReceivedCommentActivity extends BaseMVPActivity<ActivityReceivedCom
             @Override
             public void onLoadMore() {
                 //上拉加载
-                currentPage++;
-                queryComment(false);
+                if (hasNext) {
+                    currentPage++;
+                    queryComment(false);
+                } else {
+                    mListAdapter.getLoadMoreModule().loadMoreEnd();
+                }
             }
         });
-        TextWatcher textWatcher = new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        };
-        viewBinding.etTargetName.addTextChangedListener(textWatcher);
     }
 
     private void reBuildFilter(Date date, String targetName) {
@@ -122,6 +111,10 @@ public class ReceivedCommentActivity extends BaseMVPActivity<ActivityReceivedCom
         queryComment(true);
     }
 
+    private void checkHasNext(int dataSize) {
+        hasNext = dataSize >= Constanst.DEFAULT_DATA_SIZE;
+    }
+
     private void queryComment(boolean isShowLoading) {
         presenter.queryReceivedComment(isShowLoading, currentFilterDate, currentStudentName, currentPage);
     }
@@ -209,6 +202,7 @@ public class ReceivedCommentActivity extends BaseMVPActivity<ActivityReceivedCom
                     mListAdapter.getData().clear();
                     mListAdapter.notifyDataSetChanged();
                     if (commentListBean.rows != null && commentListBean.rows.size() > 0) {
+                        checkHasNext(commentListBean.rows.size());
                         mListAdapter.setNewInstance(commentListBean.rows);
                     } else {
                         showEmptyView();
@@ -219,6 +213,7 @@ public class ReceivedCommentActivity extends BaseMVPActivity<ActivityReceivedCom
                 if (mListAdapter != null) {
                     if (commentListBean.rows != null && commentListBean.rows.size() > 0) {
                         mListAdapter.getLoadMoreModule().loadMoreComplete();
+                        checkHasNext(commentListBean.rows.size());
                         mListAdapter.addData(commentListBean.rows);
                     } else {
                         mListAdapter.getLoadMoreModule().loadMoreEnd();

+ 15 - 2
teacher/src/main/java/com/cooleshow/teacher/ui/course/LiveCourseFragment.java

@@ -13,6 +13,7 @@ import com.bigkoo.pickerview.view.TimePickerView;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.PopupUtil;
@@ -53,6 +54,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
     private PopupWindow mPopupWindow;
     private ArrayList<CourseFilterStatusBean> mCourseFilterStatusBeans;
     private CourseStatusFilterAdapter mCourseStatusFilterAdapter;
+    private boolean hasNext = true;
 
     @Override
     protected FragmentLiveCourseLayoutBinding getLayoutView() {
@@ -108,8 +110,12 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
             @Override
             public void onLoadMore() {
                 //上拉加载
-                currentPage++;
-                queryCourse(false);
+                if (hasNext) {
+                    currentPage++;
+                    queryCourse(false);
+                } else {
+                    mAdapter.getLoadMoreModule().loadMoreEnd();
+                }
             }
         });
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
@@ -128,6 +134,11 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
         presenter.queryLiveCourse(isShowLoading, currentFilterDate, currentCourseFilterStatus, currentSubjectId, currentPage);
     }
 
+    private void checkHasNext(int dataSize) {
+        hasNext = dataSize >= Constanst.DEFAULT_DATA_SIZE;
+    }
+
+
     @Override
     public void onGetLiveCourseSuccess(int page, LiveCourseListBean liveCourseListBean) {
         if (isDetached()) {
@@ -141,6 +152,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
                     mAdapter.getData().clear();
                     mAdapter.notifyDataSetChanged();
                     if (liveCourseListBean.rows != null && liveCourseListBean.rows.size() > 0) {
+                        checkHasNext(liveCourseListBean.rows.size());
                         mAdapter.setNewInstance(liveCourseListBean.rows);
                     } else {
                         showEmptyView();
@@ -151,6 +163,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
                 if (mAdapter != null) {
                     if (liveCourseListBean.rows != null && liveCourseListBean.rows.size() > 0) {
                         mAdapter.getLoadMoreModule().loadMoreComplete();
+                        checkHasNext(liveCourseListBean.rows.size());
                         mAdapter.addData(liveCourseListBean.rows);
                     } else {
                         mAdapter.getLoadMoreModule().loadMoreEnd();

+ 15 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/course/SparringCourseFragment.java

@@ -14,6 +14,7 @@ import com.bigkoo.pickerview.view.TimePickerView;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LogUtils;
@@ -48,6 +49,7 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
     private Date currentSelectDate;
     private int currentSubjectId;
     private int currentPage;
+    private boolean hasNext = true;
     private SparringCourseListAdapter mAdapter;
     private View mEmptyView;
     private TextView mTvEmptyTip;
@@ -110,8 +112,12 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
             @Override
             public void onLoadMore() {
                 //上拉加载
-                currentPage++;
-                queryCourse(false);
+                if (hasNext) {
+                    currentPage++;
+                    queryCourse(false);
+                } else {
+                    mAdapter.getLoadMoreModule().loadMoreEnd();
+                }
             }
         });
         mAdapter.setOnItemClickListener(new OnItemClickListener() {
@@ -158,6 +164,7 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
                     mAdapter.getData().clear();
                     mAdapter.notifyDataSetChanged();
                     if (sparringCourseBean.rows != null && sparringCourseBean.rows.size() > 0) {
+                        checkHasNext(sparringCourseBean.rows.size());
                         mAdapter.setNewInstance(sparringCourseBean.rows);
                     } else {
                         showEmptyView();
@@ -168,15 +175,20 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
                 if (mAdapter != null) {
                     if (sparringCourseBean.rows != null && sparringCourseBean.rows.size() > 0) {
                         mAdapter.getLoadMoreModule().loadMoreComplete();
+                        checkHasNext(sparringCourseBean.rows.size());
                         mAdapter.addData(sparringCourseBean.rows);
                     } else {
-                        mAdapter.getLoadMoreModule().loadMoreEnd(false);
+                        mAdapter.getLoadMoreModule().loadMoreEnd();
                     }
                 }
             }
         }
     }
 
+    private void checkHasNext(int dataSize) {
+        hasNext = dataSize >= Constanst.DEFAULT_DATA_SIZE;
+    }
+
     @Override
     public void onGetCourseError(int page) {
         if (isDetached()) {

+ 14 - 2
teacher/src/main/java/com/cooleshow/teacher/ui/course/VideoCourseFragment.java

@@ -9,6 +9,7 @@ import android.widget.TextView;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.constanst.Constanst;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.PopupUtil;
@@ -41,6 +42,7 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
     private TextView mTvEmptyTip;
     private PopupWindow mPopupWindow;
     private CourseStatusFilterAdapter mCourseStatusFilterAdapter;
+    private boolean hasNext = true;
 
     @Override
     protected FragmentVideoCourseLayoutBinding getLayoutView() {
@@ -85,7 +87,11 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
             @Override
             public void onLoadMore() {
                 //上拉加载
-               loadMore();
+                if (hasNext) {
+                    loadMore();
+                } else {
+                    mAdapter.getLoadMoreModule().loadMoreEnd();
+                }
             }
         });
         mAdapter.getLoadMoreModule().setAutoLoadMore(true);
@@ -123,7 +129,7 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
         queryCourse(true);
     }
 
-    private void loadMore(){
+    private void loadMore() {
         currentPage++;
         queryCourse(false);
     }
@@ -135,6 +141,10 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
         presenter.queryVideoCourse(isShowLoading, currentSubjectId, currentPage);
     }
 
+    private void checkHasNext(int dataSize) {
+        hasNext = dataSize >= Constanst.DEFAULT_DATA_SIZE;
+    }
+
 
     @Override
     public void onGetVideoCourseSuccess(int page, VideoCourseListBean liveCourseListBean) {
@@ -150,6 +160,7 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
                     mAdapter.getData().clear();
                     mAdapter.notifyDataSetChanged();
                     if (liveCourseListBean.rows != null && liveCourseListBean.rows.size() > 0) {
+                        checkHasNext(liveCourseListBean.rows.size());
                         mAdapter.setNewInstance(liveCourseListBean.rows);
                     } else {
                         showEmptyView();
@@ -159,6 +170,7 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
                 //加载更多
                 if (mAdapter != null) {
                     if (liveCourseListBean.rows != null && liveCourseListBean.rows.size() > 0) {
+                        checkHasNext(liveCourseListBean.rows.size());
                         mAdapter.addData(liveCourseListBean.rows);
                         mAdapter.getLoadMoreModule().loadMoreComplete();
                     } else {

+ 65 - 0
teacher/src/main/res/layout/activity_course_comment_layout.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <RadioGroup
+        android:id="@+id/radio_group"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_40"
+        android:layout_marginTop="10dp"
+        android:gravity="center_vertical"
+        android:orientation="horizontal"
+        app:layout_constraintTop_toBottomOf="@+id/toolbar_include">
+
+        <RadioButton
+            android:id="@+id/rb_not_rated"
+            android:layout_width="@dimen/dp_0"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@null"
+            android:button="@null"
+            android:checked="true"
+            android:drawableBottom="@drawable/btn_radio_bottom_line_selector"
+            android:drawablePadding="@dimen/dp_8"
+            android:gravity="center"
+            android:text="未评价"
+            android:textColor="@drawable/btn_radio_text_color_selector_stu"
+            android:textSize="@dimen/sp_17"
+            android:textStyle="bold" />
+
+
+        <RadioButton
+            android:id="@+id/rb_completed"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@null"
+            android:button="@null"
+            android:drawableBottom="@drawable/btn_radio_bottom_line_selector"
+            android:drawablePadding="@dimen/dp_8"
+            android:gravity="center"
+            android:text="已评价"
+            android:textColor="@drawable/btn_radio_text_color_selector_stu"
+            android:textSize="@dimen/sp_17" />
+    </RadioGroup>
+
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/color_ededed"
+        app:layout_constraintTop_toBottomOf="@+id/radio_group" />
+
+    <androidx.viewpager2.widget.ViewPager2
+        android:id="@+id/view_pager"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_line" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 6 - 0
teacher/src/main/res/layout/fragment_course_comment_no_reply_layout.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+</androidx.constraintlayout.widget.ConstraintLayout>