浏览代码

1.修改首页存在待完成任务UI

王鹏鹏 2 年之前
父节点
当前提交
1e4abe1406

+ 6 - 0
.idea/misc.xml

@@ -26,9 +26,13 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_check_button.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_home_btn.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_home_buttom_button.xml" value="0.2265" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_home_task.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_item_report.xml" value="0.2265" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_item_task.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_record.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_record_title.xml" value="0.2265" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_task_btn.xml" value="0.2165" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_task_progress.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_train.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_train_right.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_work_benches_btn.xml" value="0.2265" />
@@ -44,9 +48,11 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_service_package.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_train_data.xml" value="0.4700413223140496" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_workbenches.xml" value="0.264" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_brain_ability.xml" value="0.21014492753623187" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_content.xml" value="0.21014492753623187" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_report.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_game_list.xml" value="0.4" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_task.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_train_report.xml" value="0.536" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_main.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_push.xml" value="0.22239583333333332" />

+ 1 - 1
baselib/src/main/java/com/yingyangfly/baselib/adapter/DatabindingAdapter.kt

@@ -13,7 +13,7 @@ import com.yingyangfly.baselib.utils.ScreenUtil
  * IM医生图片
  */
 @BindingAdapter(value = ["loadHeadImg", "isCircle"], requireAll = false)
-fun ImageView.loadHeadImg(url: String?, isCircle: Boolean? = true) {
+fun ImageView.loadHeadImg(url: String?, isCircle: Boolean? = false) {
     url?.let {
         loadUrl(url, isCircle = isCircle)
     }

+ 17 - 5
workbenches/src/main/java/com/yingyang/workbenches/WorkbenchesActivity.kt

@@ -3,8 +3,8 @@ package com.yingyang.workbenches
 import android.annotation.SuppressLint
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.bumptech.glide.Glide
 import com.yingyang.workbenches.adapter.GameAdapter
+import com.yingyang.workbenches.adapter.TaskAdapter
 import com.yingyang.workbenches.databinding.ActivityWorkbenchesBinding
 import com.yingyang.workbenches.entity.MyTaskBean
 import com.yingyang.workbenches.entity.Record
@@ -28,6 +28,8 @@ class WorkbenchesActivity : BaseMVVMActivity<ActivityWorkbenchesBinding, Workben
      * 进行中的任务
      */
     private var taskBean = mutableListOf<MyTaskBean>()
+    private var taskList = mutableListOf<String>()
+    private val taskAdapter by lazy { TaskAdapter() }
 
     /**
      * 游戏adapter
@@ -41,8 +43,12 @@ class WorkbenchesActivity : BaseMVVMActivity<ActivityWorkbenchesBinding, Workben
         playVoice?.setContext(this)
 //        playVoice?.speak("你好啊")
         binding {
+            //推荐游戏列表
             rvGame.layoutManager = GridLayoutManager(this@WorkbenchesActivity, 4)
             rvGame.adapter = gameAdapter
+            //待完成任务列表
+            rvTask.layoutManager = GridLayoutManager(this@WorkbenchesActivity, 4)
+            rvTask.adapter = taskAdapter
         }
         gameAdapter.onGameImageClickListener = { bean ->
             if (bean.currentLevel == bean.totalLevel) {
@@ -118,10 +124,7 @@ class WorkbenchesActivity : BaseMVVMActivity<ActivityWorkbenchesBinding, Workben
     }
 
     override fun initData() {
-        binding {
-            Glide.with(this@WorkbenchesActivity).load("file:///android_asset/home_doctor.gif")
-                .into(iamgeDoctor)
-        }
+
     }
 
     /**
@@ -162,11 +165,20 @@ class WorkbenchesActivity : BaseMVVMActivity<ActivityWorkbenchesBinding, Workben
      */
     private fun getFindMyTask() {
         taskBean.clear()
+        taskList.clear()
         viewModel.getFindMyTask(fail = {
             it.toast()
         }, success = {
             if (it.isNullOrEmpty().not()) {
                 taskBean.addAll(it)
+                it[0].let {
+                    binding.task = it
+                    if (it.gameCoverImages.isNullOrEmpty().not()) {
+                        taskList.addAll(it.gameCoverImages)
+                        taskAdapter.setCurrentTaskNum(it.currentTaskNum)
+                        taskAdapter.setData(taskList)
+                    }
+                }
                 binding.rvGame.show(false)
                 binding.taskLayout.show(true)
             } else {

+ 35 - 0
workbenches/src/main/java/com/yingyang/workbenches/adapter/TaskAdapter.kt

@@ -0,0 +1,35 @@
+package com.yingyang.workbenches.adapter
+
+import com.yingyang.workbenches.R
+import com.yingyang.workbenches.databinding.ItemTaskBinding
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+import com.yingyangfly.baselib.ext.show
+
+/**
+ * 首页待完成任务adapter
+ */
+class TaskAdapter(override val layoutId: Int = R.layout.item_task) :
+    BaseDataBindingAdapter<String, ItemTaskBinding>() {
+
+    var currentTask = 0
+
+    fun setCurrentTaskNum(currentTaskNum: Int) {
+        currentTask = currentTaskNum
+    }
+
+    override fun onBindViewHolder(binding: ItemTaskBinding, item: String, position: Int) {
+        binding.data = item
+        val index = position + 1
+        if (index < currentTask) {
+            binding.markImage.show(true)
+            binding.progressImage.show(false)
+        } else if (index == currentTask) {
+            binding.markImage.show(false)
+            binding.progressImage.show(true)
+        } else {
+            binding.markImage.show(false)
+            binding.progressImage.show(false)
+        }
+    }
+
+}

+ 12 - 2
workbenches/src/main/java/com/yingyang/workbenches/entity/MyTaskBean.kt

@@ -19,5 +19,15 @@ data class MyTaskBean(
     val totalTaskNum: Int,//任务总进度
     val updateBy: String,
     val updateTime: String,
-    val userId: String
-)
+    val userId: String,
+    val gameCoverImages: List<String>//任务图片
+) {
+    fun getGameImage(): String {
+        return if (gameCoverImages.isNullOrEmpty().not()) {
+            var index = currentTaskNum - 1
+            gameCoverImages[index]
+        } else {
+            ""
+        }
+    }
+}

+ 7 - 0
workbenches/src/main/res/drawable/bg_home_task.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_28px" />
+    <solid android:color="@android:color/white" />
+</shape>

+ 6 - 0
workbenches/src/main/res/drawable/bg_item_task.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <solid android:color="@color/color_80000000" />
+</shape>

+ 18 - 0
workbenches/src/main/res/drawable/bg_task_btn.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_33px" />
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FFFFC036"
+                android:startColor="@color/color_FFFFBD72"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 8 - 0
workbenches/src/main/res/drawable/bg_task_progress.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:shape="rectangle"
+    tools:ignore="ResourceName">
+    <solid android:color="@color/color_FF6E5FFF" />
+    <corners android:radius="@dimen/divider_23px" />
+</shape>

+ 86 - 25
workbenches/src/main/res/layout/activity_workbenches.xml

@@ -11,6 +11,10 @@
         <variable
             name="data"
             type="com.yingyang.workbenches.entity.CountTrainBean" />
+
+        <variable
+            name="task"
+            type="com.yingyang.workbenches.entity.MyTaskBean" />
     </data>
 
     <LinearLayout
@@ -167,39 +171,96 @@
             <androidx.constraintlayout.widget.ConstraintLayout
                 android:id="@+id/taskLayout"
                 android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_marginStart="@dimen/divider_48px"
+                android:layout_height="@dimen/divider_418px"
+                android:layout_marginStart="@dimen/divider_53px"
                 android:layout_marginTop="@dimen/divider_12px"
-                android:layout_weight="1">
+                android:layout_weight="1"
+                android:background="@drawable/bg_home_task">
+
+                <androidx.cardview.widget.CardView
+                    android:id="@+id/iamgeTask"
+                    android:layout_width="@dimen/divider_354px"
+                    android:layout_height="@dimen/divider_354px"
+                    android:layout_marginStart="@dimen/divider_31px"
+                    app:cardCornerRadius="@dimen/divider_18px"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent">
+
+                    <ImageView
+                        android:id="@+id/taskImage"
+                        android:layout_width="@dimen/divider_354px"
+                        android:layout_height="@dimen/divider_354px"
+                        android:scaleType="fitXY"
+                        app:isCircle="@{false}"
+                        app:loadHeadImg="@{task.getGameImage()}" />
+
+                </androidx.cardview.widget.CardView>
+
+                <androidx.appcompat.widget.AppCompatButton
+                    android:layout_width="@dimen/divider_264px"
+                    android:layout_height="@dimen/divider_50px"
+                    android:layout_marginStart="@dimen/divider_39px"
+                    android:layout_marginBottom="@dimen/divider_39px"
+                    android:background="@drawable/bg_task_progress"
+                    android:text='@{"当前游戏"+task.currentTaskNum+"/8"}'
+                    android:textColor="@android:color/white"
+                    android:textSize="@dimen/divider_28px"
+                    android:textStyle="bold"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintLeft_toLeftOf="parent" />
 
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:layout_width="match_parent"
+                <View
+                    android:id="@+id/viewLine"
+                    android:layout_width="@dimen/divider_1px"
                     android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/divider_31px"
+                    android:layout_marginTop="@dimen/divider_7px"
+                    android:layout_marginBottom="@dimen/divider_2px"
+                    android:background="@color/color_FFE0E0E0"
                     app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintLeft_toLeftOf="parent"
-                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintLeft_toRightOf="@id/iamgeTask"
                     app:layout_constraintTop_toTopOf="parent" />
 
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iamgeDoctor"
-                    android:layout_width="@dimen/divider_240px"
-                    android:layout_height="@dimen/divider_180px"
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:orientation="vertical"
                     app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintLeft_toLeftOf="parent" />
+                    app:layout_constraintLeft_toRightOf="@id/viewLine"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="parent">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginTop="@dimen/divider_24px"
+                        android:text="@string/training_progress"
+                        android:textColor="@color/color_FF5467FF"
+                        android:textSize="@dimen/divider_28px" />
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rvTask"
+                        android:layout_width="match_parent"
+                        android:layout_height="0dp"
+                        android:layout_marginStart="@dimen/divider_32px"
+                        android:layout_marginEnd="@dimen/divider_30px"
+                        android:layout_weight="1" />
+
+                    <Button
+                        android:id="@+id/taskBtn"
+                        android:layout_width="@dimen/divider_354px"
+                        android:layout_height="@dimen/divider_65px"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginBottom="@dimen/divider_32px"
+                        android:background="@drawable/bg_task_btn"
+                        android:text="@string/start_exclusive_training"
+                        android:textColor="@android:color/white"
+                        android:textSize="@dimen/divider_28px" />
+
+                </LinearLayout>
 
-                <Button
-                    android:id="@+id/taskBtn"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginBottom="@dimen/divider_30px"
-                    android:text="@string/task_in_progress"
-                    android:padding="@dimen/divider_10px"
-                    android:background="@drawable/bg_home_btn"
-                    android:textColor="@android:color/black"
-                    android:textSize="@dimen/divider_28px"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintLeft_toLeftOf="parent"
-                    app:layout_constraintRight_toRightOf="parent" />
 
             </androidx.constraintlayout.widget.ConstraintLayout>
 

+ 49 - 0
workbenches/src/main/res/layout/item_task.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout 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"
+    tools:ignore="ResourceName">
+
+    <data>
+
+        <variable
+            name="data"
+            type="java.lang.String" />
+    </data>
+
+    <androidx.cardview.widget.CardView
+        android:layout_width="@dimen/divider_82px"
+        android:layout_height="@dimen/divider_82px"
+        android:layout_marginTop="@dimen/divider_24px"
+        app:cardCornerRadius="@dimen/divider_18px">
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/taskImage"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scaleType="fitXY"
+            app:loadHeadImg="@{data}" />
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/bg_item_task" />
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/markImage"
+            android:layout_width="@dimen/divider_47px"
+            android:layout_height="@dimen/divider_32px"
+            android:layout_gravity="center"
+            android:background="@mipmap/icon_check_mark"
+            android:visibility="gone" />
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/progressImage"
+            android:layout_width="@dimen/divider_46px"
+            android:layout_height="@dimen/divider_10px"
+            android:layout_gravity="center"
+            android:background="@mipmap/icon_in_progress" />
+
+    </androidx.cardview.widget.CardView>
+
+</layout>

二进制
workbenches/src/main/res/mipmap-xxhdpi/icon_check_mark.png


二进制
workbenches/src/main/res/mipmap-xxhdpi/icon_in_progress.png


+ 5 - 0
workbenches/src/main/res/values/colors.xml

@@ -23,4 +23,9 @@
     <color name="color_FF2B70FF" tools:ignore="ResourceName">#FF2B70FF</color>
     <color name="color_FF821EFF" tools:ignore="ResourceName">#FF821EFF</color>
     <color name="color_69B8CFFF" tools:ignore="ResourceName">#69B8CFFF</color>
+    <color name="color_FFE0E0E0" tools:ignore="ResourceName">#FFE0E0E0</color>
+    <color name="color_FFFFBD72" tools:ignore="ResourceName">#FFFFBD72</color>
+    <color name="color_FFFFC036" tools:ignore="ResourceName">#FFFFC036</color>
+    <color name="color_80000000" tools:ignore="ResourceName">#80000000</color>
+    <color name="color_FF6E5FFF" tools:ignore="ResourceName">#FF6E5FFF</color>
 </resources>

+ 5 - 0
workbenches/src/main/res/values/dimens.xml

@@ -3,11 +3,15 @@
 
     <dimen name="divider_440px" tools:ignore="PxUsage">440px</dimen>
     <dimen name="divider_430px" tools:ignore="PxUsage">430px</dimen>
+    <dimen name="divider_418px" tools:ignore="PxUsage">418px</dimen>
+    <dimen name="divider_416px" tools:ignore="PxUsage">416px</dimen>
     <dimen name="divider_415px" tools:ignore="PxUsage">415px</dimen>
     <dimen name="divider_413px" tools:ignore="PxUsage">413px</dimen>
     <dimen name="divider_409px" tools:ignore="PxUsage">409px</dimen>
+    <dimen name="divider_354px" tools:ignore="PxUsage">354px</dimen>
     <dimen name="divider_340px" tools:ignore="PxUsage">340px</dimen>
     <dimen name="divider_270px" tools:ignore="PxUsage">270px</dimen>
+    <dimen name="divider_264px" tools:ignore="PxUsage">264px</dimen>
     <dimen name="divider_260px" tools:ignore="PxUsage">260px</dimen>
     <dimen name="divider_250px" tools:ignore="PxUsage">250px</dimen>
     <dimen name="divider_237px" tools:ignore="PxUsage">237px</dimen>
@@ -39,6 +43,7 @@
     <dimen name="divider_101px" tools:ignore="PxUsage">101px</dimen>
     <dimen name="divider_100px" tools:ignore="PxUsage">100px</dimen>
     <dimen name="divider_88px" tools:ignore="PxUsage">88px</dimen>
+    <dimen name="divider_82px" tools:ignore="PxUsage">82px</dimen>
     <dimen name="divider_80px" tools:ignore="PxUsage">80px</dimen>
     <dimen name="divider_79px" tools:ignore="PxUsage">79px</dimen>
     <dimen name="divider_78px" tools:ignore="PxUsage">78px</dimen>

+ 2 - 0
workbenches/src/main/res/values/strings.xml

@@ -21,4 +21,6 @@
     <string name="report_number" tools:ignore="ResourceName">报告编号</string>
     <string name="date" tools:ignore="ResourceName">日期</string>
     <string name="task_in_progress" tools:ignore="ResourceName">进入正在进行任务</string>
+    <string name="training_progress" tools:ignore="ResourceName">训练进度</string>
+    <string name="start_exclusive_training" tools:ignore="ResourceName">训练进度</string>
 </resources>