Browse Source

1.修改数据监控页面UI

王鹏鹏 2 years ago
parent
commit
34c4995717

+ 3 - 3
baselib/src/main/java/com/yingyangfly/baselib/utils/ImageUtil.kt

@@ -14,6 +14,7 @@ import com.bumptech.glide.load.resource.bitmap.GranularRoundedCorners
 import com.bumptech.glide.load.resource.bitmap.RoundedCorners
 import com.bumptech.glide.request.RequestListener
 import com.bumptech.glide.request.target.Target
+import com.yingyangfly.baselib.R
 
 /**
  * @author wangsai
@@ -64,10 +65,9 @@ object ImageUtil {
     ) {
         val load = Glide.with(AppUtil.getContext())
             .load(url)
-//            .placeholder(resId)
-//            .format(DecodeFormat.PREFER_RGB_565)
+            .placeholder(R.mipmap.icon_place_holder)
+            .error(R.mipmap.icon_place_holder)
             .diskCacheStrategy(DiskCacheStrategy.ALL)
-
         if (roundRadius > 0) {
             load.transform(
                 CenterCrop(),

+ 3 - 3
workbenches/src/main/java/com/yingyang/workbenches/adapter/DataMonitorAdapter.kt

@@ -2,16 +2,16 @@ package com.yingyang.workbenches.adapter
 
 import com.yingyang.workbenches.R
 import com.yingyang.workbenches.databinding.ItemDataMonitorBinding
+import com.yingyang.workbenches.entity.Record
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
 
 /**
  * 数据监控adapter
  */
 class DataMonitorAdapter(override val layoutId: Int = R.layout.item_data_monitor) :
-    BaseDataBindingAdapter<String, ItemDataMonitorBinding>() {
+    BaseDataBindingAdapter<Record, ItemDataMonitorBinding>() {
 
-    override fun onBindViewHolder(binding: ItemDataMonitorBinding, item: String, position: Int) {
+    override fun onBindViewHolder(binding: ItemDataMonitorBinding, item: Record, position: Int) {
         binding.data = item
-
     }
 }

+ 12 - 5
workbenches/src/main/java/com/yingyang/workbenches/datamonitor/DataMonitorFragment.kt

@@ -2,15 +2,14 @@ package com.yingyang.workbenches.datamonitor
 
 import android.text.Html
 import android.text.TextUtils
-import android.util.Log
 import androidx.recyclerview.widget.GridLayoutManager
 import com.yingyang.workbenches.adapter.DataMonitorAdapter
 import com.yingyang.workbenches.adapter.DateAdapter
 import com.yingyang.workbenches.databinding.FragmentDataMonitorBinding
 import com.yingyang.workbenches.entity.DayBean
 import com.yingyang.workbenches.entity.MonthRecordBean
+import com.yingyang.workbenches.entity.Record
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.show
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMFragment
 import com.yingyangfly.baselib.utils.RxBusCodes
@@ -33,7 +32,7 @@ class DataMonitorFragment : BaseMVVMFragment<FragmentDataMonitorBinding, DataMon
     /**
      * 数据监控adapter
      */
-    private var dataMonitorList = mutableListOf<String>()
+    private var dataMonitorList = mutableListOf<Record>()
     private val dataMonitorAdapter by lazy { DataMonitorAdapter() }
 
     override fun initViews() {
@@ -45,6 +44,7 @@ class DataMonitorFragment : BaseMVVMFragment<FragmentDataMonitorBinding, DataMon
             dateAdapter.onDateClickListener = { bean ->
                 getDayRecordDetail(bean)
             }
+            rvWeek.adapter = dataMonitorAdapter
         }
     }
 
@@ -77,17 +77,24 @@ class DataMonitorFragment : BaseMVVMFragment<FragmentDataMonitorBinding, DataMon
                     "您已开通专属训练<font color='#FF0000'>" + it.taskCount + "</font>天,共累计完成了专属训练<font color='#FF0000'>" + it.successCount + "</font>次"
                 binding.tvSummarize.setText(Html.fromHtml(summarize))
                 val trainingTime =
-                    "累计训练时长(含自由训练)<font color='#FF0000'>" + it.trainTime + "</font>分钟"
+                    "累计训练时长(含自由训练)<font color='#FF0000'>" + it.trainTime + "</font>"
                 binding.tvTrainingTime.setText(Html.fromHtml(trainingTime))
             }
         })
     }
 
     private fun getDayRecordDetail(time: String) {
+        dataMonitorList.clear()
         viewModel.getDayRecordDetail(time, fail = {
             it.toast()
         }, success = {
-
+            dataMonitorList.clear()
+            if (it != null) {
+                if (it.record.isNullOrEmpty().not()) {
+                    dataMonitorList.addAll(it.record)
+                }
+                dataMonitorAdapter.setData(dataMonitorList)
+            }
         })
     }
 

+ 2 - 1
workbenches/src/main/java/com/yingyang/workbenches/datamonitor/DataMonitorViewModel.kt

@@ -1,5 +1,6 @@
 package com.yingyang.workbenches.datamonitor
 
+import com.yingyang.workbenches.entity.DayRecordDetailBean
 import com.yingyang.workbenches.entity.GetMonthRecordBean
 import com.yingyang.workbenches.entity.MonthRecordBean
 import com.yingyang.workbenches.entity.StatisticRecordBean
@@ -51,7 +52,7 @@ class DataMonitorViewModel : BaseViewModel() {
     fun getDayRecordDetail(
         date: String,
         fail: ((msg: String) -> Unit)? = null,
-        success: ((success: List<Unit>?) -> Unit)? = null,
+        success: ((success: DayRecordDetailBean?) -> Unit)? = null,
     ) = launchFlow(false) {
         val requestBean = GetMonthRecordBean().apply {
             time = date

+ 9 - 0
workbenches/src/main/java/com/yingyang/workbenches/entity/DayRecordDetailBean.kt

@@ -0,0 +1,9 @@
+package com.yingyang.workbenches.entity
+
+/**
+ * 查询指定日期游戏记录bean
+ */
+data class DayRecordDetailBean(
+    val record: List<Record>,
+    val time: String
+)

+ 1 - 1
workbenches/src/main/java/com/yingyang/workbenches/net/WorkbenchesApiService.kt

@@ -109,6 +109,6 @@ interface WorkbenchesApiService {
      * 查询指定日期游戏记录
      */
     @POST("game/play/record/queryDayRecordDetail")
-    suspend fun getDayRecordDetail(@Body requestBody: RequestBody): BaseResp<List<Unit>>
+    suspend fun getDayRecordDetail(@Body requestBody: RequestBody): BaseResp<DayRecordDetailBean>
 
 }

+ 14 - 2
workbenches/src/main/res/layout/fragment_data_monitor.xml

@@ -120,7 +120,7 @@
 
         </androidx.constraintlayout.widget.ConstraintLayout>
 
-        <androidx.recyclerview.widget.RecyclerView
+        <LinearLayout
             android:id="@+id/weekLayout"
             android:layout_width="0dp"
             android:layout_height="@dimen/divider_533px"
@@ -128,11 +128,23 @@
             android:layout_marginTop="@dimen/divider_32px"
             android:layout_marginEnd="@dimen/divider_40px"
             android:background="@drawable/bg_calendar"
+            android:orientation="vertical"
             app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintHorizontal_weight="1"
             app:layout_constraintStart_toEndOf="@id/calendarLayout"
-            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/rvWeek"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:scrollbars="vertical"
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+
+        </LinearLayout>
+
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tvSummarize"

+ 6 - 4
workbenches/src/main/res/layout/item_data_monitor.xml

@@ -8,7 +8,7 @@
 
         <variable
             name="data"
-            type="java.lang.String" />
+            type="com.yingyang.workbenches.entity.Record" />
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
@@ -25,7 +25,9 @@
             android:layout_marginBottom="@dimen/divider_20px"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:layout_constraintTop_toTopOf="parent"
+            app:roundRadius="@{8}"
+            app:loadImg="@{data.gameCoverImage}" />
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tvGameName"
@@ -37,7 +39,7 @@
             android:layout_marginEnd="@dimen/divider_7px"
             android:ellipsize="end"
             android:maxLines="1"
-            android:text="@{data}"
+            android:text="@{data.gameName}"
             android:textColor="@color/color_FF333333"
             android:textSize="@dimen/divider_24px"
             android:textStyle="bold"
@@ -53,7 +55,7 @@
             android:layout_marginStart="@dimen/divider_20px"
             android:layout_marginTop="@dimen/divider_2px"
             android:layout_marginEnd="@dimen/divider_7px"
-            android:text="@{data}"
+            android:text="@{data.duration}"
             android:textColor="@color/color_FF333333"
             android:textSize="@dimen/divider_18px"
             app:layout_constraintEnd_toEndOf="parent"