Browse Source

增加机构版我的页面

Pq 1 year ago
parent
commit
b3944eaea3
62 changed files with 711 additions and 2 deletions
  1. 14 0
      institution/src/main/java/com/cooleshow/institution/stu/contract/MineContract.java
  2. 24 0
      institution/src/main/java/com/cooleshow/institution/stu/presenter/MinePresenter.java
  3. 7 2
      institution/src/main/java/com/cooleshow/institution/stu/ui/main/MainActivity.java
  4. 63 0
      institution/src/main/java/com/cooleshow/institution/stu/ui/main/MineFragment.java
  5. BIN
      institution/src/main/res/drawable-xhdpi/icon_mine_class_num_tag.png
  6. BIN
      institution/src/main/res/drawable-xhdpi/icon_mine_stu_num_tag.png
  7. BIN
      institution/src/main/res/drawable-xhdpi/jg_bg_mine_top.png
  8. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_arrow_right_white.png
  9. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_go_righ.png
  10. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_go_right.png
  11. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_mine_top2.png
  12. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_mine_top3.png
  13. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_setting.png
  14. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_subject_tag.png
  15. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_vip_no_open.png
  16. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_vip_opened.png
  17. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_vip_tag2.png
  18. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_about.png
  19. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_activation_code.png
  20. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_feedback.png
  21. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_helpcenter.png
  22. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_order_info.png
  23. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_prctice_info.png
  24. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_prctice_tools.png
  25. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_rank_board.png
  26. BIN
      institution/src/main/res/drawable-xhdpi/jg_mine_track_list.png
  27. BIN
      institution/src/main/res/drawable-xhdpi/jg_privacy_policy.png
  28. BIN
      institution/src/main/res/drawable-xhdpi/jg_train_tools_title.png
  29. BIN
      institution/src/main/res/drawable-xhdpi/jg_user_protocol.png
  30. BIN
      institution/src/main/res/drawable-xhdpi/jg_vip_title.png
  31. BIN
      institution/src/main/res/drawable-xxhdpi/icon_mine_class_num_tag.png
  32. BIN
      institution/src/main/res/drawable-xxhdpi/icon_mine_stu_num_tag.png
  33. BIN
      institution/src/main/res/drawable-xxhdpi/jg_bg_mine_top.png
  34. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_arrow_right_white.png
  35. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_go_rig.png
  36. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_go_right.png
  37. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_mine_top2.png
  38. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_mine_top3.png
  39. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_setting.png
  40. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_subject_tag.png
  41. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_vip_no_open.png
  42. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_vip_opened.png
  43. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_vip_tag2.png
  44. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_about.png
  45. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_activation_code.png
  46. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_feedback.png
  47. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_helpcenter.png
  48. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_order_info.png
  49. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_prctice_info.png
  50. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_prctice_tools.png
  51. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_rank_board.png
  52. BIN
      institution/src/main/res/drawable-xxhdpi/jg_mine_track_list.png
  53. BIN
      institution/src/main/res/drawable-xxhdpi/jg_privacy_policy.png
  54. BIN
      institution/src/main/res/drawable-xxhdpi/jg_train_tools_title.png
  55. BIN
      institution/src/main/res/drawable-xxhdpi/jg_user_protocol.png
  56. BIN
      institution/src/main/res/drawable-xxhdpi/jg_vip_title.png
  57. 6 0
      institution/src/main/res/drawable/shape_4dffffff_border_white_10dp.xml
  58. 5 0
      institution/src/main/res/drawable/shape_ee9d9d_circle.xml
  59. 5 0
      institution/src/main/res/drawable/shape_f1c68c_circle.xml
  60. 5 0
      institution/src/main/res/drawable/shape_ffecec_10dp.xml
  61. 5 0
      institution/src/main/res/drawable/shape_fff2e2_10dp.xml
  62. 577 0
      institution/src/main/res/layout/fg_mine_layout.xml

+ 14 - 0
institution/src/main/java/com/cooleshow/institution/stu/contract/MineContract.java

@@ -0,0 +1,14 @@
+package com.cooleshow.institution.stu.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+
+/**
+ * Author by pq, Date on 2023/9/11.
+ */
+public interface MineContract {
+    public interface MineContractView extends BaseView{
+
+        void queryUserInfoSuccess(StudentUserInfo data);
+    }
+}

+ 24 - 0
institution/src/main/java/com/cooleshow/institution/stu/presenter/MinePresenter.java

@@ -0,0 +1,24 @@
+package com.cooleshow.institution.stu.presenter;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.institution.stu.contract.MainContract;
+import com.cooleshow.institution.stu.contract.MineContract;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+import com.cooleshow.usercenter.data.api.UserApi;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class MinePresenter extends BasePresenter<MineContract.MineContractView> {
+    public void queryUserInfo() {
+        addSubscribe(create(UserApi.class).queryUserInfo(), new BaseObserver<StudentUserInfo>(getView()) {
+            @Override
+            protected void onSuccess(StudentUserInfo data) {
+                if (getView() != null) {
+                    getView().queryUserInfoSuccess(data);
+                }
+            }
+        });
+    }
+}

+ 7 - 2
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MainActivity.java

@@ -55,6 +55,8 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
             onCountChanged(totalUnreadCount);
         }
     };
+    private MineFragment mMineFragment;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -66,10 +68,10 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
         HomePageAdapter homePageAdapter = new HomePageAdapter(this);
         mHomeFragment = new HomeFragment();
         mChatFragment = new ChatFragment();
-//        mMineFragment = new MineFragment();
+        mMineFragment = new MineFragment();
         mFragments.add(mHomeFragment);
         mFragments.add(mChatFragment);
-//        mFragments.add(mMineFragment);
+        mFragments.add(mMineFragment);
         homePageAdapter.setFragments(mFragments);
         viewBinding.viewPager.setAdapter(homePageAdapter);
         viewBinding.viewPager.setOffscreenPageLimit(mFragments.size());
@@ -168,6 +170,9 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
         if (mHomeFragment != null) {
             mHomeFragment.refreshUserInfo(data);
         }
+        if (mMineFragment != null) {
+            mMineFragment.refreshUserInfo(data);
+        }
     }
 
 

+ 63 - 0
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MineFragment.java

@@ -0,0 +1,63 @@
+package com.cooleshow.institution.stu.ui.main;
+
+import android.text.TextUtils;
+import android.view.View;
+
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.DateUtil;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.base.utils.Utils;
+import com.cooleshow.institution.stu.R;
+import com.cooleshow.institution.stu.databinding.FgMineLayoutBinding;
+import com.cooleshow.institution.stu.presenter.MinePresenter;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+
+/**
+ * Author by pq, Date on 2023/9/13.
+ */
+public class MineFragment extends BaseMVPFragment<FgMineLayoutBinding, MinePresenter> {
+    @Override
+    protected void initView(View rootView) {
+        Utils.setHeadView(mViewBinding.viewStatusBar, getContext(), 0);
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    @Override
+    protected FgMineLayoutBinding getLayoutView() {
+        return FgMineLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected MinePresenter createPresenter() {
+        return new MinePresenter();
+    }
+
+    public void refreshUserInfo(StudentUserInfo data) {
+        if (isDetached()) {
+            return;
+        }
+        if (data == null) {
+            return;
+        }
+        GlideUtils.INSTANCE.loadImage(getContext(), data.heardUrl, mViewBinding.ivAvatar, com.cooleshow.base.R.drawable.icon_default_head);
+
+        mViewBinding.tvNickName.setText(data.username);
+
+        mViewBinding.ivVipTag.setImageResource(data.isVip == 1 ? R.drawable.jg_icon_vip_opened : R.drawable.jg_icon_vip_no_open);
+
+        mViewBinding.tvSubjectName.setText(data.subjectName);
+
+        String vipTip = "暂未开通";
+        if (!TextUtils.isEmpty(data.membershipEndTime)) {
+            String s = DateUtil.date2Str(DateUtil.str2Date(data.membershipEndTime), "yyyy-MM-dd");
+            vipTip = "至" + s;
+        }
+        mViewBinding.tvVipStatus.setText(vipTip);
+
+    }
+}

BIN
institution/src/main/res/drawable-xhdpi/icon_mine_class_num_tag.png


BIN
institution/src/main/res/drawable-xhdpi/icon_mine_stu_num_tag.png


BIN
institution/src/main/res/drawable-xhdpi/jg_bg_mine_top.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_arrow_right_white.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_go_righ.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_go_right.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_mine_top2.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_mine_top3.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_setting.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_subject_tag.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_vip_no_open.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_vip_opened.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_vip_tag2.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_about.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_activation_code.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_feedback.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_helpcenter.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_order_info.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_prctice_info.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_prctice_tools.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_rank_board.png


BIN
institution/src/main/res/drawable-xhdpi/jg_mine_track_list.png


BIN
institution/src/main/res/drawable-xhdpi/jg_privacy_policy.png


BIN
institution/src/main/res/drawable-xhdpi/jg_train_tools_title.png


BIN
institution/src/main/res/drawable-xhdpi/jg_user_protocol.png


BIN
institution/src/main/res/drawable-xhdpi/jg_vip_title.png


BIN
institution/src/main/res/drawable-xxhdpi/icon_mine_class_num_tag.png


BIN
institution/src/main/res/drawable-xxhdpi/icon_mine_stu_num_tag.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_bg_mine_top.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_arrow_right_white.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_go_rig.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_go_right.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_mine_top2.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_mine_top3.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_setting.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_subject_tag.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_vip_no_open.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_vip_opened.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_vip_tag2.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_about.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_activation_code.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_feedback.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_helpcenter.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_order_info.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_prctice_info.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_prctice_tools.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_rank_board.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_mine_track_list.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_privacy_policy.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_train_tools_title.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_user_protocol.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_vip_title.png


+ 6 - 0
institution/src/main/res/drawable/shape_4dffffff_border_white_10dp.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#4dffffff"/>
+    <stroke android:color="@color/white" android:width="1dp"/>
+    <corners android:radius="10dp"/>
+</shape>

+ 5 - 0
institution/src/main/res/drawable/shape_ee9d9d_circle.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <solid android:color="#ee9d9d"/>
+</shape>

+ 5 - 0
institution/src/main/res/drawable/shape_f1c68c_circle.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <solid android:color="#f1c68c" />
+</shape>

+ 5 - 0
institution/src/main/res/drawable/shape_ffecec_10dp.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFECEC"/>
+    <corners android:radius="10dp"/>
+</shape>

+ 5 - 0
institution/src/main/res/drawable/shape_fff2e2_10dp.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFF2E2"/>
+    <corners android:radius="10dp"/>
+</shape>

+ 577 - 0
institution/src/main/res/layout/fg_mine_layout.xml

@@ -0,0 +1,577 @@
+<?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="12dp">
+
+
+        <View
+            android:id="@+id/view_top_white_bg"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:background="@color/white"
+            app:layout_constraintBottom_toBottomOf="@+id/cs_class_info"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/iv_top_bg"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:adjustViewBounds="true"
+            android:src="@drawable/jg_bg_mine_top"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+
+        <ImageView
+            android:id="@+id/iv_top_bg2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="19dp"
+            android:src="@drawable/jg_icon_mine_top2"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/iv_top_bg3"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/jg_icon_mine_top3"
+            app:layout_constraintRight_toRightOf="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="4dp"
+            android:padding="16dp"
+            android:src="@drawable/jg_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="68dp"
+            android:layout_height="68dp"
+            android:layout_marginStart="15dp"
+            android:layout_marginTop="44dp"
+            android:src="@drawable/icon_default_head"
+            app:civ_border_color="@color/white"
+            app:civ_border_width="2dp"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_status_bar" />
+
+
+        <TextView
+            android:id="@+id/tv_nickName"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="14dp"
+            android:ellipsize="end"
+            android:includeFontPadding="false"
+            android:maxLines="1"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_20"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toTopOf="@+id/fl_subject"
+            app:layout_constraintHorizontal_bias="0"
+            app:layout_constraintHorizontal_chainStyle="packed"
+            app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
+            app:layout_constraintRight_toLeftOf="@+id/iv_vip_tag"
+            app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+            app:layout_constraintVertical_chainStyle="packed"
+            app:layout_constraintWidth_default="wrap"
+            tools:text="宋小泽" />
+
+        <FrameLayout
+            android:id="@+id/fl_subject"
+            android:layout_width="wrap_content"
+            android:layout_height="19dp"
+            android:layout_marginTop="6dp"
+            android:paddingStart="7dp"
+            android:paddingEnd="7dp"
+            android:background="@drawable/shape_4dffffff_border_white_10dp"
+            app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"
+            app:layout_constraintLeft_toLeftOf="@+id/tv_nickName"
+            app:layout_constraintTop_toBottomOf="@+id/tv_nickName">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:src="@drawable/jg_icon_subject_tag" />
+
+            <TextView
+                android:id="@+id/tv_subject_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginStart="17dp"
+                android:includeFontPadding="false"
+                android:textColor="@color/color_fe2451"
+                android:textSize="@dimen/sp_12"
+                tools:text="长笛" />
+        </FrameLayout>
+
+        <ImageView
+            android:id="@+id/iv_vip_tag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="6dp"
+            android:layout_marginEnd="13dp"
+            android:src="@drawable/jg_icon_vip_no_open"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_nickName"
+            app:layout_constraintLeft_toRightOf="@+id/tv_nickName"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/tv_nickName" />
+
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/cs_class_info"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="27dp"
+            android:paddingBottom="15dp"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/iv_avatar">
+
+            <View
+                android:id="@+id/view_class_num"
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                android:layout_marginStart="13dp"
+                android:layout_marginBottom="12dp"
+                android:background="@drawable/shape_ffecec_10dp"
+                app:layout_constraintDimensionRatio="h,17:7"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toLeftOf="@+id/view_student_num"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <View
+                android:id="@+id/view_student_num"
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                android:layout_marginStart="9dp"
+                android:layout_marginEnd="13dp"
+                android:background="@drawable/shape_fff2e2_10dp"
+                app:layout_constraintBottom_toBottomOf="@+id/view_class_num"
+                app:layout_constraintLeft_toRightOf="@+id/view_class_num"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toTopOf="@+id/view_class_num" />
+
+
+            <ImageView
+                android:id="@+id/iv_class_num_tag"
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:adjustViewBounds="true"
+                android:src="@drawable/icon_mine_class_num_tag"
+                app:layout_constraintBottom_toBottomOf="@+id/view_class_num"
+                app:layout_constraintRight_toRightOf="@+id/view_class_num"
+                app:layout_constraintTop_toTopOf="@+id/view_class_num" />
+
+            <ImageView
+                android:id="@+id/iv_stu_num_tag"
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:adjustViewBounds="true"
+                android:src="@drawable/icon_mine_stu_num_tag"
+                app:layout_constraintBottom_toBottomOf="@+id/view_student_num"
+                app:layout_constraintRight_toRightOf="@+id/view_student_num"
+                app:layout_constraintTop_toTopOf="@+id/view_student_num" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_mine_prctice_tools"
+                app:layout_constraintRight_toRightOf="@+id/view_student_num"
+                app:layout_constraintTop_toTopOf="@+id/view_student_num" />
+
+
+            <ImageView
+                android:id="@+id/iv_vip_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="10dp"
+                android:layout_marginTop="19dp"
+                android:src="@drawable/jg_vip_title"
+                app:layout_constraintLeft_toLeftOf="@+id/view_class_num"
+                app:layout_constraintTop_toTopOf="@+id/view_class_num" />
+
+            <View
+                android:id="@+id/view_arrow_bg"
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_marginStart="5dp"
+                android:background="@drawable/shape_ee9d9d_circle"
+                app:layout_constraintBottom_toBottomOf="@+id/iv_vip_title"
+                app:layout_constraintLeft_toRightOf="@+id/iv_vip_title"
+                app:layout_constraintTop_toTopOf="@+id/iv_vip_title" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_arrow_right_white"
+                app:layout_constraintBottom_toBottomOf="@+id/view_arrow_bg"
+                app:layout_constraintLeft_toLeftOf="@+id/view_arrow_bg"
+                app:layout_constraintRight_toRightOf="@+id/view_arrow_bg"
+                app:layout_constraintTop_toTopOf="@+id/view_arrow_bg" />
+
+            <TextView
+                android:id="@+id/tv_vip_status"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:text="暂未开通"
+                android:textColor="@color/color_777777"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintBottom_toBottomOf="@+id/view_class_num"
+                app:layout_constraintLeft_toLeftOf="@+id/iv_vip_title"
+                app:layout_constraintTop_toBottomOf="@+id/iv_vip_title" />
+
+
+            <ImageView
+                android:id="@+id/iv_train_tools_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="10dp"
+                android:layout_marginTop="19dp"
+                android:src="@drawable/jg_train_tools_title"
+                app:layout_constraintLeft_toLeftOf="@+id/view_student_num"
+                app:layout_constraintTop_toTopOf="@+id/view_student_num" />
+
+            <View
+                android:id="@+id/view_arrow_bg2"
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_marginStart="5dp"
+                android:background="@drawable/shape_f1c68c_circle"
+                app:layout_constraintBottom_toBottomOf="@+id/iv_train_tools_title"
+                app:layout_constraintLeft_toRightOf="@+id/iv_train_tools_title"
+                app:layout_constraintTop_toTopOf="@+id/iv_train_tools_title" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_arrow_right_white"
+                app:layout_constraintBottom_toBottomOf="@+id/view_arrow_bg2"
+                app:layout_constraintLeft_toLeftOf="@+id/view_arrow_bg2"
+                app:layout_constraintRight_toRightOf="@+id/view_arrow_bg2"
+                app:layout_constraintTop_toTopOf="@+id/view_arrow_bg2" />
+
+
+            <TextView
+                android:id="@+id/tv_tools_limit_time"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:includeFontPadding="false"
+                android:textColor="@color/color_777777"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintBottom_toBottomOf="@+id/view_student_num"
+                app:layout_constraintLeft_toLeftOf="@+id/iv_train_tools_title"
+                app:layout_constraintTop_toBottomOf="@+id/iv_train_tools_title"
+                tools:text="至2023-07-16" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+        <View
+            android:id="@+id/view_help_point"
+            android:layout_width="1px"
+            android:layout_height="1px"
+            android:layout_marginStart="8dp"
+            android:layout_marginBottom="10dp"
+            app:layout_constraintBottom_toTopOf="@+id/cs_class_info"
+            app:layout_constraintLeft_toLeftOf="@+id/cs_class_info"
+            app:layout_constraintRight_toRightOf="@+id/cs_class_info" />
+
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/jg_icon_vip_tag2"
+            app:layout_constraintRight_toLeftOf="@+id/view_help_point"
+            app:layout_constraintTop_toTopOf="@+id/view_help_point" />
+
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/cs_common_function"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="13dp"
+            android:layout_marginTop="12dp"
+            android:layout_marginEnd="13dp"
+            android:background="@drawable/shape_10dp_white"
+            android:paddingBottom="20dp"
+            app:layout_constraintTop_toBottomOf="@+id/view_top_white_bg">
+
+
+            <TextView
+                android:id="@+id/tv_common_function"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:includeFontPadding="false"
+                android:paddingStart="24dp"
+                android:paddingTop="15dp"
+                android:text="常用功能"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_16"
+                android:textStyle="bold"
+                android:visibility="visible"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/tv_mine_track_list"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="11dp"
+                android:layout_marginTop="14dp"
+                android:drawableTop="@drawable/jg_mine_track_list"
+                android:drawablePadding="@dimen/dp_4"
+                android:includeFontPadding="false"
+                android:text="我的曲库"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintHorizontal_chainStyle="spread_inside"
+                app:layout_constraintHorizontal_weight="1"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toLeftOf="@+id/tv_practice_info"
+                app:layout_constraintTop_toBottomOf="@+id/tv_common_function" />
+
+            <TextView
+                android:id="@+id/tv_practice_info"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableTop="@drawable/jg_mine_prctice_info"
+                android:drawablePadding="@dimen/dp_4"
+                android:includeFontPadding="false"
+                android:text="练习统计"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintHorizontal_chainStyle="spread_inside"
+                app:layout_constraintHorizontal_weight="1"
+                app:layout_constraintLeft_toRightOf="@+id/tv_mine_track_list"
+                app:layout_constraintRight_toLeftOf="@+id/tv_order_info"
+                app:layout_constraintTop_toTopOf="@+id/tv_mine_track_list" />
+
+            <TextView
+                android:id="@+id/tv_order_info"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableTop="@drawable/jg_mine_order_info"
+                android:drawablePadding="@dimen/dp_4"
+                android:includeFontPadding="false"
+                android:text="订单信息"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintHorizontal_weight="1"
+                app:layout_constraintLeft_toRightOf="@+id/tv_practice_info"
+                app:layout_constraintRight_toLeftOf="@+id/tv_rank_board"
+                app:layout_constraintTop_toTopOf="@+id/tv_mine_track_list" />
+
+
+            <TextView
+                android:id="@+id/tv_rank_board"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableTop="@drawable/jg_mine_rank_board"
+                android:drawablePadding="@dimen/dp_4"
+                android:includeFontPadding="false"
+                android:text="排行榜"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintHorizontal_weight="1"
+                app:layout_constraintLeft_toRightOf="@+id/tv_order_info"
+                app:layout_constraintRight_toLeftOf="@+id/tv_activation_code"
+                app:layout_constraintTop_toTopOf="@+id/tv_mine_track_list" />
+
+            <TextView
+                android:id="@+id/tv_activation_code"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="11dp"
+                android:drawableTop="@drawable/jg_mine_activation_code"
+                android:drawablePadding="@dimen/dp_4"
+                android:includeFontPadding="false"
+                android:text="激活码"
+                android:textColor="@color/color_333333"
+                android:textSize="@dimen/sp_12"
+                app:layout_constraintHorizontal_weight="1"
+                app:layout_constraintLeft_toRightOf="@+id/tv_rank_board"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toTopOf="@+id/tv_mine_track_list" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/cs_other_info"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="13dp"
+            android:layout_marginTop="12dp"
+            android:layout_marginEnd="13dp"
+            android:background="@drawable/bg_white_10dp"
+            android:paddingStart="13dp"
+            android:paddingEnd="15dp"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/cs_common_function">
+
+
+            <TextView
+                android:id="@+id/tv_help_center"
+                android:layout_width="match_parent"
+                android:layout_height="58dp"
+                android:drawableStart="@drawable/jg_mine_helpcenter"
+                android:drawablePadding="8dp"
+                android:gravity="center_vertical"
+                android:text="帮助中心"
+                android:textColor="@color/color_1a1a1a"
+                android:textSize="@dimen/sp_16"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_go_right"
+                app:layout_constraintBottom_toBottomOf="@+id/tv_help_center"
+                app:layout_constraintRight_toRightOf="@+id/tv_help_center"
+                app:layout_constraintTop_toTopOf="@+id/tv_help_center" />
+
+            <View
+                android:id="@+id/view_line8"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/color_f2f2f2"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tv_help_center" />
+
+            <TextView
+                android:id="@+id/tv_feed_back"
+                android:layout_width="match_parent"
+                android:layout_height="58dp"
+                android:drawableStart="@drawable/jg_mine_feedback"
+                android:drawablePadding="8dp"
+                android:gravity="center_vertical"
+                android:text="意见反馈"
+                android:textColor="@color/color_1a1a1a"
+                android:textSize="@dimen/sp_16"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/view_line8" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_go_right"
+                app:layout_constraintBottom_toBottomOf="@+id/tv_feed_back"
+                app:layout_constraintRight_toRightOf="@+id/tv_feed_back"
+                app:layout_constraintTop_toTopOf="@+id/tv_feed_back" />
+
+            <View
+                android:id="@+id/view_line10"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/color_f2f2f2"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tv_feed_back" />
+
+            <TextView
+                android:id="@+id/tv_user_protocol"
+                android:layout_width="match_parent"
+                android:layout_height="58dp"
+                android:drawableStart="@drawable/jg_user_protocol"
+                android:drawablePadding="8dp"
+                android:gravity="center_vertical"
+                android:text="用户协议"
+                android:textColor="@color/color_1a1a1a"
+                android:textSize="@dimen/sp_16"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/view_line10" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_go_right"
+                app:layout_constraintBottom_toBottomOf="@+id/tv_user_protocol"
+                app:layout_constraintRight_toRightOf="@+id/tv_user_protocol"
+                app:layout_constraintTop_toTopOf="@+id/tv_user_protocol" />
+
+            <View
+                android:id="@+id/view_line11"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/color_f2f2f2"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tv_user_protocol" />
+
+            <TextView
+                android:id="@+id/tv_privacy_policy"
+                android:layout_width="match_parent"
+                android:layout_height="58dp"
+                android:drawableStart="@drawable/jg_user_protocol"
+                android:drawablePadding="8dp"
+                android:gravity="center_vertical"
+                android:text="隐私政策"
+                android:textColor="@color/color_1a1a1a"
+                android:textSize="@dimen/sp_16"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/view_line11" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_go_right"
+                app:layout_constraintBottom_toBottomOf="@+id/tv_privacy_policy"
+                app:layout_constraintRight_toRightOf="@+id/tv_privacy_policy"
+                app:layout_constraintTop_toTopOf="@+id/tv_privacy_policy" />
+
+            <View
+                android:id="@+id/view_line9"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/color_f2f2f2"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tv_privacy_policy" />
+
+            <TextView
+                android:id="@+id/tv_about_us"
+                android:layout_width="match_parent"
+                android:layout_height="58dp"
+                android:drawableStart="@drawable/jg_mine_about"
+                android:drawablePadding="8dp"
+                android:gravity="center_vertical"
+                android:text="关于我们"
+                android:textColor="@color/color_1a1a1a"
+                android:textSize="@dimen/sp_16"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/view_line9" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/jg_icon_go_right"
+                app:layout_constraintBottom_toBottomOf="@+id/tv_about_us"
+                app:layout_constraintRight_toRightOf="@+id/tv_about_us"
+                app:layout_constraintTop_toTopOf="@+id/tv_about_us" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</ScrollView>