ソースを参照

添加学生端琴房课详情页

Pq 3 年 前
コミット
7d3a2d4447

+ 6 - 0
student/src/main/AndroidManifest.xml

@@ -129,6 +129,12 @@
             android:name=".ui.course.SparringCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
+
+        <activity
+            android:name=".ui.course.PianoRoomCourseDetailActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
+
         <activity
             android:name=".ui.course.PracticeCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"

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

@@ -19,6 +19,7 @@ import com.cooleshow.student.bean.HotAlbumBean;
 import com.cooleshow.student.bean.LiveCourseListBean;
 import com.cooleshow.student.bean.LiveRoomInfoBean;
 import com.cooleshow.student.bean.PayTestBean;
+import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
 import com.cooleshow.student.bean.PracticeCourseListBean;
 import com.cooleshow.student.bean.QuerySubjectBean;
 import com.cooleshow.student.bean.SelectMyGroupBean;
@@ -314,7 +315,7 @@ public interface APIService {
     Observable<BaseResponse<CourseTableDataBean>> getCourseSchedulesWithDate(@Body RequestBody body);
 
     /**
-     * 查询个人信息
+     * 查询陪练课信息
      *
      * @param
      * @return
@@ -323,6 +324,15 @@ public interface APIService {
     Observable<BaseResponse<SparringCourseHomeworkBean>> getSparringCourseHomework(@Path("courseId") String courseId);
 
     /**
+     * 查询琴房课信息
+     *
+     * @param
+     * @return
+     */
+    @GET(STUDENT_GROUP + "homework/detail/{courseId}")
+    Observable<BaseResponse<PianoRoomCourseHomeworkBean>> getPianoRoomCourseHomework(@Path("courseId") String courseId);
+
+    /**
      * 查询课程评价信息
      *
      * @param

+ 64 - 0
student/src/main/java/com/cooleshow/student/bean/PianoRoomCourseHomeworkBean.java

@@ -0,0 +1,64 @@
+package com.cooleshow.student.bean;
+
+/**
+ * Author by pq, Date on 2022/4/27.
+ */
+public class PianoRoomCourseHomeworkBean {
+
+    /**
+     "attachments": "",
+     "classDate": "",
+     "content": "",
+     "courseGroupId": 0,
+     "courseScheduleId": 0,
+     "courseStatus": "",
+     "courseType": "",
+     "decorateHomework": "",
+     "decorateTime": "",
+     "endTime": "",
+     "id": 0,
+     "reviewHomework": "",
+     "startTime": "",
+     "studentAttachments": "",
+     "studentAvatar": "",
+     "studentHomeworkId": 0,
+     "studentId": 0,
+     "studentName": "",
+     "subjectName": "",
+     "submitHomework": "",
+     "submitTime": "",
+     "teacherAvatar": "",
+     "teacherId": 0,
+     "teacherName": "",
+     "teacherReplied": "",
+     "title": ""
+     */
+    public String attachments;
+    public String classDate;
+    public String content;
+    public int courseGroupId;
+    public int courseScheduleId;
+    public String courseStatus;
+    public String courseType;
+    public int decorateHomework;
+    public Object decorateTime;
+    public String endTime;
+    public int id;
+    public int reviewHomework;
+    public String startTime;
+    public String studentAttachments;
+    public String studentAvatar;
+    public int studentHomeworkId;
+    public int studentId;
+    public String studentName;
+    public String subjectName;
+    public int submitHomework;
+    public Object submitTime;
+    public String teacherAvatar;
+    public int teacherId;
+    public String teacherName;
+    public String teacherReplied;
+    public String title;
+    public int homeworkExpire;//作业过期 1:已过期 0:未过期
+
+}

+ 24 - 0
student/src/main/java/com/cooleshow/student/contract/PianoRoomCourseDetailContract.java

@@ -0,0 +1,24 @@
+package com.cooleshow.student.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
+import com.cooleshow.student.bean.SparringCourseCommentBean;
+import com.cooleshow.student.bean.SparringCourseHomeworkBean;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public interface PianoRoomCourseDetailContract {
+
+    interface PianoRoomCourseDetailView extends BaseView {
+        void getPianoRoomCourseSuccess(PianoRoomCourseHomeworkBean homeworkBean);
+
+        void getPianoRoomCourseHomeworkError();
+
+
+    }
+
+    interface Presenter {
+        void getPianoRoomCourseInfo(String courseId);
+    }
+}

+ 43 - 0
student/src/main/java/com/cooleshow/student/presenter/course/PianoRoomCourseDetailPresenter.java

@@ -0,0 +1,43 @@
+package com.cooleshow.student.presenter.course;
+
+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.PianoRoomCourseHomeworkBean;
+import com.cooleshow.student.bean.SparringCourseCommentBean;
+import com.cooleshow.student.bean.SparringCourseHomeworkBean;
+import com.cooleshow.student.contract.PianoRoomCourseDetailContract;
+import com.cooleshow.student.contract.SparringCourseDetailContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * Author by pq, Date on 2022/4/27.
+ */
+public class PianoRoomCourseDetailPresenter extends BasePresenter<PianoRoomCourseDetailContract.PianoRoomCourseDetailView> implements PianoRoomCourseDetailContract.Presenter {
+
+    @Override
+    public void getPianoRoomCourseInfo(String courseId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        addSubscribe(create(APIService.class).getPianoRoomCourseHomework(courseId), new BaseObserver<PianoRoomCourseHomeworkBean>(getView()) {
+            @Override
+            protected void onSuccess(PianoRoomCourseHomeworkBean data) {
+                if (getView() != null) {
+                    getView().getPianoRoomCourseSuccess(data);
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (getView() != null) {
+                    getView().getPianoRoomCourseHomeworkError();
+                }
+            }
+        });
+    }
+}

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

@@ -0,0 +1,221 @@
+package com.cooleshow.student.ui.course;
+
+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.student.R;
+import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
+import com.cooleshow.student.bean.SparringCourseCommentBean;
+import com.cooleshow.student.bean.SparringCourseHomeworkBean;
+import com.cooleshow.student.constants.CourseConstants;
+import com.cooleshow.student.contract.PianoRoomCourseDetailContract;
+import com.cooleshow.student.contract.SparringCourseDetailContract;
+import com.cooleshow.student.databinding.ActivityPianoRoomCourseDetailLayoutBinding;
+import com.cooleshow.student.databinding.ActivitySparringCourseDetailLayoutBinding;
+import com.cooleshow.student.presenter.course.PianoRoomCourseDetailPresenter;
+import com.cooleshow.student.presenter.course.SparringCourseDetailPresenter;
+import com.cooleshow.student.widgets.CourseSetCommentDialog;
+import com.cooleshow.student.widgets.HomeworkVideoThumbnailView;
+
+import androidx.annotation.NonNull;
+
+/**
+ * Author by pq, Date on 2022/4/27.
+ */
+
+@Route(path = RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
+public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPianoRoomCourseDetailLayoutBinding, PianoRoomCourseDetailPresenter> implements PianoRoomCourseDetailContract.PianoRoomCourseDetailView, View.OnClickListener {
+    public static final String COURSE_ID = "course_id";
+    private String mCourseId;
+
+    @NonNull
+    @Override
+    protected ActivityPianoRoomCourseDetailLayoutBinding getLayoutView() {
+        return ActivityPianoRoomCourseDetailLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected void initView() {
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "课程详情");
+        mCourseId = getIntent().getStringExtra(COURSE_ID);
+        if (TextUtils.isEmpty(mCourseId)){
+            finish();
+            return;
+        }
+    }
+
+    @Override
+    public void initData() {
+        super.initData();
+        refresh();
+    }
+
+    private void refresh() {
+        if (presenter != null) {
+            presenter.getPianoRoomCourseInfo(mCourseId);
+        }
+    }
+
+    @Override
+    protected PianoRoomCourseDetailPresenter createPresenter() {
+        return new PianoRoomCourseDetailPresenter();
+    }
+
+    /**
+     * 获取课程详情成功
+     *
+     * @param infoBean
+     */
+    @Override
+    public void getPianoRoomCourseSuccess(PianoRoomCourseHomeworkBean infoBean) {
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        if (infoBean == null) {
+            return;
+        }
+        //时间
+        viewBinding.tvCourseTime.setText(infoBean.classDate);
+        //学生头像
+        GlideUtils.INSTANCE.loadImage(this, infoBean.studentAvatar, viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
+        //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);
+    }
+
+    @Override
+    public void getPianoRoomCourseHomeworkError() {
+
+    }
+
+    /**
+     * 作业点评
+     */
+    private void handleHomeworkComment(PianoRoomCourseHomeworkBean 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.VISIBLE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * 学生提交的作业
+     *
+     * @param bean
+     */
+    private void handleHomeworkStudentSubmit(PianoRoomCourseHomeworkBean 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++) {
+                    HomeworkVideoThumbnailView videoThumbnailView = new HomeworkVideoThumbnailView(PianoRoomCourseDetailActivity.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(PianoRoomCourseHomeworkBean 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.VISIBLE);
+        }
+    }
+
+
+    @Override
+    public void onClick(View v) {
+
+    }
+
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+    }
+
+}

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

@@ -124,6 +124,11 @@ class CourseTableFragment :
                     )
                     .withString(SparringCourseDetailActivity.STUDENT_ID, data.userId)
                     .navigation()
+            }else if(TextUtils.equals(CourseTableListAdapter.PIANO_ROOM_COURSE, data?.courseType)){
+                //琴房课 跳转详情页
+                ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
+                    .withString("course_id", data.courseId)
+                    .navigation()
             } else {
                 //直播课
                 ARouter.getInstance()

+ 370 - 0
student/src/main/res/layout/activity_piano_room_course_detail_layout.xml

@@ -0,0 +1,370 @@
+<?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">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:scaleType="fitXY"
+        android:src="@drawable/bg_sparring_course_header"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="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="0dp"
+                    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_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+                    app:layout_constraintVertical_chainStyle="packed"
+                    tools:text="张豆豆张豆豆张豆豆张豆" />
+
+                <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>
+
+</androidx.constraintlayout.widget.ConstraintLayout>