Browse Source

声部选择 数据接口处理

邓琴文 3 years ago
parent
commit
766a6d268e

+ 0 - 1
student/src/main/java/com/cooleshow/student/contract/LiveCourseContract.java

@@ -16,7 +16,6 @@ public interface LiveCourseContract {
 
         void onGetCourseError(int page);
 
-        void querySubjectItemSuccess(List<QuerySubjectBean> data);
     }
 
     interface Presenter {

+ 4 - 0
student/src/main/java/com/cooleshow/student/contract/MineCourseContract.java

@@ -1,6 +1,9 @@
 package com.cooleshow.student.contract;
 
 import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.student.bean.QuerySubjectBean;
+
+import java.util.List;
 
 /**
  * 创建日期:2022/5/30 9:26
@@ -10,6 +13,7 @@ import com.cooleshow.base.presenter.view.BaseView;
  */
 public interface MineCourseContract {
     interface MineCourseView extends BaseView {
+        void querySubjectItemSuccess(List<QuerySubjectBean> data);
     }
 
     interface Presenter {

+ 0 - 2
student/src/main/java/com/cooleshow/student/contract/MinePracticeCourseContract.java

@@ -17,8 +17,6 @@ public interface MinePracticeCourseContract {
         void onGetPracticeCourseSuccess(int page, PracticeCourseListBean sparringCourseBean);
 
         void onGetCourseError(int page);
-
-        void querySubjectItemSuccess(List<QuerySubjectBean> data);
     }
 
     interface Presenter {

+ 0 - 2
student/src/main/java/com/cooleshow/student/contract/VideoCourseContract.java

@@ -17,8 +17,6 @@ public interface VideoCourseContract {
 
         void onGetCourseError(int page);
 
-        void querySubjectItemSuccess(List<QuerySubjectBean> data);
-
     }
 
     interface Presenter {

+ 0 - 17
student/src/main/java/com/cooleshow/student/presenter/course/LiveCoursePresenter.java

@@ -55,21 +55,4 @@ public class LiveCoursePresenter extends BasePresenter<LiveCourseContract.LiveCo
             }
         });
     }
-
-    public void querySubjectItem() {
-        addSubscribe(create(APIService.class).querySubjectItem(), new BaseObserver<List<QuerySubjectBean>>(getView()) {
-            @Override
-            protected void onSuccess(List<QuerySubjectBean> data) {
-                if (getView() != null) {
-                    getView().querySubjectItemSuccess(data);
-                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-
-            }
-        });
-    }
 }

+ 21 - 0
student/src/main/java/com/cooleshow/student/presenter/course/MineCoursePresenter.java

@@ -1,8 +1,13 @@
 package com.cooleshow.student.presenter.course;
 
 import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.student.api.APIService;
+import com.cooleshow.student.bean.QuerySubjectBean;
 import com.cooleshow.student.contract.MineCourseContract;
 
+import java.util.List;
+
 /**
  * 创建日期:2022/5/30 9:25
  *
@@ -11,4 +16,20 @@ import com.cooleshow.student.contract.MineCourseContract;
  */
 public class MineCoursePresenter extends BasePresenter<MineCourseContract.MineCourseView> implements MineCourseContract.Presenter {
 
+    public void querySubjectItem() {
+        addSubscribe(create(APIService.class).querySubjectItem(), new BaseObserver<List<QuerySubjectBean>>(getView()) {
+            @Override
+            protected void onSuccess(List<QuerySubjectBean> data) {
+                if (getView() != null) {
+                    getView().querySubjectItemSuccess(data);
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+
+            }
+        });
+    }
 }

+ 0 - 16
student/src/main/java/com/cooleshow/student/presenter/course/MinePracticeCoursePresenter.java

@@ -57,20 +57,4 @@ public class MinePracticeCoursePresenter extends BasePresenter<MinePracticeCours
         });
     }
 
-    public void querySubjectItem() {
-        addSubscribe(create(APIService.class).querySubjectItem(), new BaseObserver<List<QuerySubjectBean>>(getView()) {
-            @Override
-            protected void onSuccess(List<QuerySubjectBean> data) {
-                if (getView() != null) {
-                    getView().querySubjectItemSuccess(data);
-                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-
-            }
-        });
-    }
 }

+ 0 - 17
student/src/main/java/com/cooleshow/student/presenter/course/VideoCoursePresenter.java

@@ -55,21 +55,4 @@ public class VideoCoursePresenter extends BasePresenter<VideoCourseContract.Vide
             }
         });
     }
-
-    public void querySubjectItem() {
-        addSubscribe(create(APIService.class).querySubjectItem(), new BaseObserver<List<QuerySubjectBean>>(getView()) {
-            @Override
-            protected void onSuccess(List<QuerySubjectBean> data) {
-                if (getView() != null) {
-                    getView().querySubjectItemSuccess(data);
-                }
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-
-            }
-        });
-    }
 }

+ 63 - 95
student/src/main/java/com/cooleshow/student/ui/course/LiveCourseFragment.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.ui.course;
 
+import android.annotation.SuppressLint;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -73,6 +74,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
         LiveCourseFragment fragment = new LiveCourseFragment();
         return fragment;
     }
+
     @Override
     protected FragmentLiveCourseLayoutBinding getLayoutView() {
         return FragmentLiveCourseLayoutBinding.inflate(getLayoutInflater());
@@ -89,10 +91,11 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
         mViewBinding.tvCourseStatus.setOnClickListener(this);
         mViewBinding.tvAgency.setOnClickListener(this);
     }
+
     @Override
     public void onResume() {
         super.onResume();
-        if(isFirstLoad){
+        if (isFirstLoad) {
             isFirstLoad = false;
             reBuildFilter(null, CourseConstants.COURSE_FILTER_ALL);
         }
@@ -104,6 +107,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
         reBuildFilter(currentSelectDate, currentCourseFilterStatus);
         isFirstLoad = false;
     }
+
     private void buildDefaultCourseStatusFilterList() {
         mCourseFilterStatusBeans = new ArrayList<>();
         mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseConstants.COURSE_FILTER_ALL, "全部"));
@@ -128,41 +132,30 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
 
     @Override
     protected void initData() {
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                currentPage = 1;
-                queryCourse(true);
-            }
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryCourse(true);
         });
 
         mAdapter = new LiveCourseListAdapter(R.layout.item_live_course_list_layout);
-//        mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
-        mAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                //上拉加载
-                if (hasNext) {
-                    currentPage++;
-                    queryCourse(false);
-                } else {
-                    mAdapter.getLoadMoreModule().loadMoreEnd();
-                }
+        mAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                currentPage++;
+                queryCourse(false);
+            } else {
+                mAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
         mViewBinding.recyclerView.setAdapter(mAdapter);
-        presenter.querySubjectItem();
         buildDefaultCourseStatusFilterList();
-        mAdapter.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                LiveCourseListBean.RowsBean item = (LiveCourseListBean.RowsBean) adapter.getItem(position);
-                ARouter.getInstance()
-                        .build(RouterPath.WebCenter.ACTIVITY_HTML)
-                        .withString(WebConstants.WEB_URL, WebConstants.TEACHER_LIVE_DETAIL + "?groupId=" + item.courseGroupId)
-                        .navigation();
-            }
+        mAdapter.setOnItemClickListener((adapter, view, position) -> {
+            LiveCourseListBean.RowsBean item = (LiveCourseListBean.RowsBean) adapter.getItem(position);
+            ARouter.getInstance()
+                    .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                    .withString(WebConstants.WEB_URL, WebConstants.TEACHER_LIVE_DETAIL + "?groupId=" + item.courseGroupId)
+                    .navigation();
         });
     }
 
@@ -180,6 +173,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
     }
 
 
+    @SuppressLint("NotifyDataSetChanged")
     @Override
     public void onGetLiveCourseSuccess(int page, LiveCourseListBean liveCourseListBean) {
         if (isDetached()) {
@@ -242,22 +236,16 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
         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(v1 -> pvTime.dismiss());
+            }).setLayoutRes(com.cooleshow.base.R.layout.pickerview_default_layout, 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(v12 -> {
+                    pvTime.returnData();
+                    pvTime.dismiss();
+                });
+                ivCancel.setOnClickListener(v1 -> pvTime.dismiss());
 
-                }
             }).setLineSpacingMultiplier(2.5f)
                     .setType(new boolean[]{true, true, false, false, false, false})// 默认全部显示
                     .setTextColorCenter(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a))//设置选中项的颜色
@@ -278,29 +266,23 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
             View popupContentView = LayoutInflater.from(requireContext()).inflate(com.cooleshow.base.R.layout.list_popu_layout, null);
             RecyclerView recyclerView = popupContentView.findViewById(R.id.recyclerView);
             View bg = popupContentView.findViewById(com.cooleshow.base.R.id.view);
-            bg.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (mPopupWindow != null) {
-                        mPopupWindow.dismiss();
-                    }
+            bg.setOnClickListener(v -> {
+                if (mPopupWindow != null) {
+                    mPopupWindow.dismiss();
                 }
             });
             mCourseStatusFilterAdapter = new CourseStatusFilterAdapter(com.cooleshow.base.R.layout.notice_popu_list_item);
-            mCourseStatusFilterAdapter.setOnItemClickListener(new OnItemClickListener() {
-                @Override
-                public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                    Object object = mCourseStatusFilterAdapter.getData().get(position);
-                    if (object instanceof CourseFilterStatusBean) {
-                        if (mCourseStatusFilterAdapter != null) {
-                            mCourseStatusFilterAdapter.setSelect(position);
-                        }
-                        CourseFilterStatusBean filterStatusBean = (CourseFilterStatusBean) object;
-                        mViewBinding.tvCourseStatus.setText(filterStatusBean.showText);
-                        reBuildFilter(currentSelectDate, filterStatusBean.value);
+            mCourseStatusFilterAdapter.setOnItemClickListener((adapter, view, position) -> {
+                Object object = mCourseStatusFilterAdapter.getData().get(position);
+                if (object instanceof CourseFilterStatusBean) {
+                    if (mCourseStatusFilterAdapter != null) {
+                        mCourseStatusFilterAdapter.setSelect(position);
                     }
-                    mPopupWindow.dismiss();
+                    CourseFilterStatusBean filterStatusBean = (CourseFilterStatusBean) object;
+                    mViewBinding.tvCourseStatus.setText(filterStatusBean.showText);
+                    reBuildFilter(currentSelectDate, filterStatusBean.value);
                 }
+                mPopupWindow.dismiss();
             });
             recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
             recyclerView.setAdapter(mCourseStatusFilterAdapter);
@@ -325,7 +307,7 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
             return;
         }
 
-        if (v.getId()==R.id.tv_agency){
+        if (v.getId() == R.id.tv_agency) {
             //选择声部
             selectSubject();
             return;
@@ -334,47 +316,33 @@ public class LiveCourseFragment extends BaseMVPFragment<FragmentLiveCourseLayout
 
     private List<QuerySubjectBean> subjectBeanList = new ArrayList<>();
 
-    @Override
     public void querySubjectItemSuccess(List<QuerySubjectBean> data) {
         subjectBeanList.clear();
-        subjectBeanList.add(new QuerySubjectBean("全部声部",0));
+        subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
         subjectBeanList.addAll(data);
     }
 
     private OptionsPickerView pvOptions;
+
     private void selectSubject() {
-        pvOptions = new OptionsPickerBuilder(getContext(), new OnOptionsSelectListener() {
-            @Override
-            public void onOptionsSelect(int options1, int options2, int options3, View v) {
-                currentSubjectId=subjectBeanList.get(options1).id;
-                mViewBinding.tvAgency.setText(subjectBeanList.get(options1).name);
-                queryCourse(true);
-            }
-        })
-                .setLayoutRes(R.layout.pickerview_address_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) {
-                                pvOptions.returnData();
-                                pvOptions.dismiss();
-                            }
-                        });
-                        ivCancel.setOnClickListener(new View.OnClickListener() {
-                            @Override
-                            public void onClick(View v) {
-                                pvOptions.dismiss();
-                            }
-                        });
+        if (subjectBeanList.size() == 0) {
+            subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
+        }
+        pvOptions = new OptionsPickerBuilder(getContext(), (options1, options2, options3, v) -> {
+            currentSubjectId = subjectBeanList.get(options1).id;
+            mViewBinding.tvAgency.setText(subjectBeanList.get(options1).name);
+            queryCourse(true);
+        }).setLayoutRes(R.layout.pickerview_address_layout, 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(v12 -> {
+                pvOptions.returnData();
+                pvOptions.dismiss();
+            });
+            ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
 
-                    }
-                })
-                .isDialog(false)
-                .build();
+        }).isDialog(false).build();
         pvOptions.setPicker(subjectBeanList);
         pvOptions.show();
 

+ 30 - 7
student/src/main/java/com/cooleshow/student/ui/course/MineCourseActivity.java

@@ -12,6 +12,8 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.student.adapter.MineCoursePagerAdapter;
+import com.cooleshow.student.bean.QuerySubjectBean;
+import com.cooleshow.student.contract.MineCourseContract;
 import com.cooleshow.student.databinding.ActivityMineCourseBinding;
 import com.cooleshow.student.presenter.course.MineCoursePresenter;
 import com.google.android.material.tabs.TabLayout;
@@ -30,11 +32,17 @@ import io.rong.imkit.utils.StatusBarUtil;
  * 类说明:
  */
 @Route(path = RouterPath.CourseCenter.TEACHER_MINE_COURSE)
-public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBinding, MineCoursePresenter> {
+public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBinding, MineCoursePresenter> implements MineCourseContract.MineCourseView {
 
 
     private TabLayout tabLayout;
     private ViewPager2 viewPager;
+    private List<String> titles = new ArrayList<String>(Arrays.asList("陪练课", "直播课", "视频课"));
+    private List<BaseMVPFragment> fragments = new ArrayList<>();
+    private MinePracticeCourseFragment mMinePracticeCourseFragment;
+    private LiveCourseFragment mLiveCourseFragment;
+    private VideoCourseFragment mVideoCourseFragment;
+
     @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "我的课程");
@@ -42,11 +50,13 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
         viewPager = viewBinding.viewpager;
         viewPager.setCurrentItem(0);
     }
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         StatusBarUtil.setStatusBarDarkTheme(this, true);
     }
+
     @Override
     protected ActivityMineCourseBinding getLayoutView() {
         return ActivityMineCourseBinding.inflate(getLayoutInflater());
@@ -61,15 +71,16 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
     public void initData() {
         super.initData();
         initTabLayoutAndViewPager();
+        presenter.querySubjectItem();
     }
 
-    private List<String> titles = new ArrayList<String>(Arrays.asList("陪练课", "直播课", "视频课"));
-    private List<BaseMVPFragment> fragments = new ArrayList<>();
-
     private void initTabLayoutAndViewPager() {
-        fragments.add(MinePracticeCourseFragment.newInstance());
-        fragments.add(LiveCourseFragment.newInstance());
-        fragments.add(VideoCourseFragment.newInstance());
+        mMinePracticeCourseFragment = MinePracticeCourseFragment.newInstance();
+        mLiveCourseFragment = LiveCourseFragment.newInstance();
+        mVideoCourseFragment = VideoCourseFragment.newInstance();
+        fragments.add(mMinePracticeCourseFragment);
+        fragments.add(mLiveCourseFragment);
+        fragments.add(mVideoCourseFragment);
         MineCoursePagerAdapter mineCoursePageAdapter = new MineCoursePagerAdapter(this);
         mineCoursePageAdapter.setFragments(fragments);
         viewPager.setAdapter(mineCoursePageAdapter);
@@ -107,4 +118,16 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
         });
     }
 
+    @Override
+    public void querySubjectItemSuccess(List<QuerySubjectBean> data) {
+        if (mMinePracticeCourseFragment != null) {
+            mMinePracticeCourseFragment.querySubjectItemSuccess(data);
+        }
+        if (mLiveCourseFragment != null) {
+            mLiveCourseFragment.querySubjectItemSuccess(data);
+        }
+        if (mVideoCourseFragment != null) {
+            mVideoCourseFragment.querySubjectItemSuccess(data);
+        }
+    }
 }

+ 32 - 55
student/src/main/java/com/cooleshow/student/ui/course/MinePracticeCourseFragment.java

@@ -147,12 +147,9 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
 
     @Override
     protected void initData() {
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                currentPage = 1;
-                queryCourse(true);
-            }
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryCourse(true);
         });
 
         mAdapter = new PracticeCourseListAdapter(R.layout.item_sparring_course_list_layout);
@@ -181,7 +178,6 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
         mViewBinding.recyclerView.setAdapter(mAdapter);
         buildDefaultCourseStatusFilterList();
-        presenter.querySubjectItem();
     }
 
     private void queryCourse(boolean isShowLoading) {
@@ -248,7 +244,6 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
 
     private List<QuerySubjectBean> subjectBeanList = new ArrayList<>();
 
-    @Override
     public void querySubjectItemSuccess(List<QuerySubjectBean> data) {
         subjectBeanList.clear();
         subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
@@ -267,29 +262,17 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
         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();
-                        }
-                    });
+            }).setLayoutRes(com.cooleshow.base.R.layout.pickerview_default_layout, 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(v12 -> {
+                    pvTime.returnData();
+                    pvTime.dismiss();
+                });
+                ivCancel.setOnClickListener(v1 -> pvTime.dismiss());
 
-                }
-            })
-                    .setLineSpacingMultiplier(2.5f)
+            }).setLineSpacingMultiplier(2.5f)
                     .setType(new boolean[]{true, true, false, false, false, false})// 默认全部显示
                     .setTextColorCenter(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a))//设置选中项的颜色
                     .isDialog(false)//是否显示为对话框样式
@@ -309,29 +292,23 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
             View popupContentView = LayoutInflater.from(requireContext()).inflate(com.cooleshow.base.R.layout.list_popu_layout, null);
             RecyclerView recyclerView = popupContentView.findViewById(R.id.recyclerView);
             View bg = popupContentView.findViewById(com.cooleshow.base.R.id.view);
-            bg.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (mPopupWindow != null) {
-                        mPopupWindow.dismiss();
-                    }
+            bg.setOnClickListener(v -> {
+                if (mPopupWindow != null) {
+                    mPopupWindow.dismiss();
                 }
             });
             mCourseStatusFilterAdapter = new CourseStatusFilterAdapter(com.cooleshow.base.R.layout.notice_popu_list_item);
-            mCourseStatusFilterAdapter.setOnItemClickListener(new OnItemClickListener() {
-                @Override
-                public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                    Object object = mCourseStatusFilterAdapter.getData().get(position);
-                    if (object instanceof CourseFilterStatusBean) {
-                        if (mCourseStatusFilterAdapter != null) {
-                            mCourseStatusFilterAdapter.setSelect(position);
-                        }
-                        CourseFilterStatusBean filterStatusBean = (CourseFilterStatusBean) object;
-                        mViewBinding.tvCourseStatus.setText(filterStatusBean.showText);
-                        reBuildFilter(currentSelectDate, filterStatusBean.value);
+            mCourseStatusFilterAdapter.setOnItemClickListener((adapter, view, position) -> {
+                Object object = mCourseStatusFilterAdapter.getData().get(position);
+                if (object instanceof CourseFilterStatusBean) {
+                    if (mCourseStatusFilterAdapter != null) {
+                        mCourseStatusFilterAdapter.setSelect(position);
                     }
-                    mPopupWindow.dismiss();
+                    CourseFilterStatusBean filterStatusBean = (CourseFilterStatusBean) object;
+                    mViewBinding.tvCourseStatus.setText(filterStatusBean.showText);
+                    reBuildFilter(currentSelectDate, filterStatusBean.value);
                 }
+                mPopupWindow.dismiss();
             });
             recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
             recyclerView.setAdapter(mCourseStatusFilterAdapter);
@@ -345,7 +322,10 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
     private OptionsPickerView pvOptions;
 
     private void selectSubject() {
-        pvOptions = new OptionsPickerBuilder(getContext(), (options1, options2, options3, v) -> {
+        if (subjectBeanList.size() == 0) {
+            subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
+        }
+            pvOptions = new OptionsPickerBuilder(getContext(), (options1, options2, options3, v) -> {
             currentSubjectId = subjectBeanList.get(options1).id;
             mViewBinding.tvAgency.setText(subjectBeanList.get(options1).name);
             queryCourse(true);
@@ -353,12 +333,9 @@ public class MinePracticeCourseFragment extends BaseMVPFragment<FragmentPractice
             //自定义布局中的控件初始化及事件处理
             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) {
-                    pvOptions.returnData();
-                    pvOptions.dismiss();
-                }
+            tvSubmit.setOnClickListener(v12 -> {
+                pvOptions.returnData();
+                pvOptions.dismiss();
             });
             ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
 

+ 24 - 62
student/src/main/java/com/cooleshow/student/ui/course/VideoCourseFragment.java

@@ -48,10 +48,6 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
     private int currentPage;
     private VideoCourseListAdapter mAdapter;
     private EmptyViewLayout mEmptyView;
-    private TextView mTvEmptyTip;
-    private ImageView mEmptyIcon;
-    private PopupWindow mPopupWindow;
-    private CourseStatusFilterAdapter mCourseStatusFilterAdapter;
     private boolean hasNext = true;
     private boolean isFirstLoad = true;
     private List<QuerySubjectBean> subjectBeanList = new ArrayList<>();
@@ -93,14 +89,6 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
         isFirstLoad = false;
     }
 
-    private void buildDefaultCourseStatusFilterList() {
-//        mCourseFilterStatusBeans = new ArrayList<>();
-//        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseFilterConstants.COURSE_FILTER_ALL, "全部"));
-//        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseFilterConstants.COURSE_FILTER_HAS_NOT_STARTED, "未开始"));
-//        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseFilterConstants.COURSE_FILTER_IN_PROGRESS, "进行中"));
-//        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseFilterConstants.COURSE_FILTER_COMPLETED, "已结束"));
-    }
-
     private void reBuildFilter() {
         currentPage = 1;
         queryCourse(true);
@@ -109,23 +97,15 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
 
     @Override
     protected void initData() {
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                refresh();
-            }
-        });
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> refresh());
 
         mAdapter = new VideoCourseListAdapter(R.layout.item_video_course_list_layout);
-        mAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                //上拉加载
-                if (hasNext) {
-                    loadMore();
-                } else {
-                    mAdapter.getLoadMoreModule().loadMoreEnd();
-                }
+        mAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                loadMore();
+            } else {
+                mAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
         mAdapter.getLoadMoreModule().setAutoLoadMore(true);
@@ -147,19 +127,13 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
         mViewBinding.recyclerView.addItemDecoration(itemDecoration);
         mViewBinding.recyclerView.setLayoutManager(gridLayoutManager);
         mViewBinding.recyclerView.setAdapter(mAdapter);
-        buildDefaultCourseStatusFilterList();
-        reBuildFilter();
-        mAdapter.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-                SelectMyGroupBean.RowsBean item = (SelectMyGroupBean.RowsBean) adapter.getItem(position);
-                ARouter.getInstance()
-                        .build(RouterPath.WebCenter.ACTIVITY_HTML)
-                        .withString(WebConstants.WEB_URL, WebConstants.TEACHER_VIDEO_DETAIL + "?groupId=" + item.id)
-                        .navigation();
-            }
+        mAdapter.setOnItemClickListener((adapter, view, position) -> {
+            SelectMyGroupBean.RowsBean item = (SelectMyGroupBean.RowsBean) adapter.getItem(position);
+            ARouter.getInstance()
+                    .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                    .withString(WebConstants.WEB_URL, WebConstants.TEACHER_VIDEO_DETAIL + "?groupId=" + item.id)
+                    .navigation();
         });
-        presenter.querySubjectItem();
     }
 
 
@@ -242,7 +216,6 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
         }
     }
 
-    @Override
     public void querySubjectItemSuccess(List<QuerySubjectBean> data) {
         subjectBeanList.clear();
         subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
@@ -266,34 +239,23 @@ public class VideoCourseFragment extends BaseMVPFragment<FragmentVideoCourseLayo
     }
 
     private void selectSubject() {
-        if(subjectBeanList.size() == 0){
-            return;
+        if (subjectBeanList.size() == 0) {
+            subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
         }
         pvOptions = new OptionsPickerBuilder(getContext(), (options1, options2, options3, v) -> {
             currentSubjectId = subjectBeanList.get(options1).id;
             mViewBinding.tvSubject.setText(subjectBeanList.get(options1).name);
             queryCourse(true);
-        }).setLayoutRes(R.layout.pickerview_address_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) {
-                        pvOptions.returnData();
-                        pvOptions.dismiss();
-                    }
-                });
-                ivCancel.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        pvOptions.dismiss();
-                    }
-                });
+        }).setLayoutRes(R.layout.pickerview_address_layout, 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(v12 -> {
+                pvOptions.returnData();
+                pvOptions.dismiss();
+            });
+            ivCancel.setOnClickListener(v1 -> pvOptions.dismiss());
 
-            }
         }).isDialog(false)
                 .build();
         pvOptions.setPicker(subjectBeanList);