Browse Source

优化学生端首页部分loading

Pq 3 months ago
parent
commit
c35864a8d3

+ 2 - 2
student/src/main/java/com/cooleshow/student/constants/CourseTableContract.java

@@ -18,7 +18,7 @@ public interface CourseTableContract {
     }
 
     interface Presenter {
-        void getCourseScheduleDateByMonth(String month);
-        void getCourseSchedulesWithDate(Date date);
+        void getCourseScheduleDateByMonth(String month,boolean isShowLoading);
+        void getCourseSchedulesWithDate(Date date,boolean isShowLoading);
     }
 }

+ 4 - 4
student/src/main/java/com/cooleshow/student/presenter/main/CourseTablePresenter.java

@@ -25,8 +25,8 @@ public class CourseTablePresenter extends BasePresenter<CourseTableContract.Cour
      * @param month
      */
     @Override
-    public void getCourseScheduleDateByMonth(String month) {
-        if (getView() != null) {
+    public void getCourseScheduleDateByMonth(String month, boolean isShowLoading) {
+        if (isShowLoading && getView() != null) {
             getView().showLoading();
         }
         JSONObject jsonObject = new JSONObject();
@@ -59,8 +59,8 @@ public class CourseTablePresenter extends BasePresenter<CourseTableContract.Cour
      * @param date
      */
     @Override
-    public void getCourseSchedulesWithDate(Date date) {
-        if (getView() != null) {
+    public void getCourseSchedulesWithDate(Date date, boolean isShowLoading) {
+        if (isShowLoading && getView() != null) {
             getView().showLoading();
         }
         JSONObject jsonObject = new JSONObject();

+ 62 - 56
student/src/main/java/com/cooleshow/student/presenter/main/HomePresenter.java

@@ -50,7 +50,13 @@ import io.reactivex.rxjava3.schedulers.Schedulers;
  */
 public class HomePresenter extends BasePresenter<HomeContract.HomeView> implements HomeContract.Presenter {
     public void appHome() {
-        getView().showLoading();
+        appHome(false);
+    }
+
+    public void appHome(boolean isShowLoading) {
+        if (isShowLoading && getView() != null) {
+            getView().showLoading();
+        }
         JSONObject jsonObject = new JSONObject();
         try {
             jsonObject.putOpt("platform", "android");
@@ -234,32 +240,32 @@ public class HomePresenter extends BasePresenter<HomeContract.HomeView> implemen
         Observable<BaseResponse<HomeStyleBean>> observable = create(APIService.class).getStylePage(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString()));
         Observable<BaseResponse<ArrayList<TempLiveTeacherListBean>>> tempLiveObservable = create(APIService.class).getTempLiveList();
         tempLiveObservable.flatMap(new Function<BaseResponse<ArrayList<TempLiveTeacherListBean>>, ObservableSource<BaseResponse<HomeStyleBean>>>() {
-            @Override
-            public ObservableSource<BaseResponse<HomeStyleBean>> apply(BaseResponse<ArrayList<TempLiveTeacherListBean>> arrayListBaseResponse) throws Throwable {
-                return observable.map(new Function<BaseResponse<HomeStyleBean>, BaseResponse<HomeStyleBean>>() {
                     @Override
-                    public BaseResponse<HomeStyleBean> apply(BaseResponse<HomeStyleBean> homeStyleBeanBaseResponse) throws Throwable {
-                        if (arrayListBaseResponse != null && page == 1) {
-                            //只有第一页合并添加数据
-                            ArrayList<TempLiveTeacherListBean> data = arrayListBaseResponse.getData();
-                            if (homeStyleBeanBaseResponse != null && homeStyleBeanBaseResponse.getData() != null) {
-                                List<HomeStyleBean.RowsBean> rows = homeStyleBeanBaseResponse.getData().rows;
-                                if (rows == null) {
-                                    rows = new ArrayList<>();
-                                }
-                                if (data != null && data.size() > 0) {
-                                    for (int i = data.size() - 1; i >= 0; i--) {
-                                        TempLiveTeacherListBean tempLiveTeacherListBean = data.get(i);
-                                        HomeStyleBean.RowsBean rowsBean = new HomeStyleBean.RowsBean();
-                                        rowsBean.liveCoverImg = tempLiveTeacherListBean.liveCoverImg;
-                                        rowsBean.liveTitle = tempLiveTeacherListBean.liveTitle;
-                                        rowsBean.roomUid = tempLiveTeacherListBean.roomUid;
-                                        rowsBean.liveStatus = Constants.ON_LIVING_TAG;
-                                        rowsBean.avatar = tempLiveTeacherListBean.avatar;
-                                        rowsBean.username = tempLiveTeacherListBean.username;
-                                        rows.add(0, rowsBean);
-                                    }
-                                }
+                    public ObservableSource<BaseResponse<HomeStyleBean>> apply(BaseResponse<ArrayList<TempLiveTeacherListBean>> arrayListBaseResponse) throws Throwable {
+                        return observable.map(new Function<BaseResponse<HomeStyleBean>, BaseResponse<HomeStyleBean>>() {
+                            @Override
+                            public BaseResponse<HomeStyleBean> apply(BaseResponse<HomeStyleBean> homeStyleBeanBaseResponse) throws Throwable {
+                                if (arrayListBaseResponse != null && page == 1) {
+                                    //只有第一页合并添加数据
+                                    ArrayList<TempLiveTeacherListBean> data = arrayListBaseResponse.getData();
+                                    if (homeStyleBeanBaseResponse != null && homeStyleBeanBaseResponse.getData() != null) {
+                                        List<HomeStyleBean.RowsBean> rows = homeStyleBeanBaseResponse.getData().rows;
+                                        if (rows == null) {
+                                            rows = new ArrayList<>();
+                                        }
+                                        if (data != null && data.size() > 0) {
+                                            for (int i = data.size() - 1; i >= 0; i--) {
+                                                TempLiveTeacherListBean tempLiveTeacherListBean = data.get(i);
+                                                HomeStyleBean.RowsBean rowsBean = new HomeStyleBean.RowsBean();
+                                                rowsBean.liveCoverImg = tempLiveTeacherListBean.liveCoverImg;
+                                                rowsBean.liveTitle = tempLiveTeacherListBean.liveTitle;
+                                                rowsBean.roomUid = tempLiveTeacherListBean.roomUid;
+                                                rowsBean.liveStatus = Constants.ON_LIVING_TAG;
+                                                rowsBean.avatar = tempLiveTeacherListBean.avatar;
+                                                rowsBean.username = tempLiveTeacherListBean.username;
+                                                rows.add(0, rowsBean);
+                                            }
+                                        }
 //                                for (int i = 0; i < data.size(); i++) {
 //                                    TempLiveTeacherListBean tempLiveTeacherListBean = data.get(i);
 //                                    if (homeStyleBeanBaseResponse != null && homeStyleBeanBaseResponse.getData() != null && homeStyleBeanBaseResponse.getData().rows != null && homeStyleBeanBaseResponse.getData().rows.size() > 0) {
@@ -275,44 +281,44 @@ public class HomePresenter extends BasePresenter<HomeContract.HomeView> implemen
 //                                        }
 //                                    }
 //                                }
-                            } else {
-                                Log.i("pq", "直播列表为空");
+                                    } else {
+                                        Log.i("pq", "直播列表为空");
+                                    }
+                                }
+                                return homeStyleBeanBaseResponse;
                             }
-                        }
-                        return homeStyleBeanBaseResponse;
+                        });
                     }
-                });
-            }
-        }).subscribeOn(Schedulers.newThread())
+                }).subscribeOn(Schedulers.newThread())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new Observer<BaseResponse<HomeStyleBean>>() {
-                            @Override
-                            public void onSubscribe(@NonNull Disposable d) {
+                    @Override
+                    public void onSubscribe(@NonNull Disposable d) {
 
-                            }
+                    }
 
-                            @Override
-                            public void onNext(@NonNull BaseResponse<HomeStyleBean> homeStyleBeanBaseResponse) {
-                                if (getView() != null && homeStyleBeanBaseResponse != null) {
-                                    getView().getStylePageSuccess(page, homeStyleBeanBaseResponse.getData());
-                                }
-                            }
+                    @Override
+                    public void onNext(@NonNull BaseResponse<HomeStyleBean> homeStyleBeanBaseResponse) {
+                        if (getView() != null && homeStyleBeanBaseResponse != null) {
+                            getView().getStylePageSuccess(page, homeStyleBeanBaseResponse.getData());
+                        }
+                    }
 
-                            @Override
-                            public void onError(@NonNull Throwable e) {
-                                if (getView() != null) {
-                                    getView().onError(e);
-                                    getView().hideLoading();
-                                }
-                            }
+                    @Override
+                    public void onError(@NonNull Throwable e) {
+                        if (getView() != null) {
+                            getView().onError(e);
+                            getView().hideLoading();
+                        }
+                    }
 
-                            @Override
-                            public void onComplete() {
-                                if (getView() != null) {
-                                    getView().hideLoading();
-                                }
-                            }
-                        });
+                    @Override
+                    public void onComplete() {
+                        if (getView() != null) {
+                            getView().hideLoading();
+                        }
+                    }
+                });
         //        addSubscribe(create(APIService.class).getStylePage(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<HomeStyleBean>(getView()) {
 //            @Override
 //            protected void onSuccess(HomeStyleBean data) {

+ 2 - 2
student/src/main/java/com/cooleshow/student/presenter/main/MusicHallPresenter.java

@@ -79,8 +79,8 @@ public class MusicHallPresenter extends BasePresenter<HomeMusicHallContract.Home
     /**
      * 获取热门曲目
      */
-    public void getHotMusicSheetList() {
-        if (getView() != null) {
+    public void getHotMusicSheetList(boolean isShowLoading) {
+        if (isShowLoading && getView() != null) {
             getView().showLoading();
         }
         JSONObject jsonObject = new JSONObject();

+ 7 - 7
student/src/main/java/com/cooleshow/student/ui/main/CourseTableFragment.kt

@@ -186,7 +186,7 @@ class CourseTableFragment :
         })
 
         mViewBinding.refreshLayout.setOnRefreshListener(OnRefreshListener {
-            queryCurrentDataCourse()
+            queryCurrentDataCourse(false)
         })
         mViewBinding.refreshLayout.isEnabled = false
     }
@@ -230,20 +230,20 @@ class CourseTableFragment :
         calendarDate =
             TimeUtils.date2String(currentSelectDate, TimeUtils.getSafeDateFormat("yyyy-MM"))
         setMontAndDay(year, month, day)
-        queryCurrentDataCourse()
+        queryCurrentDataCourse(true)
     }
 
     override fun onResume() {
         super.onResume()
-        queryCurrentDataCourse()
+        queryCurrentDataCourse(false)
     }
 
     /**
      * 查询当前选择日期的课程
      */
-    public fun queryCurrentDataCourse() {
-        presenter.getCourseScheduleDateByMonth(calendarDate)
-        presenter.getCourseSchedulesWithDate(currentSelectDate)
+    public fun queryCurrentDataCourse(isShowLoading:Boolean) {
+        presenter.getCourseScheduleDateByMonth(calendarDate,isShowLoading)
+        presenter.getCourseSchedulesWithDate(currentSelectDate,isShowLoading)
     }
 
     override fun onCalendarIntercept(calendar: com.haibin.calendarview.Calendar?): Boolean {
@@ -260,7 +260,7 @@ class CourseTableFragment :
     override fun onMonthChange(year: Int, month: Int) {
         setMontAndDay(year, month, day)
         presenter?.let {
-            presenter.getCourseScheduleDateByMonth(getMonth(year, month))
+            presenter.getCourseScheduleDateByMonth(getMonth(year, month),true)
         }
     }
 

+ 3 - 1
student/src/main/java/com/cooleshow/student/ui/main/MusicHallFragment.java

@@ -42,6 +42,7 @@ public class MusicHallFragment extends BaseMVPFragment<FgMusicHallLayoutBinding,
     private HomeHotMusicSheetAdapter mHomeHotMusicSheetAdapter;
     private HomeHotMusicSheetAdapter mRecommendAdapter;
     private HomeHotMusicSheetAdapter mLatestAdapter;
+    private boolean isShowLoading = true;
 
     @Override
     protected FgMusicHallLayoutBinding getLayoutView() {
@@ -132,7 +133,7 @@ public class MusicHallFragment extends BaseMVPFragment<FgMusicHallLayoutBinding,
 
     private void refresh() {
         presenter.userAccountPage();
-        presenter.getHotMusicSheetList();
+        presenter.getHotMusicSheetList(isShowLoading);
     }
 
     @Override
@@ -213,6 +214,7 @@ public class MusicHallFragment extends BaseMVPFragment<FgMusicHallLayoutBinding,
         if (isDetached() || homeHotMusicSheetBean == null) {
             return;
         }
+        isShowLoading = false;
         //推荐曲目
         if (homeHotMusicSheetBean.topMusicSheet != null && homeHotMusicSheetBean.topMusicSheet.size() > 0) {
             mViewBinding.clRecommendTrack.setVisibility(View.VISIBLE);

+ 12 - 5
student/src/main/java/com/cooleshow/student/ui/main/NewHomeFragmentV2.java

@@ -331,7 +331,7 @@ public class NewHomeFragmentV2 extends BaseMVPFragment<FgNewHomeV2LayoutBinding,
         if (presenter != null) {
             //红点
             presenter.queryCountOfUnread();
-            presenter.appHome();
+            presenter.appHome(isNeedLoading());
             //获取课程信息
             presenter.queryLiveAndVideo();
             refreshBottomData();
@@ -346,6 +346,13 @@ public class NewHomeFragmentV2 extends BaseMVPFragment<FgNewHomeV2LayoutBinding,
         }
     }
 
+    private boolean isNeedLoading() {
+        if (mMenuPagerAdapter != null) {
+            return mMenuPagerAdapter.getCount() == 0;
+        }
+        return false;
+    }
+
     private void refreshBottomData() {
         if (mHotNewsFragment != null) {
             mHotNewsFragment.refresh();
@@ -800,24 +807,24 @@ public class NewHomeFragmentV2 extends BaseMVPFragment<FgNewHomeV2LayoutBinding,
      */
     private void gotoCourseDetail(HomeLiveAndVideoBean.RecentCoursesBean bean) {
         String courseType = bean.courseType;
-        if (TextUtils.equals(courseType,CourseType.LIVE.getId())) {
+        if (TextUtils.equals(courseType, CourseType.LIVE.getId())) {
             //直播课
             ARouter.getInstance()
                     .build(RouterPath.WebCenter.ACTIVITY_HTML)
                     .withString(WebConstants.WEB_URL, String.format(WebConstants.TEACHER_LIVE_DETAIL_NORMAL_COURSE, bean.courseGroupId, bean.courseId))
                     .navigation();
-        } else if (TextUtils.equals(courseType,CourseType.PRACTICE.getId())|| TextUtils.equals(courseType,CourseType.VIP.getId())) {
+        } else if (TextUtils.equals(courseType, CourseType.PRACTICE.getId()) || TextUtils.equals(courseType, CourseType.VIP.getId())) {
             //趣纠课 VIP课
             ARouter.getInstance().build(RouterPath.CourseCenter.SPARRING_COURSE_DETAIL)
                     .withString(CourseConstants.COURSE_ID, String.valueOf(bean.courseId))
                     .withString(CourseConstants.COURSE_GROUP_ID, String.valueOf(bean.courseGroupId))
                     .navigation();
-        } else if (TextUtils.equals(courseType,CourseType.PIANO_ROOM_CLASS.getId())) {
+        } else if (TextUtils.equals(courseType, CourseType.PIANO_ROOM_CLASS.getId())) {
             //琴房课 跳转详情页
             ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
                     .withString(CourseConstants.COURSE_ID, String.valueOf(bean.courseId))
                     .navigation();
-        }else if(TextUtils.equals(courseType,CourseType.GROUP.getId())){
+        } else if (TextUtils.equals(courseType, CourseType.GROUP.getId())) {
             //小组课
             ARouter.getInstance().build(RouterPath.CourseCenter.GROUP_COURSE_DETAIL)
                     .withString(CourseConstants.COURSE_ID, String.valueOf(bean.courseId))