Explorar o código

添加老师首页"我的"页面

Pq %!s(int64=3) %!d(string=hai) anos
pai
achega
526d361ad9
Modificáronse 40 ficheiros con 735 adicións e 42 borrados
  1. BIN=BIN
      BaseLibrary/src/main/res/drawable-xhdpi/icon_arrow_right.png
  2. BIN=BIN
      BaseLibrary/src/main/res/drawable-xxhdpi/icon_arrow_right.png
  3. 14 0
      BaseLibrary/src/main/res/values/styles.xml
  4. 0 6
      teacher/src/main/java/com/cooleshow/teacher/contract/HomeContract.java
  5. 23 0
      teacher/src/main/java/com/cooleshow/teacher/contract/MainContract.java
  6. 15 0
      teacher/src/main/java/com/cooleshow/teacher/contract/MineContract.java
  7. 6 8
      teacher/src/main/java/com/cooleshow/teacher/presenter/main/HomePresenter.java
  8. 44 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/main/MainPresenter.java
  9. 42 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/main/MinePresenter.java
  10. 1 17
      teacher/src/main/java/com/cooleshow/teacher/ui/main/HomeFragment.kt
  11. 57 11
      teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java
  12. 54 0
      teacher/src/main/java/com/cooleshow/teacher/ui/main/MineFragment.java
  13. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_bank_card.png
  14. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_equipment_testing.png
  15. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_goods_order.png
  16. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_help_center.png
  17. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_live_course.png
  18. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_mine_page.png
  19. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_mine_style.png
  20. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_music_person_cert.png
  21. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_net_check.png
  22. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_open_live.png
  23. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_setting.png
  24. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_sparing_course_set.png
  25. BIN=BIN
      teacher/src/main/res/drawable-xhdpi/icon_video_course.png
  26. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_bank_card.png
  27. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_equipment_testing.png
  28. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_goods_order.png
  29. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_help_center.png
  30. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_live_course.png
  31. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_mine_page.png
  32. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_mine_style.png
  33. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_music_person_cert.png
  34. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_net_check.png
  35. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_open_live.png
  36. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_setting.png
  37. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_sparing_course_set.png
  38. BIN=BIN
      teacher/src/main/res/drawable-xxhdpi/icon_video_course.png
  39. 478 0
      teacher/src/main/res/layout/fragment_mine_layout.xml
  40. 1 0
      teacher/src/main/res/values/strings.xml

BIN=BIN
BaseLibrary/src/main/res/drawable-xhdpi/icon_arrow_right.png


BIN=BIN
BaseLibrary/src/main/res/drawable-xxhdpi/icon_arrow_right.png


+ 14 - 0
BaseLibrary/src/main/res/values/styles.xml

@@ -340,4 +340,18 @@
         <!--相册文件夹列表选中图标-->
         <item name="picture.folder_checked_dot">@drawable/picture_orange_oval</item>
     </style>
+
+    <style name="me_btn_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:drawableRight">@drawable/icon_arrow_right</item>
+        <item name="android:drawablePadding">5dp</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:paddingLeft">10dp</item>
+        <item name="android:paddingTop">10dp</item>
+        <item name="android:paddingRight">12dp</item>
+        <item name="android:paddingBottom">10dp</item>
+        <item name="android:textColor">@color/color_1a1a1a</item>
+        <item name="android:textSize">@dimen/sp_15</item>
+    </style>
 </resources>

+ 0 - 6
teacher/src/main/java/com/cooleshow/teacher/contract/HomeContract.java

@@ -10,14 +10,8 @@ import com.cooleshow.usercenter.bean.UserInfo;
 public interface HomeContract {
 
     interface HomeView extends BaseView {
-        void getUserInfoSuccess(UserInfo userInfo);
-
-        void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo);
     }
 
     interface Presenter {
-        void getUserInfo();
-
-        void getTeacherUserInfo();
     }
 }

+ 23 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/MainContract.java

@@ -0,0 +1,23 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.usercenter.bean.UserInfo;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public interface MainContract {
+
+    interface MainView extends BaseView {
+        void getUserInfoSuccess(UserInfo userInfo);
+
+        void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo);
+    }
+
+    interface Presenter {
+        void getUserInfo();
+
+        void getTeacherUserInfo();
+    }
+}

+ 15 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/MineContract.java

@@ -0,0 +1,15 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public interface MineContract {
+
+    interface MineView extends BaseView {
+    }
+
+    interface Presenter {
+    }
+}

+ 6 - 8
teacher/src/main/java/com/cooleshow/teacher/presenter/main/HomePresenter.java

@@ -23,26 +23,24 @@ public class HomePresenter extends BasePresenter<HomeContract.HomeView> implemen
      *
      * @param
      */
-    @Override
     public void getUserInfo() {
         addSubscribe(create(APIService.class).getUserInfo(), new BaseObserver<UserInfo>(getView()) {
             @Override
             protected void onSuccess(UserInfo data) {
-                if (getView() != null) {
-                    getView().getUserInfoSuccess(data);
-                }
+//                if (getView() != null) {
+//                    getView().getUserInfoSuccess(data);
+//                }
             }
         });
     }
 
-    @Override
     public void getTeacherUserInfo() {
         addSubscribe(create(APIService.class).getTeacherUserInfo(), new BaseObserver<TeacherUserInfo>(getView()) {
             @Override
             protected void onSuccess(TeacherUserInfo data) {
-                if (getView() != null) {
-                    getView().getTeacherInfoSuccess(data);
-                }
+//                if (getView() != null) {
+//                    getView().getTeacherInfoSuccess(data);
+//                }
             }
         });
     }

+ 44 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/main/MainPresenter.java

@@ -0,0 +1,44 @@
+package com.cooleshow.teacher.presenter.main;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.contract.HomeContract;
+import com.cooleshow.teacher.contract.MainContract;
+import com.cooleshow.usercenter.bean.UserInfo;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public class MainPresenter extends BasePresenter<MainContract.MainView> implements MainContract.Presenter {
+
+    /**
+     * 查询UserInfo
+     *
+     * @param
+     */
+    @Override
+    public void getUserInfo() {
+        addSubscribe(create(APIService.class).getUserInfo(), new BaseObserver<UserInfo>(getView()) {
+            @Override
+            protected void onSuccess(UserInfo data) {
+                if (getView() != null) {
+                    getView().getUserInfoSuccess(data);
+                }
+            }
+        });
+    }
+
+    @Override
+    public void getTeacherUserInfo() {
+        addSubscribe(create(APIService.class).getTeacherUserInfo(), new BaseObserver<TeacherUserInfo>(getView()) {
+            @Override
+            protected void onSuccess(TeacherUserInfo data) {
+                if (getView() != null) {
+                    getView().getTeacherInfoSuccess(data);
+                }
+            }
+        });
+    }
+}

+ 42 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/main/MinePresenter.java

@@ -0,0 +1,42 @@
+package com.cooleshow.teacher.presenter.main;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.contract.HomeContract;
+import com.cooleshow.teacher.contract.MineContract;
+import com.cooleshow.usercenter.bean.UserInfo;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public class MinePresenter extends BasePresenter<MineContract.MineView> implements MineContract.Presenter {
+
+    /**
+     * 查询UserInfo
+     *
+     * @param
+     */
+    public void getUserInfo() {
+        addSubscribe(create(APIService.class).getUserInfo(), new BaseObserver<UserInfo>(getView()) {
+            @Override
+            protected void onSuccess(UserInfo data) {
+//                if (getView() != null) {
+//                    getView().getUserInfoSuccess(data);
+//                }
+            }
+        });
+    }
+
+    public void getTeacherUserInfo() {
+        addSubscribe(create(APIService.class).getTeacherUserInfo(), new BaseObserver<TeacherUserInfo>(getView()) {
+            @Override
+            protected void onSuccess(TeacherUserInfo data) {
+//                if (getView() != null) {
+//                    getView().getTeacherInfoSuccess(data);
+//                }
+            }
+        });
+    }
+}

+ 1 - 17
teacher/src/main/java/com/cooleshow/teacher/ui/main/HomeFragment.kt

@@ -45,24 +45,8 @@ class HomeFragment : BaseMVPFragment<FragmentHomeLayoutBinding, HomePresenter>()
         return HomePresenter()
     }
 
-    override fun onResume() {
-        super.onResume()
-        presenter.getUserInfo()
-        presenter.getTeacherUserInfo()
-    }
-
-    override fun getUserInfoSuccess(userInfo: UserInfo?) {
-        if (isDetached) {
-            return;
-        }
-        if (context == null || userInfo == null) {
-            return
-        }
-        //存储userInfo信息
-        UserHelper.saveUserInfo(userInfo)
-    }
 
-    override fun getTeacherInfoSuccess(teacherUserInfo: TeacherUserInfo) {
+    fun getTeacherInfoSuccess(teacherUserInfo: TeacherUserInfo) {
         if (isDetached) {
             return;
         }

+ 57 - 11
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -8,11 +8,16 @@ import com.alibaba.android.arouter.facade.annotation.Route;
 import com.common.im.ui.MessageFragment;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.HomePageAdapter;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.contract.MainContract;
 import com.cooleshow.teacher.databinding.ActivityMainBinding;
+import com.cooleshow.teacher.presenter.main.MainPresenter;
+import com.cooleshow.usercenter.bean.UserInfo;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.daya.live_teaching.common.ResultCallback;
 import com.daya.live_teaching.im.IMManager;
@@ -31,8 +36,10 @@ import io.rong.imlib.RongIMClient;
  * Author by pq, Date on 2022/4/20.
  */
 @Route(path = RouterPath.APPCenter.PATH_HOME)
-public class MainActivity extends BaseActivity<ActivityMainBinding> {
+public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPresenter> implements MainContract.MainView {
     private ArrayList<Fragment> mFragments = new ArrayList<>();
+    private HomeFragment mHomeFragment;
+    private MineFragment mMineFragment;
 
 
     @Override
@@ -50,16 +57,16 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
     @Override
     protected void initView() {
         HomePageAdapter homePageAdapter = new HomePageAdapter(this);
-        HomeFragment homeFragment = new HomeFragment();
+        mHomeFragment = new HomeFragment();
         CourseTableFragment courseTableFragment = new CourseTableFragment();
         MessageFragment messageFragment = new MessageFragment();
         HomeFragment homeFragment3 = new HomeFragment();
-        HomeFragment homeFragment4 = new HomeFragment();
-        mFragments.add(homeFragment);
+        mMineFragment = new MineFragment();
+        mFragments.add(mHomeFragment);
         mFragments.add(courseTableFragment);
         mFragments.add(messageFragment);
         mFragments.add(homeFragment3);
-        mFragments.add(homeFragment4);
+        mFragments.add(mMineFragment);
         homePageAdapter.setFragments(mFragments);
         getViewBinding().viewPager.setAdapter(homePageAdapter);
         getViewBinding().viewPager.setOffscreenPageLimit(mFragments.size());
@@ -72,12 +79,17 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
         });
     }
 
+    public void refreshUserInfo() {
+
+    }
+
     @Override
-    protected void initData() {
+    public void initData() {
         super.initData();
         connectIM();
     }
 
+
     /**
      * 连接rong IM
      */
@@ -105,25 +117,59 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
 
     private boolean onTabClick(int viewId) {
         if (viewId == R.id.menu_home) {
-            getViewBinding().viewPager.setCurrentItem(0);
+            getViewBinding().viewPager.setCurrentItem(0,false);
             return true;
         }
         if (viewId == R.id.menu_coursetable) {
-            getViewBinding().viewPager.setCurrentItem(1);
+            getViewBinding().viewPager.setCurrentItem(1,false);
             return true;
         }
         if (viewId == R.id.menu_chat) {
-            getViewBinding().viewPager.setCurrentItem(2);
+            getViewBinding().viewPager.setCurrentItem(2,false);
             return true;
         }
         if (viewId == R.id.menu_mall) {
-            getViewBinding().viewPager.setCurrentItem(3);
+            getViewBinding().viewPager.setCurrentItem(3,false);
             return true;
         }
         if (viewId == R.id.menu_mine) {
-            getViewBinding().viewPager.setCurrentItem(4);
+            getViewBinding().viewPager.setCurrentItem(4,false);
         }
         return true;
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        presenter.getUserInfo();
+        presenter.getTeacherUserInfo();
+    }
+
+    @Override
+    public void getUserInfoSuccess(UserInfo userInfo) {
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        //存储userInfo信息
+        UserHelper.saveUserInfo(userInfo);
+
+    }
+
+    @Override
+    public void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo) {
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        if (mHomeFragment != null) {
+            mHomeFragment.getTeacherInfoSuccess(teacherUserInfo);
+        }
+        if (mMineFragment != null) {
+            mMineFragment.getTeacherInfoSuccess(teacherUserInfo);
+        }
+    }
+
+    @Override
+    protected MainPresenter createPresenter() {
+        return new MainPresenter();
+    }
 }

+ 54 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/main/MineFragment.java

@@ -0,0 +1,54 @@
+package com.cooleshow.teacher.ui.main;
+
+import android.view.View;
+
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.Utils;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.contract.MineContract;
+import com.cooleshow.teacher.databinding.FragmentMineLayoutBinding;
+import com.cooleshow.teacher.presenter.main.MinePresenter;
+import com.cooleshow.usercenter.helper.UserHelper;
+
+/**
+ * Author by pq, Date on 2022/5/9.
+ */
+public class MineFragment extends BaseMVPFragment<FragmentMineLayoutBinding, MinePresenter> implements MineContract.MineView {
+
+    @Override
+    protected void initView(View rootView) {
+        Utils.setHeadView(mViewBinding.viewStatusBar, requireContext(), 0);
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    public void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo) {
+        //头像
+        GlideUtils.INSTANCE.loadImage(requireContext(), teacherUserInfo.heardUrl, mViewBinding.ivAvatar);
+        //昵称
+        mViewBinding.tvNickname.setText(UserHelper.getTeacherName(teacherUserInfo.username, teacherUserInfo.userId));
+        //星级
+        mViewBinding.ratingBar.setRating(teacherUserInfo.starGrade);
+        //粉丝数
+        mViewBinding.tvFansNum.setText(teacherUserInfo.fansNum);
+        //已上课时数
+        mViewBinding.tvCourseNumCompleted.setText(teacherUserInfo.expTime);
+        //未上课时数
+        mViewBinding.tvCourseNumNotStart.setText(teacherUserInfo.unExpTime);
+    }
+
+
+    @Override
+    protected FragmentMineLayoutBinding getLayoutView() {
+        return FragmentMineLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected MinePresenter createPresenter() {
+        return new MinePresenter();
+    }
+}

BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_bank_card.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_equipment_testing.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_goods_order.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_help_center.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_live_course.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_mine_page.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_mine_style.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_music_person_cert.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_net_check.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_open_live.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_setting.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_sparing_course_set.png


BIN=BIN
teacher/src/main/res/drawable-xhdpi/icon_video_course.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_bank_card.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_equipment_testing.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_goods_order.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_help_center.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_live_course.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_mine_page.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_mine_style.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_music_person_cert.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_net_check.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_open_live.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_setting.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_sparing_course_set.png


BIN=BIN
teacher/src/main/res/drawable-xxhdpi/icon_video_course.png


+ 478 - 0
teacher/src/main/res/layout/fragment_mine_layout.xml

@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView 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"
+    android:overScrollMode="never"
+    android:scrollbars="none">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingBottom="15dp">
+
+
+        <ImageView
+            android:id="@+id/iv_header_bg"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:adjustViewBounds="true"
+            android:scaleType="fitXY"
+            android:src="@drawable/bg_login_header"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <View
+            android:id="@+id/view_status_bar"
+            android:layout_width="match_parent"
+            android:layout_height="1px"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/iv_setting"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:padding="15dp"
+            android:src="@drawable/icon_setting"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_status_bar" />
+
+        <de.hdodenhof.circleimageview.CircleImageView
+            android:id="@+id/iv_avatar"
+            android:layout_width="52dp"
+            android:layout_height="52dp"
+            android:layout_marginStart="14dp"
+            android:layout_marginTop="74dp"
+            android:src="@drawable/icon_teacher_default_head"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_status_bar" />
+
+        <TextView
+            android:id="@+id/tv_nickname"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="10dp"
+            android:layout_marginBottom="10dp"
+            android:includeFontPadding="false"
+            android:text="游客12e32td"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_18"
+            app:layout_constraintBottom_toTopOf="@+id/rating_bar"
+            app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
+            app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+            app:layout_constraintVertical_chainStyle="packed"
+            tools:text="游客12e32td" />
+
+        <ImageView
+            android:id="@+id/iv_teacher_entry_tag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="6dp"
+            android:src="@drawable/icon_teahcer_entry_tag"
+            android:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_nickname"
+            app:layout_constraintLeft_toRightOf="@+id/tv_nickname"
+            app:layout_constraintTop_toTopOf="@+id/tv_nickname" />
+
+        <ImageView
+            android:id="@+id/iv_teacher_music_person_tag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="3dp"
+            android:src="@drawable/icon_teacher_music_person_tag"
+            android:visibility="gone"
+            app:layout_constraintBottom_toBottomOf="@+id/iv_teacher_entry_tag"
+            app:layout_constraintLeft_toRightOf="@+id/iv_teacher_entry_tag"
+            app:layout_constraintTop_toTopOf="@+id/iv_teacher_entry_tag" />
+
+        <RatingBar
+            android:id="@+id/rating_bar"
+            style="@style/HomeRatingBar"
+            android:layout_width="wrap_content"
+            android:layout_height="19dp"
+            android:numStars="5"
+            android:rating="3"
+            android:stepSize="1"
+            app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"
+            app:layout_constraintLeft_toLeftOf="@+id/tv_nickname"
+            app:layout_constraintTop_toBottomOf="@+id/tv_nickname" />
+
+        <LinearLayout
+            android:gravity="center_vertical"
+            android:id="@+id/ll_fans"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="24dp"
+            android:orientation="horizontal"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toLeftOf="@+id/ll_course_num_completed"
+            app:layout_constraintTop_toBottomOf="@+id/iv_avatar">
+
+
+            <TextView
+                android:id="@+id/tv_fans_title"
+                android:layout_width="wrap_content"
+                android:layout_height="28dp"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:text="粉丝"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_14" />
+
+            <TextView
+                android:id="@+id/tv_fans_num"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:includeFontPadding="false"
+                android:paddingStart="3dp"
+                android:text="0"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_17"
+                android:textStyle="bold"
+                tools:text="1181" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="1dp"
+            android:layout_height="12dp"
+            android:background="@color/color_d3d3d3"
+            app:layout_constraintBottom_toBottomOf="@+id/ll_fans"
+            app:layout_constraintLeft_toRightOf="@+id/ll_fans"
+            app:layout_constraintRight_toLeftOf="@+id/ll_course_num_completed"
+            app:layout_constraintTop_toTopOf="@+id/ll_fans" />
+
+        <LinearLayout
+            android:gravity="center_vertical"
+            android:id="@+id/ll_course_num_completed"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            app:layout_constraintLeft_toRightOf="@+id/ll_fans"
+            app:layout_constraintRight_toLeftOf="@+id/ll_course_num_not_start"
+            app:layout_constraintTop_toTopOf="@+id/ll_fans">
+
+
+            <TextView
+                android:id="@+id/tv_course_num_completed_title"
+                android:layout_width="wrap_content"
+                android:layout_height="28dp"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:text="已上课时"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_14" />
+
+            <TextView
+                android:id="@+id/tv_course_num_completed"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:includeFontPadding="false"
+                android:paddingStart="3dp"
+                android:text="0"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_17"
+                android:textStyle="bold"
+                tools:text="118" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="1dp"
+            android:layout_height="12dp"
+            android:background="@color/color_d3d3d3"
+            app:layout_constraintBottom_toBottomOf="@+id/ll_fans"
+            app:layout_constraintLeft_toRightOf="@+id/ll_course_num_completed"
+            app:layout_constraintRight_toLeftOf="@+id/ll_course_num_not_start"
+            app:layout_constraintTop_toTopOf="@+id/ll_fans" />
+
+        <LinearLayout
+            android:gravity="center_vertical"
+            android:id="@+id/ll_course_num_not_start"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            app:layout_constraintLeft_toRightOf="@+id/ll_course_num_completed"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/ll_fans">
+
+
+            <TextView
+                android:id="@+id/tv_course_num_not_start_title"
+                android:layout_width="wrap_content"
+                android:layout_height="28dp"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:text="未上课时"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_14" />
+
+            <TextView
+                android:id="@+id/tv_course_num_not_start"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:includeFontPadding="false"
+                android:paddingStart="3dp"
+                android:text="0"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_17"
+                android:textStyle="bold"
+                tools:text="118" />
+        </LinearLayout>
+
+        <View
+            android:id="@+id/view_top_bg"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_marginStart="14dp"
+            android:layout_marginTop="19dp"
+            android:layout_marginEnd="14dp"
+            android:background="@drawable/bg_white_10dp"
+            app:layout_constraintBottom_toTopOf="@+id/top_bottom_view"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/ll_fans" />
+
+        <ImageView
+            android:id="@+id/iv_mine_page"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="25dp"
+            android:layout_marginTop="19dp"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_mine_page"
+            app:layout_constraintHorizontal_chainStyle="spread_inside"
+            app:layout_constraintLeft_toLeftOf="@+id/view_top_bg"
+            app:layout_constraintRight_toLeftOf="@+id/iv_mine_style"
+            app:layout_constraintTop_toTopOf="@+id/view_top_bg" />
+
+        <TextView
+            android:id="@+id/tv_mine_page"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="@string/mine_page_str"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_mine_page"
+            app:layout_constraintRight_toRightOf="@+id/iv_mine_page"
+            app:layout_constraintTop_toBottomOf="@+id/iv_mine_page" />
+
+
+        <ImageView
+            android:id="@+id/iv_mine_style"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_mine_style"
+            app:layout_constraintLeft_toRightOf="@+id/iv_mine_page"
+            app:layout_constraintRight_toLeftOf="@+id/iv_open_live"
+            app:layout_constraintTop_toTopOf="@+id/iv_mine_page" />
+
+        <TextView
+            android:id="@+id/tv_mine_style"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="个人风采"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_mine_style"
+            app:layout_constraintRight_toRightOf="@+id/iv_mine_style"
+            app:layout_constraintTop_toBottomOf="@+id/iv_mine_style" />
+
+
+        <ImageView
+            android:id="@+id/iv_open_live"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_open_live"
+            app:layout_constraintLeft_toRightOf="@+id/iv_mine_style"
+            app:layout_constraintRight_toLeftOf="@+id/iv_goods_order"
+            app:layout_constraintTop_toTopOf="@+id/iv_mine_page" />
+
+        <TextView
+            android:id="@+id/tv_open_live"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="开启直播"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_open_live"
+            app:layout_constraintRight_toRightOf="@+id/iv_open_live"
+            app:layout_constraintTop_toBottomOf="@+id/iv_open_live" />
+
+        <ImageView
+            android:id="@+id/iv_goods_order"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="25dp"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_goods_order"
+            app:layout_constraintLeft_toRightOf="@+id/iv_open_live"
+            app:layout_constraintRight_toRightOf="@+id/view_top_bg"
+            app:layout_constraintTop_toTopOf="@+id/iv_mine_page" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="商品订单"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_goods_order"
+            app:layout_constraintRight_toRightOf="@+id/iv_goods_order"
+            app:layout_constraintTop_toBottomOf="@+id/iv_goods_order" />
+
+
+        <ImageView
+            android:id="@+id/iv_sparing_course_set"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="27dp"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_sparing_course_set"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_mine_page"
+            app:layout_constraintRight_toRightOf="@+id/iv_mine_page"
+            app:layout_constraintTop_toBottomOf="@+id/tv_mine_page" />
+
+        <TextView
+            android:id="@+id/tv_sparing_course_set"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="陪练课设置"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_sparing_course_set"
+            app:layout_constraintRight_toRightOf="@+id/iv_sparing_course_set"
+            app:layout_constraintTop_toBottomOf="@+id/iv_sparing_course_set" />
+
+
+        <ImageView
+            android:id="@+id/iv_live_course"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_live_course"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_mine_style"
+            app:layout_constraintRight_toRightOf="@+id/iv_mine_style"
+            app:layout_constraintTop_toTopOf="@+id/iv_sparing_course_set" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="直播课"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_live_course"
+            app:layout_constraintRight_toRightOf="@+id/iv_live_course"
+            app:layout_constraintTop_toBottomOf="@+id/iv_live_course" />
+
+
+        <ImageView
+            android:id="@+id/iv_video_course"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:paddingBottom="7dp"
+            android:src="@drawable/icon_video_course"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_open_live"
+            app:layout_constraintRight_toRightOf="@+id/iv_open_live"
+            app:layout_constraintTop_toTopOf="@+id/iv_sparing_course_set" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:includeFontPadding="false"
+            android:text="视频课"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_12"
+            app:layout_constraintLeft_toLeftOf="@+id/iv_video_course"
+            app:layout_constraintRight_toRightOf="@+id/iv_video_course"
+            app:layout_constraintTop_toBottomOf="@+id/iv_video_course" />
+
+
+        <View
+            android:id="@+id/top_bottom_view"
+            android:layout_width="1px"
+            android:layout_height="1px"
+            android:layout_marginTop="28dp"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_sparing_course_set" />
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="14dp"
+            android:layout_marginTop="15dp"
+            android:layout_marginEnd="14dp"
+            android:background="@drawable/bg_white_10dp"
+            android:orientation="vertical"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_top_bg">
+
+            <TextView
+                android:id="@+id/tv_my_account"
+                style="@style/me_btn_style"
+                android:layout_marginTop="@dimen/dp_12"
+                android:drawableLeft="@drawable/icon_music_person_cert"
+                android:text="音乐人认证"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/tv_authentication"
+                style="@style/me_btn_style"
+                android:drawableLeft="@drawable/icon_bank_card"
+                android:text="银行卡"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible" />
+
+
+            <TextView
+                android:id="@+id/tv_network_monitoring"
+                style="@style/me_btn_style"
+                android:drawableLeft="@drawable/icon_net_check"
+                android:text="网络检测"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible" />
+
+
+            <TextView
+                android:id="@+id/tv_equipment_testing"
+                style="@style/me_btn_style"
+                android:drawableLeft="@drawable/icon_equipment_testing"
+                android:text="设备检测"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/tv_help"
+                style="@style/me_btn_style"
+                android:drawableLeft="@drawable/icon_help_center"
+                android:text="帮助中心"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible" />
+        </LinearLayout>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</ScrollView>

+ 1 - 0
teacher/src/main/res/values/strings.xml

@@ -16,4 +16,5 @@
     <string name="submit_action_str">提交</string>
     <string name="submit_comment_str">提交评价</string>
     <string name="submit_comment_success">评价成功</string>
+    <string name="mine_page_str">我的主页</string>
 </resources>