Przeglądaj źródła

增加老师端我的课程页面-陪练课时间选择逻辑

Pq 3 lat temu
rodzic
commit
878031448d

+ 73 - 8
teacher/src/main/java/com/cooleshow/teacher/ui/course/SparringCourseFragment.java

@@ -1,8 +1,13 @@
 package com.cooleshow.teacher.ui.course;
 
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.TextView;
 
+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.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LogUtils;
@@ -17,20 +22,25 @@ import com.cooleshow.teacher.presenter.course.SparringCoursePresenter;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
+import java.util.Calendar;
+import java.util.Date;
+
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
 /**
  * Author by pq, Date on 2022/4/25.
  */
-public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCourseLayoutBinding, SparringCoursePresenter> implements SparringCourseContract.SparringCourseView {
+public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCourseLayoutBinding, SparringCoursePresenter> implements SparringCourseContract.SparringCourseView, View.OnClickListener {
     private String currentCourseFilterStatus = CourseFilterConstants.COURSE_FILTER_ALL;
     private String currentFilterDate;
+    private Date currentSelectDate;
     private int currentSubjectId;
     private int currentPage;
     private SparringCourseListAdapter mAdapter;
     private View mEmptyView;
     private TextView mTvEmptyTip;
+    private TimePickerView pvTime;
 
     @Override
     protected FragmentSparringCourseLayoutBinding getLayoutView() {
@@ -44,14 +54,17 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
 
     @Override
     protected void initView(View rootView) {
-        buildDefaultFilter();
-        mViewBinding.tvTime.setText(currentFilterDate);
+        reBuildFilter(null, CourseFilterConstants.COURSE_FILTER_ALL);
+        mViewBinding.tvTime.setOnClickListener(this);
     }
 
-    private void buildDefaultFilter() {
-        currentFilterDate = TimeUtils.getNowString(TimeUtils.getSafeDateFormat("yyyy-MM"));
-        currentCourseFilterStatus = CourseFilterConstants.COURSE_FILTER_ALL;
+    private void reBuildFilter(Date date, String status) {
+        currentSelectDate = date != null ? date : TimeUtils.getNowDate();
+        currentFilterDate = TimeUtils.date2String(currentSelectDate, TimeUtils.getSafeDateFormat("yyyy-MM"));
+        currentCourseFilterStatus = !TextUtils.isEmpty(status) ? status : CourseFilterConstants.COURSE_FILTER_ALL;
         currentPage = 1;
+        mViewBinding.tvTime.setText(currentFilterDate);
+        queryCourse();
     }
 
 
@@ -98,9 +111,9 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
                 //第一页
                 mViewBinding.refreshLayout.finishRefresh();
                 if (mAdapter != null) {
+                    mAdapter.getData().clear();
+                    mAdapter.notifyDataSetChanged();
                     if (sparringCourseBean.rows != null && sparringCourseBean.rows.size() > 0) {
-                        mAdapter.getData().clear();
-                        mAdapter.notifyDataSetChanged();
                         mAdapter.setNewInstance(sparringCourseBean.rows);
                     } else {
                         showEmptyView();
@@ -142,4 +155,56 @@ public class SparringCourseFragment extends BaseMVPFragment<FragmentSparringCour
         mTvEmptyTip.setText("暂无数据");
         mAdapter.setEmptyView(mEmptyView);
     }
+
+    private void showTimeSelectPicker() {
+        if (pvTime == null) {
+
+
+            pvTime = new TimePickerBuilder(requireContext(), (date, v) -> {//选中事件回调
+                reBuildFilter(date, currentCourseFilterStatus);
+            }).setLayoutRes(com.cooleshow.base.R.layout.pickerview_default_layout, new CustomListener() {
+                @Override
+                public void customLayout(View v) {
+                    //自定义布局中的控件初始化及事件处理
+                    final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_finish);
+                    TextView ivCancel = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_cancel);
+                    tvSubmit.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            pvTime.returnData();
+                            pvTime.dismiss();
+                        }
+                    });
+                    ivCancel.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            pvTime.dismiss();
+                        }
+                    });
+
+                }
+            })
+                    .setLineSpacingMultiplier(2.5f)
+                    .setType(new boolean[]{true, true, false, false, false, false})// 默认全部显示
+                    .setTextColorCenter(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a))//设置选中项的颜色
+                    .isDialog(false)//是否显示为对话框样式
+                    .setLabel("年", "月", "", "", "", "")
+                    .build();
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(currentSelectDate);
+        pvTime.setDate(calendar);
+        if (!pvTime.isShowing()) {
+            pvTime.show();
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.tv_time) {
+            //时间筛选
+            showTimeSelectPicker();
+            return;
+        }
+    }
 }

+ 2 - 0
teacher/src/main/res/layout/fragment_home_layout.xml

@@ -19,6 +19,8 @@
         android:layout_width="100dp"
         android:layout_height="50dp"
         android:text="我的课堂"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 </androidx.constraintlayout.widget.ConstraintLayout>