Procházet zdrojové kódy

修改老师端个人主页直播课和视频课缺省图样式问题

Pq před 8 měsíci
rodič
revize
ad66057f8d

+ 38 - 5
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/InterestCorrectCoursePageFragment.java

@@ -1,6 +1,8 @@
 package com.cooleshow.teacher.ui.homepage;
 
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -23,6 +25,7 @@ import com.cooleshow.teacher.databinding.FragmentInterestCorrectCoursePageLayout
 import com.cooleshow.teacher.databinding.FragmentVipCustomCoursePageLayoutBinding;
 import com.cooleshow.teacher.presenter.homePage.InterestCoursePagePresenter;
 import com.cooleshow.teacher.presenter.homePage.VIPCustomCoursePagePresenter;
+import com.cooleshow.teacher.widgets.HomePageCourseCommonHeaderView;
 import com.cooleshow.usercenter.bean.TeacherUserInfo;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
@@ -42,9 +45,14 @@ public class InterestCorrectCoursePageFragment extends BaseMVPFragment<FragmentI
 
     @Override
     protected void initView(View rootView) {
-        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.interest_course_des_title), getString(com.cooleshow.base.R.string.interest_course_tip_str), R.drawable.icon_interest_course_set,getString(R.string.set_interest_course_text), new View.OnClickListener() {
+        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.interest_course_des_title), getString(com.cooleshow.base.R.string.interest_course_tip_str), R.drawable.icon_interest_course_set, getString(R.string.set_interest_course_text), new HomePageCourseCommonHeaderView.OnEventListener() {
             @Override
-            public void onClick(View v) {
+            public void onCloseTip() {
+                updateEmptyViewLayoutParams();
+            }
+
+            @Override
+            public void goCreate() {
                 //陪练课设置
                 ARouter.getInstance()
                         .build(RouterPath.WebCenter.ACTIVITY_HTML)
@@ -59,9 +67,7 @@ public class InterestCorrectCoursePageFragment extends BaseMVPFragment<FragmentI
     @Override
     protected void initData() {
         mAdapter = new HomePageVipCourseAdapter("趣纠课");
-        EmptyViewLayout emptyViewLayout = new EmptyViewLayout(getContext());
-        emptyViewLayout.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
-        mAdapter.setEmptyView(emptyViewLayout);
+        setEmptyView();
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         mViewBinding.recyclerView.setAdapter(mAdapter);
 
@@ -93,6 +99,18 @@ public class InterestCorrectCoursePageFragment extends BaseMVPFragment<FragmentI
         });
     }
 
+    private void setEmptyView(){
+        EmptyViewLayout emptyViewLayout = new EmptyViewLayout(getContext());
+        emptyViewLayout.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            emptyViewLayout.setLayoutParams(layoutParams);
+        }
+        mAdapter.setEmptyView(emptyViewLayout);
+    }
+
     private void showConfirmDialog(String id) {
         CommonDialog commonDialog = new CommonDialog(getContext());
         commonDialog.show();
@@ -157,4 +175,19 @@ public class InterestCorrectCoursePageFragment extends BaseMVPFragment<FragmentI
         ToastUtil.getInstance().showShort("删除成功");
         queryCourse(false);
     }
+
+    private void updateEmptyViewLayoutParams() {
+        if (mAdapter != null) {
+            //为了实现居中显示空视图,所以重新设置一下缺省图
+            FrameLayout emptyLayout = mAdapter.getEmptyLayout();
+            if (emptyLayout != null) {
+                View childAt = emptyLayout.getChildAt(0);
+                ViewGroup.LayoutParams layoutParams = childAt.getLayoutParams();
+                layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
+                layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
+                childAt.setLayoutParams(layoutParams);
+                mAdapter.setEmptyView(childAt);
+            }
+        }
+    }
 }

+ 69 - 26
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/LiveCoursePageFragment.java

@@ -1,7 +1,11 @@
 package com.cooleshow.teacher.ui.homepage;
 
 import android.text.TextUtils;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -13,6 +17,7 @@ import com.chad.library.adapter.base.listener.OnLoadMoreListener;
 import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.widgets.EmptyViewLayout;
 import com.cooleshow.teacher.R;
@@ -25,6 +30,7 @@ import com.cooleshow.teacher.constants.TeacherInfoConstants;
 import com.cooleshow.teacher.contract.LiveCoursePageContract;
 import com.cooleshow.teacher.databinding.FragmentLiveCoursePageLayoutBinding;
 import com.cooleshow.teacher.presenter.homePage.LiveCoursePagePresenter;
+import com.cooleshow.teacher.widgets.HomePageCourseCommonHeaderView;
 import com.cooleshow.usercenter.bean.TeacherUserInfo;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
@@ -45,19 +51,25 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
 
     //是否有直播权限 0 否 1 是
     private int liveFlag;
+    //是否认证 0 否 1 是
+    private int certFlag;
 
     @Override
     protected void initView(View rootView) {
-        mViewBinding.tvOpen.setOnClickListener(this);
     }
 
     @Override
     protected void initData() {
 
-        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.live_course_des_title), getString(com.cooleshow.base.R.string.live_course_tip_str), R.drawable.icon_live_course_set,getString(R.string.create_live_course_text), new View.OnClickListener() {
+        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.live_course_des_title), getString(com.cooleshow.base.R.string.live_course_tip_str), R.drawable.icon_live_course_set, getString(R.string.create_live_course_text), new HomePageCourseCommonHeaderView.OnEventListener() {
             @Override
-            public void onClick(View v) {
-                goCreate();
+            public void onCloseTip() {
+                updateEmptyViewLayoutParams();
+            }
+
+            @Override
+            public void goCreate() {
+                LiveCoursePageFragment.this.goCreate();
             }
         });
 
@@ -106,11 +118,11 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_open:
-                if (mViewBinding.tvOpen.getText().toString().equals("去认证")) {
+                if (certFlag == 0) {
                     ARouter.getInstance().build(RouterPath.WebCenter.ACTIVITY_HTML)
                             .withString(WebConstants.WEB_URL, WebConstants.TEACHER_CERT)
                             .navigation();
-                } else if (mViewBinding.tvOpen.getText().toString().equals("立即开通")) {
+                } else if (liveFlag == 0) {
                     ARouter.getInstance()
                             .build(RouterPath.WebCenter.ACTIVITY_HTML)
                             .withString(WebConstants.WEB_URL, WebConstants.TEACHER_OPEN_LIVE)
@@ -162,8 +174,6 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
                     if (liveCourseListBean.rows != null && liveCourseListBean.rows.size() > 0) {
                         checkHasNext(liveCourseListBean.rows.size());
                         mAdapter.setNewInstance(liveCourseListBean.rows);
-                    } else {
-                        showEmptyView();
                     }
                 }
             } else {
@@ -200,44 +210,77 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
         hasNext = dataSize >= Constants.DEFAULT_DATA_SIZE;
     }
 
-    private void showEmptyView() {
+    private void setEmptyView() {
         if (mEmptyView == null) {
             mEmptyView = new EmptyViewLayout(getContext());
         }
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            mEmptyView.setLayoutParams(layoutParams);
+        }
         mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
         mAdapter.setEmptyView(mEmptyView);
     }
 
+    private void showNotHasLivePermissionView(String text, boolean isShowOpenBt, String btText) {
+        View noPermissionTipView = LayoutInflater.from(getContext()).inflate(R.layout.view_no_option_permission_tip_layout, mAdapter.getEmptyLayout(), false);
+        noPermissionTipView.findViewById(R.id.tv_open).setOnClickListener(this);
+        TextView tv_empty_hint = noPermissionTipView.findViewById(R.id.tv_empty_hint);
+        TextView tv_open = noPermissionTipView.findViewById(R.id.tv_open);
+        tv_empty_hint.setText(text);
+        tv_open.setVisibility(isShowOpenBt ? View.VISIBLE : View.GONE);
+        tv_open.setText(btText);
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            noPermissionTipView.setLayoutParams(layoutParams);
+        }
+        mAdapter.setEmptyView(noPermissionTipView);
+    }
+
     @Override
     public void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo) {
         if (TextUtils.equals(teacherUserInfo.entryStatus, TeacherInfoConstants.ENTRY_STATUS_DOING)) {
             //入驻审核中
-            mViewBinding.llContent.setVisibility(View.GONE);
-            mViewBinding.clEmptyFlag.setVisibility(View.VISIBLE);
-            mViewBinding.tvEmptyHint.setText("老师认证审核中!");
-            mViewBinding.tvOpen.setVisibility(View.GONE);
+            certFlag = 0;
+            mViewBinding.commonHeader.handleCreateBt(false);
+            showNotHasLivePermissionView("老师认证审核中!", false, "");
         } else if (TextUtils.equals(teacherUserInfo.entryStatus, TeacherInfoConstants.ENTRY_STATUS_PASS)) {
             //入驻审核通过
+            certFlag = 1;
             if (teacherUserInfo.liveFlag == 0) {
-                mViewBinding.refreshLayout.setVisibility(View.GONE);
-                mViewBinding.clEmptyFlag.setVisibility(View.VISIBLE);
-                mViewBinding.tvEmptyHint.setText("您尚未开通直播服务\n开通后即可创建直播课程");
-                mViewBinding.tvOpen.setVisibility(View.VISIBLE);
-                mViewBinding.tvOpen.setText("立即开通");
-            }else{
-                mViewBinding.llContent.setVisibility(View.VISIBLE);
-                mViewBinding.clEmptyFlag.setVisibility(View.GONE);
+                mViewBinding.commonHeader.handleCreateBt(false);
+                showNotHasLivePermissionView("您尚未开通直播服务\n开通后即可创建直播课程", true, "立即开通");
+            } else {
+                mViewBinding.commonHeader.handleCreateBt(true);
+                setEmptyView();
                 currentPage = 1;
                 queryCourse();
             }
         } else {
             //未通过或者未申请
-            mViewBinding.llContent.setVisibility(View.GONE);
-            mViewBinding.clEmptyFlag.setVisibility(View.VISIBLE);
-            mViewBinding.tvEmptyHint.setText("您还没有完成老师认证\n认证后才可创建直播课哦~");
-            mViewBinding.tvOpen.setVisibility(View.VISIBLE);
-            mViewBinding.tvOpen.setText("去认证");
+            certFlag = 0;
+            mViewBinding.commonHeader.handleCreateBt(false);
+            showNotHasLivePermissionView("您还没有完成老师认证\n认证后才可创建直播课哦~", true, "去认证");
         }
         liveFlag = teacherUserInfo.liveFlag;
     }
+
+    private void updateEmptyViewLayoutParams() {
+        if (mAdapter != null) {
+            //为了实现居中显示空视图,所以重新设置一下缺省图
+            FrameLayout emptyLayout = mAdapter.getEmptyLayout();
+            if (emptyLayout != null) {
+                View childAt = emptyLayout.getChildAt(0);
+                ViewGroup.LayoutParams layoutParams = childAt.getLayoutParams();
+                layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
+                layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
+                childAt.setLayoutParams(layoutParams);
+                mAdapter.setEmptyView(childAt);
+            }
+        }
+    }
 }

+ 39 - 7
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/VIPCustomCoursePageFragment.java

@@ -2,6 +2,8 @@ package com.cooleshow.teacher.ui.homepage;
 
 import android.text.TextUtils;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -23,6 +25,7 @@ import com.cooleshow.teacher.bean.VideoCourseListBean;
 import com.cooleshow.teacher.contract.VIPCustomCoursePageContract;
 import com.cooleshow.teacher.databinding.FragmentVipCustomCoursePageLayoutBinding;
 import com.cooleshow.teacher.presenter.homePage.VIPCustomCoursePagePresenter;
+import com.cooleshow.teacher.widgets.HomePageCourseCommonHeaderView;
 import com.cooleshow.usercenter.bean.TeacherUserInfo;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
@@ -45,30 +48,44 @@ public class VIPCustomCoursePageFragment extends BaseMVPFragment<FragmentVipCust
     @Override
     protected void initView(View rootView) {
 
-        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.vip_course_des_title), getString(com.cooleshow.base.R.string.vip_course_tip_str), R.drawable.icon_vip_course_set, getString(R.string.set_vip_course_confirm_text), new View.OnClickListener() {
+        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.vip_course_des_title), getString(com.cooleshow.base.R.string.vip_course_tip_str), R.drawable.icon_vip_course_set, getString(R.string.set_vip_course_confirm_text), new HomePageCourseCommonHeaderView.OnEventListener() {
             @Override
-            public void onClick(View v) {
+            public void onCloseTip() {
+                updateEmptyViewLayoutParams();
+            }
+
+            @Override
+            public void goCreate() {
                 ARouter.getInstance()
                         .build(RouterPath.WebCenter.ACTIVITY_HTML)
                         .withString(WebConstants.WEB_URL, WebConstants.TEACHER_VIP_COURSE_SETTING)
                         .navigation();
             }
-        });
+        } );
     }
 
 
     @Override
     protected void initData() {
         mAdapter = new HomePageVipCourseAdapter("VIP定制课");
-        EmptyViewLayout emptyViewLayout = new EmptyViewLayout(getContext());
-        emptyViewLayout.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
-        mAdapter.setEmptyView(emptyViewLayout);
+        setEmptyView();
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         mViewBinding.recyclerView.setAdapter(mAdapter);
-
         initListener();
     }
 
+    private void setEmptyView(){
+        EmptyViewLayout emptyViewLayout = new EmptyViewLayout(getContext());
+        emptyViewLayout.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            emptyViewLayout.setLayoutParams(layoutParams);
+        }
+        mAdapter.setEmptyView(emptyViewLayout);
+    }
+
     private void initListener() {
         mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
             @Override
@@ -160,4 +177,19 @@ public class VIPCustomCoursePageFragment extends BaseMVPFragment<FragmentVipCust
         ToastUtil.getInstance().showShort("删除成功");
         queryCourse(false);
     }
+
+    private void updateEmptyViewLayoutParams() {
+        if (mAdapter != null) {
+            //为了实现居中显示空视图,所以重新设置一下缺省图
+            FrameLayout emptyLayout = mAdapter.getEmptyLayout();
+            if (emptyLayout != null) {
+                View childAt = emptyLayout.getChildAt(0);
+                ViewGroup.LayoutParams layoutParams = childAt.getLayoutParams();
+                layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
+                layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
+                childAt.setLayoutParams(layoutParams);
+                mAdapter.setEmptyView(childAt);
+            }
+        }
+    }
 }

+ 71 - 18
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/VideoCoursePageFragment.java

@@ -1,7 +1,11 @@
 package com.cooleshow.teacher.ui.homepage;
 
 import android.text.TextUtils;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.GridLayoutManager;
@@ -26,6 +30,7 @@ import com.cooleshow.teacher.presenter.homePage.VideoCoursePagePresenter;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.teacher.databinding.FragmentVideoCoursePageLayoutBinding;
 import com.cooleshow.teacher.ui.course.MineVideoCourseActivity;
+import com.cooleshow.teacher.widgets.HomePageCourseCommonHeaderView;
 import com.cooleshow.usercenter.bean.TeacherUserInfo;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
@@ -39,25 +44,30 @@ import java.util.List;
 public class VideoCoursePageFragment extends BaseMVPFragment<FragmentVideoCoursePageLayoutBinding, VideoCoursePagePresenter> implements VideoCoursePageContract.VideoCoursePageView, View.OnClickListener {
     public static final String TIP_CACHE_KEY = "video_course_tip_key";
     private MineVideoCourseAdapter mineVideoCourseAdapter;
+    private EmptyViewLayout mEmptyView;
+    private int certFlag;
 
     @Override
     protected void initView(View rootView) {
 
-        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY,R.drawable.icon_vip_custom_course_des_tag, getString(R.string.video_course_des_title), getString(com.cooleshow.base.R.string.video_course_tip_str), R.drawable.icon_video_course_set,getString(R.string.create_video_course_text), new View.OnClickListener() {
+        mViewBinding.commonHeader.setDataStyle(TIP_CACHE_KEY, R.drawable.icon_vip_custom_course_des_tag, getString(R.string.video_course_des_title), getString(com.cooleshow.base.R.string.video_course_tip_str), R.drawable.icon_video_course_set, getString(R.string.create_video_course_text), new HomePageCourseCommonHeaderView.OnEventListener() {
             @Override
-            public void onClick(View v) {
-                goCreate();
+            public void onCloseTip() {
+                updateEmptyViewLayoutParams();
+            }
+
+            @Override
+            public void goCreate() {
+                VideoCoursePageFragment.this.goCreate();
             }
         });
 
         mViewBinding.tvOpen.setOnClickListener(this);
         RecyclerView rvAddress = mViewBinding.recyclerView;
-        LinearLayoutManager manager =new LinearLayoutManager(getContext());
+        LinearLayoutManager manager = new LinearLayoutManager(getContext());
         rvAddress.setLayoutManager(manager);
         mineVideoCourseAdapter = new MineVideoCourseAdapter(MineVideoCourseActivity.TYPE_PASS);
-        EmptyViewLayout mEmptyView = new EmptyViewLayout(getContext());
-        mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
-        mineVideoCourseAdapter.setEmptyView(mEmptyView);
+        setEmptyView();
         rvAddress.setAdapter(mineVideoCourseAdapter);
         mineVideoCourseAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
@@ -201,24 +211,67 @@ public class VideoCoursePageFragment extends BaseMVPFragment<FragmentVideoCourse
     public void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo) {
         if (TextUtils.equals(teacherUserInfo.entryStatus, TeacherInfoConstants.ENTRY_STATUS_DOING)) {
             //入驻审核中
-            mViewBinding.llContent.setVisibility(View.GONE);
-            mViewBinding.clEmptyFlag.setVisibility(View.VISIBLE);
-            mViewBinding.tvEmptyHint.setText("老师认证审核中!");
-            mViewBinding.tvOpen.setVisibility(View.GONE);
+            certFlag = 0;
+            mViewBinding.commonHeader.handleCreateBt(false);
+            showNotHasLivePermissionView("老师认证审核中!", false, "");
         } else if (TextUtils.equals(teacherUserInfo.entryStatus, TeacherInfoConstants.ENTRY_STATUS_PASS)) {
             //入驻审核通过
-            mViewBinding.llContent.setVisibility(View.VISIBLE);
-            mViewBinding.clEmptyFlag.setVisibility(View.GONE);
+            certFlag = 1;
+            mViewBinding.commonHeader.handleCreateBt(true);
+            setEmptyView();
             currentPage = 1;
             queryCourse(true);
         } else {
             //未通过或者未申请
-            mViewBinding.llContent.setVisibility(View.GONE);
-            mViewBinding.clEmptyFlag.setVisibility(View.VISIBLE);
-            mViewBinding.tvEmptyHint.setText("您还没有完成老师认证,认证后才可创建直播课哦~");
-            mViewBinding.tvOpen.setVisibility(View.VISIBLE);
-            mViewBinding.tvOpen.setText("去认证");
+            certFlag = 0;
+            mViewBinding.commonHeader.handleCreateBt(false);
+            showNotHasLivePermissionView("您还没有完成老师认证\n认证后才可创建直播课哦~", true, "去认证");
         }
+    }
 
+    private void setEmptyView() {
+        if (mEmptyView == null) {
+            mEmptyView = new EmptyViewLayout(getContext());
+        }
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            mEmptyView.setLayoutParams(layoutParams);
+        }
+        mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无内容");
+        mineVideoCourseAdapter.setEmptyView(mEmptyView);
+    }
+
+    private void showNotHasLivePermissionView(String text, boolean isShowOpenBt, String btText) {
+        View noPermissionTipView = LayoutInflater.from(getContext()).inflate(R.layout.view_no_option_permission_tip_layout, mineVideoCourseAdapter.getEmptyLayout(), false);
+        noPermissionTipView.findViewById(R.id.tv_open).setOnClickListener(this);
+        TextView tv_empty_hint = noPermissionTipView.findViewById(R.id.tv_empty_hint);
+        TextView tv_open = noPermissionTipView.findViewById(R.id.tv_open);
+        tv_empty_hint.setText(text);
+        tv_open.setVisibility(isShowOpenBt ? View.VISIBLE : View.GONE);
+        tv_open.setText(btText);
+        boolean isVis = mViewBinding.commonHeader.contentIsVisibility();
+        if (isVis) {
+            //如果顶部内容显示,需要自适应WRAP_CONTENT高度,不然页面折叠状态下可能因为Recyclerview高度比较小,导致无法展示完缺省图
+            ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            noPermissionTipView.setLayoutParams(layoutParams);
+        }
+        mineVideoCourseAdapter.setEmptyView(noPermissionTipView);
+    }
+
+    private void updateEmptyViewLayoutParams() {
+        if (mineVideoCourseAdapter != null) {
+            //为了实现居中显示空视图,所以重新设置一下缺省图
+            FrameLayout emptyLayout = mineVideoCourseAdapter.getEmptyLayout();
+            if (emptyLayout != null) {
+                View childAt = emptyLayout.getChildAt(0);
+                ViewGroup.LayoutParams layoutParams = childAt.getLayoutParams();
+                layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
+                layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
+                childAt.setLayoutParams(layoutParams);
+                mineVideoCourseAdapter.setEmptyView(childAt);
+            }
+        }
     }
 }

+ 42 - 10
teacher/src/main/java/com/cooleshow/teacher/widgets/HomePageCourseCommonHeaderView.java

@@ -29,14 +29,14 @@ public class HomePageCourseCommonHeaderView extends NestedScrollView implements
     private TextView mTitle;
     private TextView mTvDes;
     private TextView mTvConfirm;
-
+    private OnEventListener mEventListener;
 
     public HomePageCourseCommonHeaderView(@NonNull Context context) {
-        this(context,null);
+        this(context, null);
     }
 
     public HomePageCourseCommonHeaderView(@NonNull Context context, @Nullable AttributeSet attrs) {
-        this(context, attrs,-1);
+        this(context, attrs, -1);
     }
 
     public HomePageCourseCommonHeaderView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
@@ -44,8 +44,8 @@ public class HomePageCourseCommonHeaderView extends NestedScrollView implements
         init();
     }
 
-    private void init(){
-        LayoutInflater.from(getContext()).inflate(R.layout.item_hp_common_course_header_layout,this);
+    private void init() {
+        LayoutInflater.from(getContext()).inflate(R.layout.item_hp_common_course_header_layout, this);
         initView();
         initData();
     }
@@ -68,17 +68,17 @@ public class HomePageCourseCommonHeaderView extends NestedScrollView implements
         mFlSetting.setOnClickListener(this);
     }
 
-    public void setDataStyle(String cacheKey,int tagRes,String title,String des,int confirmTag,String confirmText,View.OnClickListener onClickListener){
-        if(mIvTag == null){
+    public void setDataStyle(String cacheKey, int tagRes, String title, String des, int confirmTag, String confirmText, OnEventListener listener) {
+        if (mIvTag == null) {
             return;
         }
-        this.cache_key =cacheKey;
+        this.mEventListener = listener;
+        this.cache_key = cacheKey;
         mIvTag.setImageResource(tagRes);
         mTitle.setText(title);
         mTvDes.setText(des);
         mTvConfirm.setText(confirmText);
-        mTvConfirm.setCompoundDrawablesWithIntrinsicBounds(confirmTag,0,0,0);
-        mFlSetting.setOnClickListener(onClickListener);
+        mTvConfirm.setCompoundDrawablesWithIntrinsicBounds(confirmTag, 0, 0, 0);
         boolean showTip = isShowTip();
         mCsDes.setVisibility(showTip ? View.VISIBLE : View.GONE);
     }
@@ -88,11 +88,23 @@ public class HomePageCourseCommonHeaderView extends NestedScrollView implements
         int id = v.getId();
         if (id == R.id.iv_close_des) {
             mCsDes.setVisibility(View.GONE);
+            if (mEventListener != null) {
+                mEventListener.onCloseTip();
+            }
             return;
         }
         if (id == R.id.tv_not_remind) {
             mCsDes.setVisibility(View.GONE);
             updateCache();
+            if (mEventListener != null) {
+                mEventListener.onCloseTip();
+            }
+            return;
+        }
+        if (id == R.id.fl_setting) {
+            if (mEventListener != null) {
+                mEventListener.goCreate();
+            }
             return;
         }
     }
@@ -106,4 +118,24 @@ public class HomePageCourseCommonHeaderView extends NestedScrollView implements
         String userId = UserHelper.getUserId();
         return UserHelper.getCustomCacheForInt(cache_key + "_" + userId) == 0;
     }
+
+    public void handleCreateBt(boolean isShow) {
+        if (mFlSetting != null) {
+            mFlSetting.setVisibility(isShow ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    public boolean contentIsVisibility() {
+        if (mCsDes != null) {
+            int visibility = mCsDes.getVisibility();
+            return visibility == View.VISIBLE;
+        }
+        return false;
+    }
+
+    public interface OnEventListener {
+        void onCloseTip();
+
+        void goCreate();
+    }
 }

+ 0 - 49
teacher/src/main/res/layout/fragment_live_course_page_layout.xml

@@ -31,53 +31,4 @@
                 android:scrollbars="none" />
         </com.scwang.smart.refresh.layout.SmartRefreshLayout>
     </LinearLayout>
-
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_empty_flag"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-
-        <ImageView
-            android:id="@+id/im_empty_logo"
-            android:layout_width="@dimen/dp_260"
-            android:layout_height="@dimen/dp_230"
-            android:background="@drawable/icon_empty_mine_course"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <TextView
-            android:id="@+id/tv_empty_hint"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="14dp"
-            android:gravity="center"
-            android:lineSpacingExtra="4dp"
-            android:text="您还没有完成老师认证\n认证后才可创建直播课哦~"
-            android:textColor="@color/color_999999"
-            android:textSize="@dimen/sp_16"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/im_empty_logo" />
-
-        <TextView
-            android:id="@+id/tv_open"
-            android:layout_width="@dimen/dp_196"
-            android:layout_height="@dimen/dp_44"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="25dp"
-            android:background="@drawable/shape_course_status_ing"
-            android:gravity="center"
-            android:text="去认证"
-            android:textColor="@color/white"
-            android:textSize="@dimen/sp_14"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tv_empty_hint" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
 </RelativeLayout>

+ 47 - 0
teacher/src/main/res/layout/view_no_option_permission_tip_layout.xml

@@ -0,0 +1,47 @@
+<?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:id="@+id/cl_empty_flag"
+    android:layout_width="match_parent"
+    android:paddingBottom="25dp"
+    android:layout_height="wrap_content">
+
+    <ImageView
+        android:id="@+id/im_empty_logo"
+        android:layout_width="@dimen/dp_260"
+        android:layout_height="@dimen/dp_230"
+        android:background="@drawable/icon_empty_mine_course"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/tv_empty_hint"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="14dp"
+        android:gravity="center"
+        android:lineSpacingExtra="4dp"
+        android:text="您还没有完成老师认证\n认证后才可创建直播课哦~"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/im_empty_logo" />
+
+    <TextView
+        android:id="@+id/tv_open"
+        android:layout_width="@dimen/dp_196"
+        android:layout_height="@dimen/dp_44"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="25dp"
+        android:background="@drawable/shape_course_status_ing"
+        android:gravity="center"
+        android:text="去认证"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_empty_hint" />
+</androidx.constraintlayout.widget.ConstraintLayout>