正在显示
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 | +} |
app/src/main/java/com/br_technology/securitytrain_master/ui/mine/activity/OfflineExerciseActivity.kt
0 → 100644
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 | +} |
app/src/main/java/com/br_technology/securitytrain_master/ui/mine/adapter/MyCredentialsAdapter.kt
0 → 100644
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> |
app/src/main/res/drawable/solid_eff2_8.xml
0 → 100644
app/src/main/res/drawable/solid_ffffff_8.xml
0 → 100644
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> |
@@ -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> |
1.1 KB
21.9 KB
-
请 注册 或 登录 后发表评论