作者 liyan

我的页面到学情反馈

正在显示 30 个修改的文件 包含 693 行增加35 行删除
@@ -11,18 +11,19 @@ @@ -11,18 +11,19 @@
11 <!-- 往sdcard中写入数据的权限 --> 11 <!-- 往sdcard中写入数据的权限 -->
12 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 12 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
13 <!-- 在sdcard中创建/删除文件的权限 --> 13 <!-- 在sdcard中创建/删除文件的权限 -->
14 - <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" 14 + <uses-permission
  15 + android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
15 tools:ignore="ProtectedPermissions" /> 16 tools:ignore="ProtectedPermissions" />
16 17
17 <application 18 <application
18 android:allowBackup="true" 19 android:allowBackup="true"
  20 + android:hardwareAccelerated="true"
19 android:icon="@mipmap/ic_launcher" 21 android:icon="@mipmap/ic_launcher"
20 android:label="@string/app_name" 22 android:label="@string/app_name"
21 android:roundIcon="@mipmap/ic_launcher_round" 23 android:roundIcon="@mipmap/ic_launcher_round"
22 - android:usesCleartextTraffic="true"  
23 - android:hardwareAccelerated="true"  
24 android:supportsRtl="true" 24 android:supportsRtl="true"
25 - android:theme="@style/Theme.SecurityTrainMaster"> 25 + android:theme="@style/Theme.SecurityTrainMaster"
  26 + android:usesCleartextTraffic="true">
26 <meta-data 27 <meta-data
27 android:name="design_width_in_dp" 28 android:name="design_width_in_dp"
28 android:value="375" /> 29 android:value="375" />
@@ -65,10 +66,12 @@ @@ -65,10 +66,12 @@
65 <activity 66 <activity
66 android:name=".ui.home.activity.SearchActivity" 67 android:name=".ui.home.activity.SearchActivity"
67 android:screenOrientation="portrait" /> 68 android:screenOrientation="portrait" />
68 - <activity android:name=".ui.home.activity.DatabaseActivity"  
69 - android:screenOrientation="portrait"/>  
70 - <activity android:name=".ui.home.activity.DatabaseDetailActivity"  
71 - android:screenOrientation="portrait"/> 69 + <activity
  70 + android:name=".ui.home.activity.DatabaseActivity"
  71 + android:screenOrientation="portrait" />
  72 + <activity
  73 + android:name=".ui.home.activity.DatabaseDetailActivity"
  74 + android:screenOrientation="portrait" />
72 <activity android:name=".ui.home.activity.WebViewActivity" /> 75 <activity android:name=".ui.home.activity.WebViewActivity" />
73 <activity android:name=".ui.home.activity.TextCourseActivity" /> 76 <activity android:name=".ui.home.activity.TextCourseActivity" />
74 <activity android:name=".ui.home.activity.TextDetailActivity" /> 77 <activity android:name=".ui.home.activity.TextDetailActivity" />
@@ -81,15 +84,20 @@ @@ -81,15 +84,20 @@
81 <activity android:name=".ui.bank.activity.ExamTypeActivity" /> 84 <activity android:name=".ui.bank.activity.ExamTypeActivity" />
82 <activity android:name=".ui.bank.activity.ExamDetailActivity" /> 85 <activity android:name=".ui.bank.activity.ExamDetailActivity" />
83 <activity android:name=".ui.bank.activity.ExamCardActivity" /> 86 <activity android:name=".ui.bank.activity.ExamCardActivity" />
84 - <activity android:name=".ui.home.activity.OnlineDetailActivity"  
85 - android:configChanges="orientation|keyboardHidden|screenSize"/>  
86 - <activity android:name=".ui.home.activity.LiveCourseActivity"/>  
87 - <activity android:name=".ui.mine.activity.EditPersonalInfoActivity"/>  
88 - <activity android:name=".ui.mine.activity.ChangePwdActivity"/>  
89 - <activity android:name=".ui.mine.activity.ChangePhoneActivity"/>  
90 - <activity android:name=".ui.mine.activity.MyErrorQuestionActivity"/>  
91 - <activity android:name=".ui.mine.activity.QuestionRecordActivity"/>  
92 - <activity android:name=".ui.mine.activity.MyCredentialsActivity"/> 87 + <activity
  88 + android:name=".ui.home.activity.OnlineDetailActivity"
  89 + android:configChanges="orientation|keyboardHidden|screenSize" />
  90 + <activity android:name=".ui.home.activity.LiveCourseActivity" />
  91 + <activity android:name=".ui.mine.activity.EditPersonalInfoActivity" />
  92 + <activity android:name=".ui.mine.activity.ChangePwdActivity" />
  93 + <activity android:name=".ui.mine.activity.ChangePhoneActivity" />
  94 + <activity android:name=".ui.mine.activity.MyErrorQuestionActivity" />
  95 + <activity android:name=".ui.mine.activity.QuestionRecordActivity" />
  96 + <activity android:name=".ui.mine.activity.MyCredentialsActivity" />
  97 + <activity android:name=".ui.mine.activity.AcademicFeedbackActivity" />
  98 + <activity android:name=".ui.mine.activity.CredentialsUpLoadActivity" />
  99 + <activity android:name=".ui.mine.activity.MyCredentialsDetailActivity" />
  100 + <activity android:name=".ui.mine.activity.OfflineExerciseActivity" />
93 101
94 102
95 </application> 103 </application>
  1 +package com.br_technology.securitytrain_master.ui.mine.activity
  2 +
  3 +import com.br_technology.securitytrain_master.databinding.ActivityAcademicFeedbackBinding
  4 +import com.br_technology.securitytrain_master.ui.mine.viewmodel.AcademicFeedbackViewModel
  5 +import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
  6 +
  7 +/**
  8 + * Time: 8/2/2021 14:28
  9 + * 学情反馈
  10 + * Author: Captain
  11 + * Description: 初见时你很迷人
  12 + */
  13 +class AcademicFeedbackActivity :
  14 + BaseLifeCycleActivity<AcademicFeedbackViewModel, ActivityAcademicFeedbackBinding>(
  15 + ActivityAcademicFeedbackBinding::inflate
  16 + ) {
  17 + override fun initDataObserver() {
  18 +
  19 + }
  20 +
  21 + override fun initData() {
  22 + super.initData()
  23 +
  24 + }
  25 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.activity
  2 +
  3 +import android.view.View
  4 +import com.br_technology.securitytrain_master.R
  5 +import com.br_technology.securitytrain_master.databinding.ActivityCredentialsUploadBinding
  6 +import com.br_technology.securitytrain_master.ui.mine.viewmodel.CredentialsUpLoadViewModel
  7 +import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
  8 +
  9 +/**
  10 + * Time: 8/2/2021 13:55
  11 + * Author: Captain
  12 + * Description: 初见时你很迷人
  13 + */
  14 +class CredentialsUpLoadActivity :
  15 + BaseLifeCycleActivity<CredentialsUpLoadViewModel, ActivityCredentialsUploadBinding>(
  16 + ActivityCredentialsUploadBinding::inflate
  17 + ), View.OnClickListener {
  18 + override fun initDataObserver() {
  19 +
  20 + }
  21 +
  22 + override fun initData() {
  23 + super.initData()
  24 + binding.apply {
  25 + tvUpload.setOnClickListener(this@CredentialsUpLoadActivity)
  26 + }
  27 + }
  28 +
  29 + override fun onClick(v: View?) {
  30 + when (v!!.id) {
  31 + R.id.tv_upload -> {
  32 +
  33 + }
  34 + }
  35 + }
  36 +}
1 package com.br_technology.securitytrain_master.ui.mine.activity 1 package com.br_technology.securitytrain_master.ui.mine.activity
2 2
  3 +import com.br_technology.securitytrain_master.R
3 import com.br_technology.securitytrain_master.databinding.ActivityMyCredentialsBinding 4 import com.br_technology.securitytrain_master.databinding.ActivityMyCredentialsBinding
  5 +import com.br_technology.securitytrain_master.ui.home.activity.TextDetailActivity
  6 +import com.br_technology.securitytrain_master.ui.home.adapter.ResultAdapter
  7 +import com.br_technology.securitytrain_master.ui.home.pojo.RecommendData
  8 +import com.br_technology.securitytrain_master.ui.mine.adapter.MyCredentialsAdapter
4 import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyCredentialsViewModel 9 import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyCredentialsViewModel
  10 +import com.br_technology.securitytrain_master.view.listener.OnItemClickListener
5 import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity 11 import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
6 12
7 /** 13 /**
@@ -20,6 +26,29 @@ class MyCredentialsActivity : @@ -20,6 +26,29 @@ class MyCredentialsActivity :
20 26
21 override fun initData() { 27 override fun initData() {
22 super.initData() 28 super.initData()
  29 + binding.apply {
  30 + val recommendList = mutableListOf(
  31 + RecommendData(
  32 + R.mipmap.my_credentials_upload_bg,
  33 + "思维",
  34 + "从这个角度"
  35 + ),
  36 + )
  37 + val myCredentialsAdapter = MyCredentialsAdapter()
  38 + myCredentialsAdapter.addListener(object : OnItemClickListener<RecommendData> {
  39 + override fun onClick(position: Int, data: RecommendData) {
  40 + recommendList.clear()
  41 + recommendList.add(RecommendData(
  42 + R.mipmap.banner,
  43 + "思维导图",
  44 + "从这个角度看"
  45 + ))
23 46
  47 + myCredentialsAdapter.addListAndPosition(recommendList,0)
  48 + }
  49 + })
  50 + recyclerview.adapter = myCredentialsAdapter
  51 + myCredentialsAdapter.addList(recommendList)
  52 + }
24 } 53 }
25 } 54 }
  1 +package com.br_technology.securitytrain_master.ui.mine.activity
  2 +
  3 +import com.br_technology.securitytrain_master.databinding.ActivityMyCredentialsDetailBinding
  4 +import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyCredentialDetailViewModel
  5 +import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
  6 +
  7 +/**
  8 + * Time: 8/2/2021 11:37
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class MyCredentialsDetailActivity :
  13 + BaseLifeCycleActivity<MyCredentialDetailViewModel, ActivityMyCredentialsDetailBinding>(
  14 + ActivityMyCredentialsDetailBinding::inflate
  15 + ) {
  16 + override fun initDataObserver() {
  17 +
  18 + }
  19 +
  20 + override fun initData() {
  21 + super.initData()
  22 + binding.apply {
  23 + tvReUpload.setOnClickListener({
  24 + //重新上传
  25 + startActivity(CredentialsUpLoadActivity::class.java)
  26 + })
  27 + }
  28 + }
  29 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.activity
  2 +
  3 +import com.br_technology.securitytrain_master.databinding.ActivityOfflineExerciseBinding
  4 +import com.br_technology.securitytrain_master.ui.mine.viewmodel.OfflineExerciseViewModel
  5 +import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
  6 +
  7 +/**
  8 + * Time: 8/2/2021 14:19
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class OfflineExerciseActivity :
  13 + BaseLifeCycleActivity<OfflineExerciseViewModel, ActivityOfflineExerciseBinding>(
  14 + ActivityOfflineExerciseBinding::inflate
  15 + ) {
  16 + override fun initDataObserver() {
  17 +
  18 + }
  19 +
  20 + override fun initData() {
  21 + super.initData()
  22 +
  23 + }
  24 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.adapter
  2 +
  3 +import android.content.Context
  4 +import android.view.LayoutInflater
  5 +import android.view.ViewGroup
  6 +import androidx.viewbinding.ViewBinding
  7 +import com.br_technology.securitytrain_master.base.view.BaseAdapter
  8 +import com.br_technology.securitytrain_master.base.view.BaseMultiAdapter
  9 +import com.br_technology.securitytrain_master.base.view.BaseViewHolder
  10 +import com.br_technology.securitytrain_master.databinding.ItemMockExamnationBinding
  11 +import com.br_technology.securitytrain_master.databinding.ItemMyCredentialsUploadBinding
  12 +import com.br_technology.securitytrain_master.databinding.ItemMycredentialsShowBinding
  13 +import com.br_technology.securitytrain_master.expand.glideRound
  14 +import com.br_technology.securitytrain_master.ui.home.pojo.RecommendData
  15 +import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
  16 +
  17 +/**
  18 + * Time: 8/2/2021 9:06
  19 + * Author: Captain
  20 + * Description: 初见时你很迷人
  21 + */
  22 +class MyCredentialsAdapter : BaseAdapter<RecommendData, ItemMyCredentialsUploadBinding>() {
  23 +
  24 + override fun getViewBinding(
  25 + context: Context,
  26 + parent: ViewGroup,
  27 + viewType: Int,
  28 + from: LayoutInflater
  29 + ): ViewBinding {
  30 + return ItemMyCredentialsUploadBinding.inflate(from, parent, false)
  31 + }
  32 +
  33 +
  34 +
  35 + override fun onBind(
  36 + holder: ItemMyCredentialsUploadBinding,
  37 + position: Int,
  38 + data: RecommendData
  39 + ) {
  40 +
  41 + if (holder is ItemMyCredentialsUploadBinding) {
  42 + holder.ivBg.glideRound(data.pic, 16)
  43 + } else if (holder is ItemMycredentialsShowBinding) {
  44 + holder.ivBg.glideRound(data.pic, 16)
  45 + holder.tvName.text = data.name
  46 + holder.tvTime.text = data.info
  47 + }
  48 + }
  49 +}
@@ -4,9 +4,7 @@ import android.view.View @@ -4,9 +4,7 @@ import android.view.View
4 import com.br_technology.securitytrain_master.R 4 import com.br_technology.securitytrain_master.R
5 import com.br_technology.securitytrain_master.databinding.FragmentMineBinding 5 import com.br_technology.securitytrain_master.databinding.FragmentMineBinding
6 import com.br_technology.securitytrain_master.ui.home.viewmodel.MineViewModel 6 import com.br_technology.securitytrain_master.ui.home.viewmodel.MineViewModel
7 -import com.br_technology.securitytrain_master.ui.mine.activity.EditPersonalInfoActivity  
8 -import com.br_technology.securitytrain_master.ui.mine.activity.MyErrorQuestionActivity  
9 -import com.br_technology.securitytrain_master.ui.mine.activity.QuestionRecordActivity 7 +import com.br_technology.securitytrain_master.ui.mine.activity.*
10 import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment 8 import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
11 9
12 /** 10 /**
@@ -15,7 +13,7 @@ import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment @@ -15,7 +13,7 @@ import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
15 * des: 13 * des:
16 */ 14 */
17 class MineFragment 15 class MineFragment
18 - :BaseLifeCycleFragment<MineViewModel,FragmentMineBinding>(FragmentMineBinding::inflate), 16 + : BaseLifeCycleFragment<MineViewModel, FragmentMineBinding>(FragmentMineBinding::inflate),
19 View.OnClickListener { 17 View.OnClickListener {
20 override fun initDataObserver() { 18 override fun initDataObserver() {
21 19
@@ -33,43 +31,51 @@ class MineFragment @@ -33,43 +31,51 @@ class MineFragment
33 rlMineLiaotianjilu.setOnClickListener(this@MineFragment) 31 rlMineLiaotianjilu.setOnClickListener(this@MineFragment)
34 rlMineTousuyujianyi.setOnClickListener(this@MineFragment) 32 rlMineTousuyujianyi.setOnClickListener(this@MineFragment)
35 rlMineLianxikefu.setOnClickListener(this@MineFragment) 33 rlMineLianxikefu.setOnClickListener(this@MineFragment)
  34 +
  35 + tvOfflineExercise.setOnClickListener(this@MineFragment)
36 } 36 }
37 } 37 }
38 38
39 override fun onClick(v: View?) { 39 override fun onClick(v: View?) {
40 - when(v!!.id){  
41 - R.id.iv_edit_info ->{ 40 + when (v!!.id) {
  41 + R.id.tv_offline_exercise -> {
  42 + //线下培训
  43 + startActivity(OfflineExerciseActivity::class.java)
  44 + }
  45 +
  46 + R.id.iv_edit_info -> {
42 //编辑个人信息 47 //编辑个人信息
43 - startActivity(EditPersonalInfoActivity :: class.java) 48 + startActivity(EditPersonalInfoActivity::class.java)
44 } 49 }
45 50
46 - R.id.rl_mine_cuoti ->{ 51 + R.id.rl_mine_cuoti -> {
47 //我的错题 52 //我的错题
48 - startActivity(MyErrorQuestionActivity :: class.java) 53 + startActivity(MyErrorQuestionActivity::class.java)
49 } 54 }
50 55
51 - R.id.rl_mine_datijilu ->{ 56 + R.id.rl_mine_datijilu -> {
52 //答题记录 57 //答题记录
53 - startActivity(QuestionRecordActivity :: class.java) 58 + startActivity(QuestionRecordActivity::class.java)
54 } 59 }
55 60
56 - R.id.mine_zhengjian ->{ 61 + R.id.mine_zhengjian -> {
57 //我的证件 62 //我的证件
  63 + startActivity(MyCredentialsActivity::class.java)
58 } 64 }
59 65
60 - R.id.rl_mine_shoucang ->{ 66 + R.id.rl_mine_shoucang -> {
61 //我的收藏 67 //我的收藏
62 } 68 }
63 69
64 - R.id.rl_mine_liaotianjilu ->{ 70 + R.id.rl_mine_liaotianjilu -> {
65 //我的聊天记录 71 //我的聊天记录
66 } 72 }
67 73
68 - R.id.rl_mine_tousuyujianyi ->{ 74 + R.id.rl_mine_tousuyujianyi -> {
69 //投诉与建议 75 //投诉与建议
70 } 76 }
71 77
72 - R.id.rl_mine_lianxikefu ->{ 78 + R.id.rl_mine_lianxikefu -> {
73 //联系客服 79 //联系客服
74 } 80 }
75 81
  1 +package com.br_technology.securitytrain_master.ui.mine.repository
  2 +
  3 +import androidx.lifecycle.MutableLiveData
  4 +import com.br_technology.securitytrain_master.base.common.State
  5 +import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
  6 +
  7 +/**
  8 + * Time: 8/2/2021 14:29
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class AcademicFeedbackRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
  13 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.repository
  2 +
  3 +import androidx.lifecycle.MutableLiveData
  4 +import com.br_technology.securitytrain_master.base.common.State
  5 +import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
  6 +
  7 +/**
  8 + * Time: 8/2/2021 13:56
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class CredentialsUpLoadRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
  13 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.repository
  2 +
  3 +import androidx.lifecycle.MutableLiveData
  4 +import com.br_technology.securitytrain_master.base.common.State
  5 +import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
  6 +
  7 +/**
  8 + * Time: 8/2/2021 11:41
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class MyCredentialsDetailRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
  13 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.repository
  2 +
  3 +import androidx.lifecycle.MutableLiveData
  4 +import com.br_technology.securitytrain_master.base.common.State
  5 +import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
  6 +
  7 +/**
  8 + * Time: 8/2/2021 14:19
  9 + * Author: Captain
  10 + * Description: 初见时你很迷人
  11 + */
  12 +class OfflineExerciseRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
  13 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.viewmodel
  2 +
  3 +import com.br_technology.securitytrain_master.ui.mine.repository.AcademicFeedbackRepository
  4 +import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
  5 +
  6 +/**
  7 + * Time: 8/2/2021 14:29
  8 + * Author: Captain
  9 + * Description: 初见时你很迷人
  10 + */
  11 +class AcademicFeedbackViewModel : BaseViewModel<AcademicFeedbackRepository>() {
  12 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.viewmodel
  2 +
  3 +import com.br_technology.securitytrain_master.ui.mine.repository.CredentialsUpLoadRepository
  4 +import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
  5 +
  6 +/**
  7 + * Time: 8/2/2021 13:56
  8 + * Author: Captain
  9 + * Description: 初见时你很迷人
  10 + */
  11 +class CredentialsUpLoadViewModel : BaseViewModel<CredentialsUpLoadRepository>() {
  12 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.viewmodel
  2 +
  3 +import com.br_technology.securitytrain_master.ui.mine.repository.MyCredentialsDetailRepository
  4 +import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
  5 +
  6 +/**
  7 + * Time: 8/2/2021 11:42
  8 + * Author: Captain
  9 + * Description: 初见时你很迷人
  10 + */
  11 +class MyCredentialDetailViewModel : BaseViewModel<MyCredentialsDetailRepository> {
  12 +}
  1 +package com.br_technology.securitytrain_master.ui.mine.viewmodel
  2 +
  3 +import com.br_technology.securitytrain_master.ui.mine.repository.OfflineExerciseRepository
  4 +import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
  5 +
  6 +/**
  7 + * Time: 8/2/2021 14:20
  8 + * Author: Captain
  9 + * Description: 初见时你很迷人
  10 + */
  11 +class OfflineExerciseViewModel : BaseViewModel<OfflineExerciseRepository>() {
  12 +}
@@ -2,5 +2,5 @@ @@ -2,5 +2,5 @@
2 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
3 3
4 <solid android:color="@color/color_eff2" /> 4 <solid android:color="@color/color_eff2" />
5 - <corners android:radius="4dp" /> 5 + <corners android:radius="8dp" />
6 </shape> 6 </shape>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <solid android:color="@color/color_eff2" />
  5 + <corners android:radius="4dp" />
  6 +</shape>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android">
  3 +
  4 + <solid android:color="@color/white" />
  5 + <corners android:radius="8dp" />
  6 +</shape>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<androidx.constraintlayout.widget.ConstraintLayout
  3 + xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
  4 + android:layout_height="match_parent">
  5 +
  6 +</androidx.constraintlayout.widget.ConstraintLayout>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:orientation="vertical">
  7 +
  8 + <include layout="@layout/layout_tool_bar" />
  9 +
  10 + <com.br_technology.securitytrain_master.view.ViewToolBar
  11 + android:id="@+id/tool_bar"
  12 + android:layout_width="match_parent"
  13 + android:layout_height="wrap_content"
  14 + app:toolTitle="证书上传" />
  15 +
  16 + <ImageView
  17 + android:layout_width="311dp"
  18 + android:layout_height="208dp"
  19 + android:layout_gravity="center_horizontal"
  20 + android:layout_marginTop="33dp"
  21 + android:src="@mipmap/upload_credentials_bg" />
  22 +
  23 + <LinearLayout
  24 + android:layout_width="311dp"
  25 + android:layout_height="48dp"
  26 + android:layout_gravity="center_horizontal"
  27 + android:layout_marginTop="24dp"
  28 + android:background="@drawable/solid_eff2_8"
  29 + android:orientation="horizontal">
  30 +
  31 + <TextView
  32 + android:layout_width="wrap_content"
  33 + android:layout_height="wrap_content"
  34 + android:layout_gravity="center_vertical"
  35 + android:layout_marginStart="16dp"
  36 + android:layout_weight="1"
  37 + android:text="选择证件类型"
  38 + android:textColor="@color/color_32"
  39 + android:textSize="14sp" />
  40 +
  41 + <ImageView
  42 + android:layout_width="wrap_content"
  43 + android:layout_height="wrap_content"
  44 + android:layout_gravity="center_vertical"
  45 + android:layout_marginEnd="16dp"
  46 + android:src="@mipmap/ic_arrow" />
  47 +
  48 + </LinearLayout>
  49 +
  50 + <LinearLayout
  51 + android:layout_width="311dp"
  52 + android:layout_height="48dp"
  53 + android:layout_gravity="center_horizontal"
  54 + android:layout_marginTop="24dp"
  55 + android:background="@drawable/solid_eff2_8"
  56 + android:orientation="horizontal">
  57 +
  58 + <TextView
  59 + android:layout_width="wrap_content"
  60 + android:layout_height="wrap_content"
  61 + android:layout_gravity="center_vertical"
  62 + android:layout_marginStart="16dp"
  63 + android:layout_weight="1"
  64 + android:text="有效期时间"
  65 + android:textColor="@color/color_32"
  66 + android:textSize="14sp" />
  67 +
  68 +
  69 + <EditText
  70 + android:layout_width="wrap_content"
  71 + android:layout_height="wrap_content"
  72 + android:layout_gravity="center_vertical"
  73 + android:layout_marginEnd="16dp"
  74 + android:background="@null"
  75 + android:hint="请输入"
  76 + android:textColor="@color/color_32"
  77 + android:textColorHint="@color/color_96"
  78 + android:textSize="14sp" />
  79 +
  80 +
  81 + </LinearLayout>
  82 +
  83 + <LinearLayout
  84 + android:layout_width="match_parent"
  85 + android:layout_height="wrap_content"
  86 + android:layout_weight="1"
  87 + android:orientation="vertical">
  88 +
  89 + </LinearLayout>
  90 +
  91 + <TextView
  92 + android:id="@+id/tv_upload"
  93 + android:layout_width="343dp"
  94 + android:layout_height="44dp"
  95 + android:layout_gravity="center_horizontal"
  96 + android:layout_marginTop="40dp"
  97 + android:layout_marginBottom="42dp"
  98 + android:background="@drawable/solid_25_4"
  99 + android:gravity="center"
  100 + android:text="上传"
  101 + android:textColor="@color/white"
  102 + android:textSize="16sp" />
  103 +
  104 +</LinearLayout>
@@ -61,6 +61,7 @@ @@ -61,6 +61,7 @@
61 android:layout_height="wrap_content"/> 61 android:layout_height="wrap_content"/>
62 62
63 <ImageView 63 <ImageView
  64 + android:visibility="invisible"
64 android:layout_marginEnd="16dp" 65 android:layout_marginEnd="16dp"
65 android:layout_gravity="center_vertical" 66 android:layout_gravity="center_vertical"
66 android:src="@mipmap/ic_arrow" 67 android:src="@mipmap/ic_arrow"
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 android:orientation="vertical" 4 android:orientation="vertical"
5 - android:background="@color/white"  
6 android:layout_width="match_parent" 5 android:layout_width="match_parent"
7 android:layout_height="match_parent"> 6 android:layout_height="match_parent">
8 <include layout="@layout/layout_tool_bar" /> 7 <include layout="@layout/layout_tool_bar" />
@@ -12,4 +11,16 @@ @@ -12,4 +11,16 @@
12 android:layout_width="match_parent" 11 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
14 app:toolTitle="我的证书" /> 13 app:toolTitle="我的证书" />
  14 +
  15 + <androidx.recyclerview.widget.RecyclerView
  16 + android:id="@+id/recyclerview"
  17 + android:layout_width="match_parent"
  18 + android:layout_height="wrap_content"
  19 + android:nestedScrollingEnabled="false"
  20 + android:overScrollMode="never"
  21 + app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
  22 + app:spanCount="2">
  23 +
  24 + </androidx.recyclerview.widget.RecyclerView>
  25 +
15 </LinearLayout> 26 </LinearLayout>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:orientation="vertical">
  7 +
  8 + <include layout="@layout/layout_tool_bar" />
  9 +
  10 + <com.br_technology.securitytrain_master.view.ViewToolBar
  11 + android:id="@+id/tool_bar"
  12 + android:layout_width="match_parent"
  13 + android:layout_height="wrap_content"
  14 + app:toolTitle="我的证书" />
  15 +
  16 + <ImageView
  17 + android:layout_width="311dp"
  18 + android:layout_height="208dp"
  19 + android:layout_gravity="center_horizontal"
  20 + android:layout_marginTop="33dp"
  21 + android:scaleType="fitXY"
  22 + android:src="@mipmap/ic_launcher" />
  23 +
  24 + <LinearLayout
  25 + android:layout_width="311dp"
  26 + android:layout_height="156dp"
  27 + android:layout_gravity="center_horizontal"
  28 + android:layout_marginTop="24dp"
  29 + android:background="@drawable/solid_ffffff_8"
  30 + android:orientation="vertical">
  31 +
  32 + <TextView
  33 + android:layout_width="wrap_content"
  34 + android:layout_height="wrap_content"
  35 + android:layout_marginStart="16dp"
  36 + android:layout_marginTop="20dp"
  37 + android:drawableStart="@mipmap/credentials_icon"
  38 + android:drawablePadding="9dp"
  39 + android:text="三级电焊工证"
  40 + android:textColor="@color/color_32"
  41 + android:textSize="16sp"
  42 + android:textStyle="bold" />
  43 +
  44 + <LinearLayout
  45 + android:layout_width="match_parent"
  46 + android:layout_height="wrap_content"
  47 + android:orientation="horizontal">
  48 +
  49 + <TextView
  50 + android:layout_width="wrap_content"
  51 + android:layout_height="wrap_content"
  52 + android:layout_marginStart="41dp"
  53 + android:layout_marginTop="16dp"
  54 + android:text="有效截止时间"
  55 + android:textColor="@color/color_32"
  56 + android:textSize="12sp" />
  57 +
  58 + <TextView
  59 + android:layout_width="wrap_content"
  60 + android:layout_height="wrap_content"
  61 + android:layout_marginStart="41dp"
  62 + android:layout_marginTop="16dp"
  63 + android:layout_marginEnd="16dp"
  64 + android:layout_weight="1"
  65 + android:gravity="end"
  66 + android:text="2020-02-02"
  67 + android:textColor="@color/color_96"
  68 + android:textSize="12sp" />
  69 +
  70 + </LinearLayout>
  71 +
  72 + <LinearLayout
  73 + android:layout_width="match_parent"
  74 + android:layout_height="wrap_content"
  75 + android:orientation="horizontal">
  76 +
  77 + <TextView
  78 + android:layout_width="wrap_content"
  79 + android:layout_height="wrap_content"
  80 + android:layout_marginStart="41dp"
  81 + android:layout_marginTop="12dp"
  82 + android:text="更新时间"
  83 + android:textColor="@color/color_32"
  84 + android:textSize="12sp" />
  85 +
  86 + <TextView
  87 + android:layout_width="wrap_content"
  88 + android:layout_height="wrap_content"
  89 + android:layout_marginStart="41dp"
  90 + android:layout_marginTop="12dp"
  91 + android:layout_marginEnd="16dp"
  92 + android:layout_weight="1"
  93 + android:gravity="end"
  94 + android:text="2020-02-02"
  95 + android:textColor="@color/color_96"
  96 + android:textSize="12sp" />
  97 +
  98 + </LinearLayout>
  99 +
  100 + <LinearLayout
  101 + android:layout_width="match_parent"
  102 + android:layout_height="wrap_content"
  103 + android:orientation="horizontal">
  104 +
  105 + <TextView
  106 + android:layout_width="wrap_content"
  107 + android:layout_height="wrap_content"
  108 + android:layout_marginStart="41dp"
  109 + android:layout_marginTop="12dp"
  110 + android:text="初始取证时间"
  111 + android:textColor="@color/color_32"
  112 + android:textSize="12sp" />
  113 +
  114 + <TextView
  115 + android:layout_width="wrap_content"
  116 + android:layout_height="wrap_content"
  117 + android:layout_marginStart="41dp"
  118 + android:layout_marginTop="12dp"
  119 + android:layout_marginEnd="16dp"
  120 + android:layout_weight="1"
  121 + android:gravity="end"
  122 + android:text="2020-02-02"
  123 + android:textColor="@color/color_96"
  124 + android:textSize="12sp" />
  125 +
  126 + </LinearLayout>
  127 +
  128 + </LinearLayout>
  129 +
  130 + <LinearLayout
  131 + android:layout_width="match_parent"
  132 + android:layout_height="wrap_content"
  133 + android:layout_weight="1"
  134 + android:orientation="vertical">
  135 +
  136 + </LinearLayout>
  137 +
  138 + <TextView
  139 + android:id="@+id/tv_re_upload"
  140 + android:layout_width="343dp"
  141 + android:layout_height="44dp"
  142 + android:layout_gravity="center_horizontal"
  143 + android:layout_marginTop="40dp"
  144 + android:layout_marginBottom="42dp"
  145 + android:background="@drawable/solid_25_4"
  146 + android:gravity="center"
  147 + android:text="重新上传"
  148 + android:textColor="@color/white"
  149 + android:textSize="16sp" />
  150 +
  151 +</LinearLayout>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<androidx.constraintlayout.widget.ConstraintLayout
  3 + xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
  4 + android:layout_height="match_parent">
  5 +
  6 +</androidx.constraintlayout.widget.ConstraintLayout>
@@ -96,6 +96,7 @@ @@ -96,6 +96,7 @@
96 android:layout_height="wrap_content"> 96 android:layout_height="wrap_content">
97 97
98 <TextView 98 <TextView
  99 + android:id="@+id/tv_offline_exercise"
99 android:textColor="@color/color_32" 100 android:textColor="@color/color_32"
100 android:textSize="12sp" 101 android:textSize="12sp"
101 android:drawablePadding="8dp" 102 android:drawablePadding="8dp"
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:layout_width="wrap_content"
  4 + android:layout_height="wrap_content"
  5 + android:orientation="vertical">
  6 +
  7 + <ImageView
  8 + android:id="@+id/iv_bg"
  9 + android:layout_marginTop="16dp"
  10 + android:layout_marginStart="20dp"
  11 + android:layout_width="wrap_content"
  12 + android:layout_height="wrap_content"
  13 + android:src="@mipmap/my_credentials_upload_bg" />
  14 +
  15 +</LinearLayout>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:layout_width="wrap_content"
  4 + android:layout_height="wrap_content"
  5 + android:orientation="vertical">
  6 +
  7 + <LinearLayout
  8 + android:layout_width="160dp"
  9 + android:layout_height="226dp"
  10 + android:layout_marginStart="20dp"
  11 + android:layout_marginTop="16dp"
  12 + android:background="@drawable/solid_ffffff_8"
  13 + android:orientation="vertical">
  14 +
  15 + <ImageView
  16 + android:id="@+id/iv_bg"
  17 + android:layout_marginTop="16dp"
  18 + android:layout_gravity="center_horizontal"
  19 + android:layout_width="128dp"
  20 + android:layout_height="128dp"
  21 + android:src="@mipmap/ic_launcher" />
  22 +
  23 + <TextView
  24 + android:id="@+id/tv_name"
  25 + android:text="三级电焊证"
  26 + android:textColor="@color/color_32"
  27 + android:textSize="14sp"
  28 + android:layout_marginTop="12dp"
  29 + android:layout_gravity="center_horizontal"
  30 + android:layout_width="wrap_content"
  31 + android:layout_height="wrap_content"/>
  32 +
  33 + <TextView
  34 + android:id="@+id/tv_time"
  35 + android:layout_marginBottom="16dp"
  36 + android:text="有效期:2020-09-09"
  37 + android:textColor="@color/color_96"
  38 + android:textSize="12sp"
  39 + android:layout_marginTop="8dp"
  40 + android:layout_gravity="center_horizontal"
  41 + android:layout_width="wrap_content"
  42 + android:layout_height="wrap_content"/>
  43 + </LinearLayout>
  44 +
  45 +</LinearLayout>