Browse Source

1.修改直播列表页面UI

王鹏鹏 2 years ago
parent
commit
86bcf40011

+ 1 - 1
.idea/misc.xml

@@ -578,7 +578,7 @@
         <entry key="..\:/workspace/hcp-pads/livebroadcast/src/main/res/layout/activity_live_broadcast_list.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/livebroadcast/src/main/res/layout/activity_video_player.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/livebroadcast/src/main/res/layout/dialog_game_tasks.xml" value="0.536" />
-        <entry key="..\:/workspace/hcp-pads/livebroadcast/src/main/res/layout/item_live_broadcast.xml" value="0.6" />
+        <entry key="..\:/workspace/hcp-pads/livebroadcast/src/main/res/layout/item_live_broadcast.xml" value="1.555984555984556" />
         <entry key="..\:/workspace/hcp-pads/login/src/main/res/drawable/bg_login.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/login/src/main/res/layout/activity_login.xml" value="0.4421768707482993" />
         <entry key="..\:/workspace/hcp-pads/mmse/src/main/res/layout/activity_questions.xml" value="0.23697916666666666" />

+ 20 - 1
game/src/main/java/com/yingyangfly/game/dialog/CompletionTrainingDialog.kt

@@ -3,10 +3,13 @@ package com.yingyangfly.game.dialog
 import android.annotation.SuppressLint
 import android.content.Context
 import android.os.Bundle
+import android.text.TextUtils
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.LinearLayout
 import androidx.appcompat.widget.AppCompatImageView
+import androidx.appcompat.widget.AppCompatTextView
 import androidx.fragment.app.DialogFragment
 import com.bumptech.glide.Glide
 import com.gyf.immersionbar.BarHide
@@ -21,18 +24,22 @@ import com.yingyangfly.game.widget.NumberAnimTextView
  */
 class CompletionTrainingDialog : DialogFragment() {
 
+    private var totalScoreLayout: LinearLayout? = null
     private var imageSettlement: AppCompatImageView? = null
     private var tvTotalScore: NumberAnimTextView? = null
     private var tvGameLevelScore: NumberAnimTextView? = null
+    private var tvLevelScore: AppCompatTextView? = null
     private var totalScore: String = ""
     private var curLevelScore: String = ""
+    private var playClass: String = ""
     private var btnDetermine: AppCompatImageView? = null
     private var content: Context? = null
     var onDialogClickListener: ((bean: String) -> Unit)? = null
 
-    fun setData(totalScore: String, curLevelScore: String) {
+    fun setData(totalScore: String, curLevelScore: String, playClass: String) {
         this.totalScore = totalScore
         this.curLevelScore = curLevelScore
+        this.playClass = playClass
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -70,10 +77,22 @@ class CompletionTrainingDialog : DialogFragment() {
     }
 
     private fun findId(rootView: View) {
+        totalScoreLayout = rootView.findViewById(R.id.totalScoreLayout)
+        if(TextUtils.equals("D", playClass)){
+            totalScoreLayout?.visibility = View.INVISIBLE
+        } else {
+            totalScoreLayout?.visibility = View.VISIBLE
+        }
         imageSettlement = rootView.findViewById(R.id.imageSettlement)
         tvTotalScore = rootView.findViewById(R.id.tvTotalScore)
         tvGameLevelScore = rootView.findViewById(R.id.tvGameLevelScore)
         btnDetermine = rootView.findViewById(R.id.btnDetermine)
+        tvLevelScore = rootView.findViewById(R.id.tvLevelScore)
+        tvLevelScore?.text = if(TextUtils.equals("D", playClass)){
+            "体验分数:"
+        } else {
+            "本关得分:"
+        }
         if (content != null) {
             Glide.with(content!!)
                 .asGif()

+ 2 - 1
game/src/main/java/com/yingyangfly/game/play/PlayGameActivity.kt

@@ -647,7 +647,8 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
         val completionTrainingDialog = CompletionTrainingDialog()
         completionTrainingDialog.setData(
             gameTotalScore,
-            gameDataBean.curLevelScore
+            gameDataBean.curLevelScore,
+            playClass
         )
         completionTrainingDialog.onDialogClickListener = {
             finish()

+ 1 - 0
game/src/main/res/layout/dialog_completion_training.xml

@@ -79,6 +79,7 @@
                 app:layout_constraintTop_toBottomOf="@+id/totalScoreLayout">
 
                 <androidx.appcompat.widget.AppCompatTextView
+                    android:id="@+id/tvLevelScore"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:fontFamily="@font/lcb"

+ 6 - 4
livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/list/LiveBroadcastListActivity.kt

@@ -59,9 +59,6 @@ class LiveBroadcastListActivity :
         binding {
             liveSwipe.setEnableLoadMore(true)
             liveSwipe.setEnableRefresh(true)
-        }
-
-        binding {
             gridLayoutManager = GridLayoutManager(mContext, 2)
             rvLiveBroadcast.layoutManager = gridLayoutManager
             rvLiveBroadcast.adapter = liveBroadcastAdapter
@@ -109,6 +106,9 @@ class LiveBroadcastListActivity :
                 }
             }
         }
+        liveBroadcastAdapter.jumpDetailsActivityClickListener = {
+
+        }
     }
 
     /**
@@ -118,7 +118,9 @@ class LiveBroadcastListActivity :
         viewModel.reservationLive(method, fail = {
             it.show()
         }, success = {
-            loadData(true, true)
+            runOnUiThread {
+                binding.rdbLive.isChecked = true
+            }
         })
     }
 

+ 9 - 0
livebroadcast/src/main/java/com/yingyang/livebroadcast/adapter/LiveBroadcastAdapter.kt

@@ -31,15 +31,23 @@ class LiveBroadcastAdapter(override val layoutId: Int = R.layout.item_live_broad
 
     var refreshLiveBroadcastClickListener: ((method: String) -> Unit)? = null
 
+    var jumpDetailsActivityClickListener: ((item: Record) -> Unit)? = null
+
+    @SuppressLint("SetTextI18n")
     override fun onBindViewHolder(binding: ItemLiveBroadcastBinding, item: Record, position: Int) {
         binding.data = item
+        binding.detailsLayout.setOnSingleClickListener {
+            jumpDetailsActivityClickListener?.invoke(item)
+        }
         if (TextUtils.equals("预约直播", method)) {
+            binding.tvTime.text = "直播时间:" + item.getLiveTime()
             if (TextUtils.equals("1", item.isReservation)) {
                 binding.tvTitle.text = "已预约"
             } else {
                 binding.tvTitle.text = "预约直播"
             }
         } else if (TextUtils.equals("直播中", method)) {
+            binding.tvTime.text = "直播时间:" + item.getLiveTime()
             binding.tvTitle.text = when (item.liveStatus) {
                 "1" -> {
                     "未开始"
@@ -61,6 +69,7 @@ class LiveBroadcastAdapter(override val layoutId: Int = R.layout.item_live_broad
                 }
             }
         } else if (TextUtils.equals("直播回放", method)) {
+            binding.tvTime.text = "直播时间:" + item.beginTime
             binding.tvTitle.text = method
         }
         binding.layoutLiveBroadcast.setOnSingleClickListener {

+ 25 - 1
livebroadcast/src/main/java/com/yingyang/livebroadcast/entity/LiveBroadcastListBean.kt

@@ -1,5 +1,10 @@
 package com.yingyang.livebroadcast.entity
 
+import android.annotation.SuppressLint
+import android.text.TextUtils
+import java.text.SimpleDateFormat
+import java.util.*
+
 /**
  * 直播列表bean
  */
@@ -29,7 +34,26 @@ data class Record(
     val liveVideo: String,//录播地址
     var isReservation: String,//是否预定 1是 2否
     val streamInfo: StreamInfo//流信息
-)
+) {
+    fun getLiveTime(): String {
+        if (TextUtils.isEmpty(beginTime).not() && TextUtils.isEmpty(endTime).not()) {
+            simpleDateFormat(beginTime)
+            return simpleDateFormat(beginTime).substring(
+                5,
+                17
+            ) + " - " + endTime.substring(11, 16)
+        }
+        return ""
+    }
+
+    @SuppressLint("SimpleDateFormat")
+    fun simpleDateFormat(args: String): String {
+        val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+        val date = simpleDateFormat.parse(args)
+        val sdf = SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss")
+        return sdf.format(date as Date)
+    }
+}
 
 data class StreamInfo(
     val liveAddress: String,//播放地址flv

+ 48 - 13
livebroadcast/src/main/res/layout/item_live_broadcast.xml

@@ -55,21 +55,56 @@
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toBottomOf="@+id/headImage" />
 
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tvContent"
+            <LinearLayout
+                android:id="@+id/contentLayout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginStart="@dimen/divider_24px"
-                android:layout_marginTop="@dimen/divider_6px"
-                android:layout_marginEnd="@dimen/divider_23px"
-                android:ellipsize="end"
-                android:maxLines="1"
-                android:text='@{"直播描述:"+data.liveDesn}'
-                android:textColor="@color/color_FF8C8C8C"
-                android:textSize="@dimen/divider_22px"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/tvName" />
+                app:layout_constraintTop_toBottomOf="@+id/tvName">
+
+                <androidx.appcompat.widget.AppCompatTextView
+                    android:id="@+id/tvContent"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/divider_24px"
+                    android:layout_marginTop="@dimen/divider_6px"
+                    android:layout_marginEnd="@dimen/divider_23px"
+                    android:layout_weight="1"
+                    android:ellipsize="end"
+                    android:maxLines="1"
+                    android:text='@{"直播描述:"+data.liveDesn}'
+                    android:textColor="@color/color_FF8C8C8C"
+                    android:textSize="@dimen/divider_22px" />
+
+                <LinearLayout
+                    android:id="@+id/detailsLayout"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_vertical"
+                    android:paddingStart="@dimen/divider_17px"
+                    android:paddingEnd="@dimen/divider_11px">
+
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/details"
+                        android:textColor="@color/color_FF4A76FF"
+                        android:textSize="@dimen/divider_22px"
+                        android:textStyle="bold" />
+
+                    <androidx.appcompat.widget.AppCompatImageView
+                        android:layout_width="@dimen/divider_35px"
+                        android:layout_height="@dimen/divider_36px"
+                        android:background="@mipmap/details_arrow"
+                        android:scaleType="centerInside" />
+
+                </LinearLayout>
+
+
+            </LinearLayout>
 
             <androidx.appcompat.widget.AppCompatTextView
                 android:id="@+id/tvTime"
@@ -79,13 +114,13 @@
                 android:layout_marginTop="@dimen/divider_6px"
                 android:layout_marginEnd="@dimen/divider_23px"
                 android:ellipsize="end"
+                android:maxEms="12"
                 android:maxLines="1"
-                android:text='@{"开播时间:"+data.beginTime+" - "+data.endTime}'
                 android:textColor="@color/color_FF8C8C8C"
                 android:textSize="@dimen/divider_22px"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/tvContent" />
+                app:layout_constraintTop_toBottomOf="@+id/contentLayout" />
 
             <androidx.appcompat.widget.AppCompatTextView
                 android:id="@+id/tvTitle"

BIN
livebroadcast/src/main/res/mipmap-xxhdpi/details_arrow.png


+ 1 - 0
livebroadcast/src/main/res/values/strings.xml

@@ -12,4 +12,5 @@
     <string name="no" tools:ignore="MissingTranslation,ResourceName">否</string>
     <string name="exclusive_game_tasks" tools:ignore="ResourceName">专属游戏任务</string>
     <string name="enter_game" tools:ignore="ResourceName">进入游戏</string>
+    <string name="details" tools:ignore="ResourceName">详情</string>
 </resources>