浏览代码

增加学生端作业详情页面

Pq 3 年之前
父节点
当前提交
6a47e47f05

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -108,6 +108,7 @@ object RouterPath {
     class WorkCenter {
         companion object {
             const val TEACHER_WORK_HOMEWORK = "/teacher/ui/work/HomeWorkActivity"
+            const val STUDENT_HOMEWORK_DETAIL = "/student/ui/work/HomeWorkDetailActivity"
             const val TEACHER_WORK_ASSIGN_HOMEWORK = "/teacher/ui/work/AssignHomeworkActivity"
         }
     }

+ 11 - 0
student/src/main/java/com/cooleshow/student/api/APIService.java

@@ -15,6 +15,7 @@ import com.cooleshow.student.bean.FriendInfoBean;
 import com.cooleshow.student.bean.HelpCenterContentBean;
 import com.cooleshow.student.bean.HomeLiveAndVideoBean;
 import com.cooleshow.student.bean.HomeStyleBean;
+import com.cooleshow.student.bean.HomeworkDetailBean;
 import com.cooleshow.student.bean.HomeworkListBean;
 import com.cooleshow.student.bean.HotAlbumBean;
 import com.cooleshow.student.bean.LiveCourseListBean;
@@ -251,6 +252,16 @@ public interface APIService {
     @POST(STUDENT_GROUP + "homework/list")
     Observable<BaseResponse<HomeworkListBean>> queryHomeworkList(@Body RequestBody body);
 
+
+    /**
+     * 课后作业
+     *
+     * @param body
+     * @return
+     */
+    @GET(STUDENT_GROUP + "homework/detail/{courseId}")
+    Observable<BaseResponse<HomeworkDetailBean>> queryHomeworkDetail(@Path("courseId") String courseId);
+
     /**
      * 获取所有消息列表
      *

+ 73 - 0
student/src/main/java/com/cooleshow/student/bean/HomeworkDetailBean.java

@@ -0,0 +1,73 @@
+package com.cooleshow.student.bean;
+
+/**
+ * Author by pq, Date on 2022/7/6.
+ */
+public class HomeworkDetailBean {
+
+    /**
+     * attachments :
+     * classDate :
+     * classNum : 0
+     * content :
+     * courseGroupId : 0
+     * courseGroupName :
+     * courseScheduleId : 0
+     * courseStatus :
+     * courseType :
+     * decorateHomework :
+     * decorateTime :
+     * endTime :
+     * homeworkExpire : 0
+     * id : 0
+     * imGroupId :
+     * reviewHomework :
+     * startTime :
+     * studentAttachments :
+     * studentAvatar :
+     * studentHomeworkId : 0
+     * studentId : 0
+     * studentName :
+     * studentNum : 0
+     * subjectName :
+     * submitHomework :
+     * submitTime :
+     * teacherAvatar :
+     * teacherId : 0
+     * teacherName :
+     * teacherReplied :
+     * title :
+     */
+
+    public String attachments;
+    public String classDate;
+    public int classNum;
+    public String content;
+    public int courseGroupId;
+    public String courseGroupName;
+    public int courseScheduleId;
+    public String courseStatus;
+    public String courseType;
+    public int decorateHomework;
+    public String decorateTime;
+    public String endTime;
+    public int homeworkExpire;
+    public int id;
+    public String imGroupId;
+    public String reviewHomework;
+    public String startTime;
+    public String studentAttachments;
+    public String studentAvatar;
+    public int studentHomeworkId;
+    public int studentId;
+    public String studentName;
+    public int studentNum;
+    public String subjectName;
+    public int submitHomework;
+    public String submitTime;
+    public String teacherAvatar;
+    public int teacherId;
+    public String teacherName;
+    public String teacherReplied;
+    public String title;
+}

+ 19 - 0
student/src/main/java/com/cooleshow/student/contract/HomeWorkDetailContract.java

@@ -0,0 +1,19 @@
+package com.cooleshow.student.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.student.bean.HomeworkDetailBean;
+
+/**
+ * 创建日期:2022/5/23 10:50
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public interface HomeWorkDetailContract {
+    interface HomeWorkDetailView extends BaseView {
+        void getDetailInfoSuccess(HomeworkDetailBean homeworkDetailBean);
+    }
+
+    interface Presenter {
+    }
+}

+ 48 - 0
student/src/main/java/com/cooleshow/student/presenter/homework/HomeWorkADetailPresenter.java

@@ -0,0 +1,48 @@
+package com.cooleshow.student.presenter.homework;
+
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.student.api.APIService;
+import com.cooleshow.student.bean.HomeworkDetailBean;
+import com.cooleshow.student.bean.HomeworkListBean;
+import com.cooleshow.student.contract.HomeWorkActContract;
+import com.cooleshow.student.contract.HomeWorkDetailContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+
+/**
+ * 创建日期:2022/5/23 10:49
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class HomeWorkADetailPresenter extends BasePresenter<HomeWorkDetailContract.HomeWorkDetailView> implements HomeWorkDetailContract.Presenter {
+
+    /**
+     * 查询课后作业详情(陪练课和琴房课通用)
+     *
+     * @param courseId
+     */
+    public void queryHomeworkDetail(String courseId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        addSubscribe(create(APIService.class).queryHomeworkDetail(courseId), new BaseObserver<HomeworkDetailBean>(getView()) {
+            @Override
+            protected void onSuccess(HomeworkDetailBean data) {
+                if (getView() != null) {
+                    getView().getDetailInfoSuccess(data);
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
+}

+ 6 - 0
student/src/main/java/com/cooleshow/student/ui/course/PianoRoomCourseDetailActivity.java

@@ -53,6 +53,12 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
     @Override
     public void initData() {
         super.initData();
+
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
         refresh();
     }
 

+ 197 - 0
student/src/main/java/com/cooleshow/student/ui/work/HomeWorkDetailActivity.java

@@ -0,0 +1,197 @@
+package com.cooleshow.student.ui.work;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.widgets.VideoThumbnailView;
+import com.cooleshow.student.R;
+import com.cooleshow.student.bean.HomeworkDetailBean;
+import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
+import com.cooleshow.student.constants.CourseConstants;
+import com.cooleshow.student.contract.HomeWorkDetailContract;
+import com.cooleshow.student.databinding.ActivityHomeworkDetailLayoutBinding;
+import com.cooleshow.student.presenter.homework.HomeWorkADetailPresenter;
+import com.cooleshow.student.ui.course.PianoRoomCourseDetailActivity;
+
+/**
+ * Author by pq, Date on 2022/7/6.
+ * 学生端作业详情页面(包括琴房课,陪练课)
+ */
+@Route(path = RouterPath.WorkCenter.STUDENT_HOMEWORK_DETAIL)
+public class HomeWorkDetailActivity extends BaseMVPActivity<ActivityHomeworkDetailLayoutBinding, HomeWorkADetailPresenter> implements HomeWorkDetailContract.HomeWorkDetailView {
+    public static final String COURSE_ID_KEY = "course_id";
+    private String courseId;
+    private HomeworkDetailBean mInfoBean;
+
+    @Override
+    protected void initView() {
+        String courseId = getIntent().getStringExtra(COURSE_ID_KEY);
+        if (TextUtils.isEmpty(courseId)) {
+            finish();
+            return;
+        }
+    }
+
+    @Override
+    public void initData() {
+        super.initData();
+
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (presenter != null) {
+            presenter.queryHomeworkDetail(courseId);
+        }
+    }
+
+    @Override
+    protected ActivityHomeworkDetailLayoutBinding getLayoutView() {
+        return ActivityHomeworkDetailLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected HomeWorkADetailPresenter createPresenter() {
+        return new HomeWorkADetailPresenter();
+    }
+
+    @Override
+    public void getDetailInfoSuccess(HomeworkDetailBean infoBean) {
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        this.mInfoBean = infoBean;
+        //时间
+        viewBinding.tvCourseTime.setText(infoBean.classDate);
+        //学生头像
+        if(TextUtils.equals(infoBean.courseType,CourseConstants.OTHER_COURSE)){
+            GlideUtils.INSTANCE.loadImage(this, infoBean.teacherAvatar, viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
+        }else{
+            viewBinding.ivAvatar.setImageResource(R.drawable.icon_piano_room_course);
+        }
+        //title
+        viewBinding.tvTitle.setText(infoBean.teacherName);
+        //subjectName
+        viewBinding.tvCourseName.setText(infoBean.subjectName);
+
+        String status = infoBean.courseStatus;
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_NOT_START, status)) {
+            //课程未开始
+            viewBinding.tvCourseStatus.setText(getString(R.string.course_not_start_str));
+            viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
+        }
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
+            //课程进行中
+            viewBinding.tvCourseStatus.setText(R.string.course_ing_str);
+            viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+        }
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_COMPLETE, status)) {
+            //课程已结束
+            viewBinding.tvCourseStatus.setText(R.string.course_is_completed);
+            viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_999999));
+        }
+        //课后作业
+        handleHomeworkData(infoBean);
+        //作业视频
+        handleHomeworkStudentSubmit(infoBean);
+        //作业点评
+        handleHomeworkComment(infoBean);
+    }
+
+
+    /**
+     * 学生提交的作业
+     *
+     * @param bean
+     */
+    private void handleHomeworkStudentSubmit(HomeworkDetailBean bean) {
+        if (bean == null) {
+            return;
+        }
+        //tv_homework_video_empty_text
+        if (bean.submitHomework == CourseConstants.COURSE_HOMEWORK_STU_SUBMIT) {
+            //学员已提交课后作业
+            viewBinding.tvHomeworkVideoEmptyText.setVisibility(View.GONE);
+            viewBinding.llHomeworkVideoContent.removeAllViews();
+            addVideoThumbnailView(bean.studentAttachments);
+        } else {
+            //学员未提交课后作业
+            viewBinding.tvHomeworkVideoEmptyText.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * 添加视频缩略图
+     *
+     * @param videoUrls
+     */
+    private void addVideoThumbnailView(String videoUrls) {
+        try {
+            if (!TextUtils.isEmpty(videoUrls)) {
+                String[] results = TextUtils.split(videoUrls, ",");
+                for (int i = 0; i < results.length; i++) {
+                    VideoThumbnailView videoThumbnailView = new VideoThumbnailView(HomeWorkDetailActivity.this);
+                    videoThumbnailView.setData(results[i]);
+                    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+                    int left = i == 0 ? 0 : SizeUtils.dp2px(6);
+                    layoutParams.setMargins(left, 0, 0, 0);
+                    layoutParams.weight = 1;
+                    viewBinding.llHomeworkVideoContent.addView(videoThumbnailView, layoutParams);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            viewBinding.llHomeworkVideoContent.removeAllViews();
+        }
+    }
+
+    /**
+     * 课后作业
+     */
+    private void handleHomeworkData(HomeworkDetailBean bean) {
+        if (bean == null) {
+            return;
+        }
+        if (bean.decorateHomework == CourseConstants.COURSE_HOMEWORK_SET) {
+            //已布置课后作业
+            viewBinding.tvHomeworkEmptyText.setVisibility(View.GONE);
+            viewBinding.tvHomeworkContent.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkContent.setText(bean.content);
+            viewBinding.tvSetHomework.setVisibility(View.GONE);
+        } else {
+            //未布置课后作业
+            viewBinding.tvHomeworkEmptyText.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkContent.setVisibility(View.GONE);
+            viewBinding.tvSetHomework.setVisibility(View.GONE);
+        }
+    }
+
+
+    /**
+     * 作业点评
+     */
+    private void handleHomeworkComment(HomeworkDetailBean bean) {
+        //tv_homework_comment_content
+        if (bean == null) {
+            return;
+        }
+        if (!TextUtils.isEmpty(bean.teacherReplied)) {
+            //老师已点评作业
+            viewBinding.tvHomeworkCommentEmptyText.setVisibility(View.GONE);
+            viewBinding.tvHomeworkSetComment.setVisibility(View.GONE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkCommentContent.setText(bean.teacherReplied);
+        } else {
+            viewBinding.tvHomeworkCommentEmptyText.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkSetComment.setVisibility(View.GONE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.GONE);
+        }
+    }
+}

+ 387 - 0
student/src/main/res/layout/activity_homework_detail_layout.xml

@@ -0,0 +1,387 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout_white" />
+
+    <androidx.core.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:overScrollMode="never"
+        android:scrollbars="none"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/toolbar_include">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingStart="14dp"
+            android:paddingTop="12dp"
+            android:paddingEnd="14dp"
+            android:paddingBottom="12dp">
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/bg_white_10dp"
+                android:paddingBottom="20dp">
+
+                <ImageView
+                    android:id="@+id/iv_time_icon"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="11dp"
+                    android:layout_marginTop="12dp"
+                    android:src="@drawable/icon_clock"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_course_time"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:includeFontPadding="false"
+                    android:paddingStart="7dp"
+                    android:textColor="@color/color_666666"
+                    android:textSize="@dimen/sp_13"
+                    app:layout_constraintBottom_toBottomOf="@+id/iv_time_icon"
+                    app:layout_constraintLeft_toRightOf="@+id/iv_time_icon"
+                    app:layout_constraintTop_toTopOf="@+id/iv_time_icon"
+                    tools:text="2021/09/17 14:00~14:25" />
+
+                <TextView
+                    android:id="@+id/tv_course_status"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginEnd="11dp"
+                    android:text="已结束"
+                    android:textColor="@color/color_999999"
+                    android:textSize="@dimen/sp_14"
+                    app:layout_constraintBottom_toBottomOf="@+id/iv_time_icon"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="@+id/iv_time_icon" />
+
+                <View
+                    android:id="@+id/view_line"
+                    android:layout_width="match_parent"
+                    android:layout_height="1px"
+                    android:layout_marginTop="10dp"
+                    android:background="@color/color_f2f2f2"
+                    app:layout_constraintTop_toBottomOf="@+id/iv_time_icon" />
+
+                <com.cooleshow.base.widgets.QMUIRadiusImageView
+                    android:id="@+id/iv_avatar"
+                    android:layout_width="47dp"
+                    android:layout_height="51dp"
+                    android:layout_marginStart="11dp"
+                    android:layout_marginTop="17dp"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/view_line" />
+
+                <TextView
+                    android:id="@+id/tv_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginEnd="10dp"
+                    android:ellipsize="end"
+                    android:includeFontPadding="false"
+                    android:maxLines="2"
+                    android:textColor="@color/color_1a1a1a"
+                    android:textSize="@dimen/sp_16"
+                    android:textStyle="bold"
+                    app:layout_constraintBottom_toTopOf="@+id/tv_course_name"
+                    app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
+                    app:layout_constraintRight_toLeftOf="@+id/iv_go_chat"
+                    app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+                    app:layout_constraintVertical_chainStyle="packed"
+                    tools:text="张豆豆张豆豆张豆豆张豆" />
+
+
+                <ImageView
+                    android:id="@+id/iv_go_chat"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="8dp"
+                    android:src="@drawable/icon_chat_small"
+                    app:layout_constraintBottom_toBottomOf="@+id/tv_title"
+                    app:layout_constraintLeft_toRightOf="@+id/tv_title"
+                    app:layout_constraintTop_toTopOf="@+id/tv_title" />
+
+                <TextView
+                    android:id="@+id/tv_course_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dp"
+                    android:background="@drawable/shape_couse_type_text_bg"
+                    android:gravity="center"
+                    android:includeFontPadding="false"
+                    android:paddingStart="4dp"
+                    android:paddingTop="2dp"
+                    android:paddingEnd="4dp"
+                    android:paddingBottom="2dp"
+                    android:textColor="@color/color_ff8c00"
+                    android:textSize="@dimen/sp_11"
+                    app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"
+                    app:layout_constraintLeft_toLeftOf="@+id/tv_title"
+                    app:layout_constraintTop_toBottomOf="@+id/tv_title"
+                    tools:text="单簧管" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dp"
+                android:background="@drawable/bg_white_10dp"
+                android:paddingBottom="10dp">
+
+                <View
+                    android:id="@+id/view_title_line_homework"
+                    android:layout_width="4dp"
+                    android:layout_height="14dp"
+                    android:layout_marginStart="12dp"
+                    android:layout_marginTop="13dp"
+                    android:background="@drawable/shape_course_title_tag_bg"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_homework_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:includeFontPadding="false"
+                    android:paddingStart="5dp"
+                    android:text="课后作业"
+                    android:textColor="@color/color_1a1a1a"
+                    android:textSize="@dimen/sp_13"
+                    app:layout_constraintBottom_toBottomOf="@+id/view_title_line_homework"
+                    app:layout_constraintLeft_toRightOf="@+id/view_title_line_homework"
+                    app:layout_constraintTop_toTopOf="@+id/view_title_line_homework" />
+
+                <TextView
+                    android:id="@+id/tv_set_homework"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:drawableLeft="@drawable/icon_set_homework"
+                    android:drawablePadding="3dp"
+                    android:includeFontPadding="false"
+                    android:paddingEnd="11dp"
+                    android:text="@string/set_homework_str"
+                    android:textColor="@color/color_2dc7aa"
+                    android:textSize="@dimen/sp_14"
+                    android:visibility="invisible"
+                    app:layout_constraintBottom_toBottomOf="@+id/view_title_line_homework"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="@+id/view_title_line_homework" />
+
+                <FrameLayout
+                    android:id="@+id/view_homework_content_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="11dp"
+                    android:layout_marginTop="11dp"
+                    android:layout_marginEnd="11dp"
+                    android:background="@drawable/shape_bg_f7f8f9_4dp"
+                    android:minHeight="88dp"
+                    android:padding="11dp"
+                    app:layout_constraintTop_toBottomOf="@+id/view_title_line_homework">
+
+                    <TextView
+                        android:id="@+id/tv_homework_empty_text"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:drawableLeft="@drawable/icon_homework_empty"
+                        android:drawablePadding="8dp"
+                        android:gravity="center_vertical"
+                        android:text="老师尚未布置作业"
+                        android:textColor="@color/color_999999"
+                        android:textSize="@dimen/sp_13" />
+
+                    <TextView
+                        android:id="@+id/tv_homework_content"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:includeFontPadding="false"
+                        android:textColor="@color/color_333333"
+                        android:textSize="@dimen/sp_13"
+                        android:visibility="gone"
+                        tools:text="每个音的指法比较熟练,但是遇到指法变换比较频繁的小节熟练度不足,建议平时可以选择指法变换较大的曲目多加练习!" />
+                </FrameLayout>
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dp"
+                android:background="@drawable/bg_white_10dp"
+                android:paddingBottom="10dp">
+
+                <View
+                    android:id="@+id/view_title_line_homework_video"
+                    android:layout_width="4dp"
+                    android:layout_height="14dp"
+                    android:layout_marginStart="12dp"
+                    android:layout_marginTop="13dp"
+                    android:background="@drawable/shape_course_title_tag_bg"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_homework_video_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:includeFontPadding="false"
+                    android:paddingStart="5dp"
+                    android:text="作业视频"
+                    android:textColor="@color/color_1a1a1a"
+                    android:textSize="@dimen/sp_13"
+                    app:layout_constraintBottom_toBottomOf="@+id/view_title_line_homework_video"
+                    app:layout_constraintLeft_toRightOf="@+id/view_title_line_homework_video"
+                    app:layout_constraintTop_toTopOf="@+id/view_title_line_homework_video" />
+
+                <FrameLayout
+                    android:id="@+id/view_homework_video_content_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="11dp"
+                    android:layout_marginTop="11dp"
+                    android:layout_marginEnd="11dp"
+                    android:background="@drawable/shape_bg_f7f8f9_4dp"
+                    android:minHeight="88dp"
+                    android:padding="11dp"
+                    app:layout_constraintTop_toBottomOf="@+id/view_title_line_homework_video">
+
+                    <TextView
+                        android:id="@+id/tv_homework_video_empty_text"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:drawableLeft="@drawable/icon_homework_video_empty"
+                        android:drawablePadding="8dp"
+                        android:gravity="center_vertical"
+                        android:text="您尚未上传作业视频"
+                        android:textColor="@color/color_999999"
+                        android:textSize="@dimen/sp_13" />
+
+                    <LinearLayout
+                        android:id="@+id/ll_homework_video_content"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:orientation="horizontal"
+                        android:weightSum="3"
+                        tools:text="每个音的指法比较熟练,但是遇到指法变换比较频繁的小节熟练度不足,建议平时可以选择指法变换较大的曲目多加练习!" />
+                </FrameLayout>
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dp"
+                android:background="@drawable/bg_white_10dp"
+                android:paddingBottom="10dp">
+
+                <View
+                    android:id="@+id/view_title_line_homework_comment"
+                    android:layout_width="4dp"
+                    android:layout_height="14dp"
+                    android:layout_marginStart="12dp"
+                    android:layout_marginTop="13dp"
+                    android:background="@drawable/shape_course_title_tag_bg"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_homework_comment_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:includeFontPadding="false"
+                    android:paddingStart="5dp"
+                    android:text="作业点评"
+                    android:textColor="@color/color_1a1a1a"
+                    android:textSize="@dimen/sp_13"
+                    app:layout_constraintBottom_toBottomOf="@+id/view_title_line_homework_comment"
+                    app:layout_constraintLeft_toRightOf="@+id/view_title_line_homework_comment"
+                    app:layout_constraintTop_toTopOf="@+id/view_title_line_homework_comment" />
+
+                <TextView
+                    android:id="@+id/tv_homework_set_comment"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:drawableLeft="@drawable/icon_edit_appraisal"
+                    android:drawablePadding="3dp"
+                    android:includeFontPadding="false"
+                    android:paddingEnd="11dp"
+                    android:text="@string/comment_str"
+                    android:textColor="@color/color_2dc7aa"
+                    android:textSize="@dimen/sp_14"
+                    android:visibility="invisible"
+                    app:layout_constraintBottom_toBottomOf="@+id/view_title_line_homework_comment"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="@+id/view_title_line_homework_comment" />
+
+                <FrameLayout
+                    android:id="@+id/view_homework_comment_content_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="11dp"
+                    android:layout_marginTop="11dp"
+                    android:layout_marginEnd="11dp"
+                    android:background="@drawable/shape_bg_f7f8f9_4dp"
+                    android:minHeight="88dp"
+                    android:padding="11dp"
+                    app:layout_constraintTop_toBottomOf="@+id/view_title_line_homework_comment">
+
+                    <TextView
+                        android:id="@+id/tv_homework_comment_empty_text"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:drawableLeft="@drawable/icon_homework_comment"
+                        android:drawablePadding="8dp"
+                        android:gravity="center_vertical"
+                        android:text="老师尚未点评作业"
+                        android:textColor="@color/color_999999"
+                        android:textSize="@dimen/sp_13" />
+
+                    <TextView
+                        android:id="@+id/tv_homework_comment_content"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:includeFontPadding="false"
+                        android:textColor="@color/color_333333"
+                        android:textSize="@dimen/sp_13"
+                        android:visibility="gone"
+                        tools:text="每个音的指法比较熟练,但是遇到指法变换比较频繁的小节熟练度不足,建议平时可以选择指法变换较大的曲目多加练习!" />
+                </FrameLayout>
+            </androidx.constraintlayout.widget.ConstraintLayout>
+        </LinearLayout>
+    </androidx.core.widget.NestedScrollView>
+
+    <TextView
+        android:id="@+id/tv_enter_room"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:layout_marginStart="27dp"
+        android:layout_marginEnd="27dp"
+        android:layout_marginBottom="30dp"
+        android:background="@drawable/shape_2dc7aa_39dp"
+        android:gravity="center"
+        android:text="进入教室"
+        android:textColor="@color/white"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>