Sfoglia il codice sorgente

feat: 推荐游戏跳转

tongmengxiao 1 anno fa
parent
commit
d5fd01888b

+ 1 - 10
baseswago/src/main/java/com/swago/baseswago/model/live/game/RecommendGameListModel.kt

@@ -3,14 +3,5 @@ package com.swago.baseswago.model.live.game
 import java.util.ArrayList
 
 data class RecommendGameListModel(
-    var list: ArrayList<RecommendGameModel>
-)
-
-data class RecommendGameModel(
-    var id: Int,
-    var sort_id: Int,
-    var game_icon_url: String,
-    var game_api_url: String,
-    var game_full_url: String,
-    var game_full_down_url: String
+    var list: ArrayList<GameModel>
 )

+ 4 - 4
room/src/main/java/com/swago/room/adapter/RecommendBannerViewAdapter.kt

@@ -4,11 +4,11 @@ import android.view.ViewGroup
 import android.widget.ImageView
 import androidx.recyclerview.widget.RecyclerView
 import com.swago.baseswago.model.live.RoomConfig
-import com.swago.baseswago.model.live.game.RecommendGameModel
+import com.swago.baseswago.model.live.game.GameModel
 import com.swago.loadUrl
 import com.youth.banner.adapter.BannerAdapter
 
-class RecommendBannerViewAdapter(data:List<RecommendGameModel>) :  BannerAdapter<RecommendGameModel, RecommendBannerViewAdapter.BannerViewHolder>(data){
+class RecommendBannerViewAdapter(data:List<GameModel>) :  BannerAdapter<GameModel, RecommendBannerViewAdapter.BannerViewHolder>(data){
 
     class BannerViewHolder(var imageView: ImageView) : RecyclerView.ViewHolder(
         imageView
@@ -27,12 +27,12 @@ class RecommendBannerViewAdapter(data:List<RecommendGameModel>) :  BannerAdapter
 
     override fun onBindView(
         holder: BannerViewHolder?,
-        data: RecommendGameModel,
+        data: GameModel,
         position: Int,
         size: Int
     ) {
         holder?.let {
-            it.imageView.loadUrl(holder.imageView.context,data.game_icon_url)
+            data.game_icon_url?.let { it1 -> it.imageView.loadUrl(holder.imageView.context, it1) }
         }
     }
 }

+ 14 - 3
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -468,9 +468,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         roomVm.recommendGameListModelLiveData.observe(this){
             binding.playBannerView.setData(it.list)
             binding.playBannerView.jumpToWebFun = { game ->
-                ARouter.getInstance().build(ARouteConstant.Base.webView)
-                    .withString("url", game.game_api_url)
-                    .navigation()
+                setRecommendGame(game)
 
             }
         }
@@ -804,6 +802,19 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         }
     }
 
+    fun setRecommendGame(game: GameModel){
+        SwagoRoomManager.iRoomInfo?.let {
+            if (it is UserRoomModel ) {
+                it.roomModel?.game_api_url = game.game_api_url
+                it.roomModel?.game_down_url = game.game_down_url
+                it.roomModel?.game_type = game.game_type
+                it.roomModel?.game_version = game.game_version
+                it.roomModel?.game_icon_url = game.game_icon_url
+                openGameDialog()
+            }
+        }
+    }
+
     override fun changeRoom(iRoomInfo: IRoomInfo) {
         binding.likeLayout.clear()
        binding.rvAudio.visibility = View.GONE

+ 5 - 5
room/src/main/java/com/swago/room/widget/RecommendBannerView.kt

@@ -10,7 +10,7 @@ import com.swago.baseswago.baseroom.IRoomActiveListener
 import com.swago.baseswago.baseroom.IRoomInfo
 import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.model.live.RoomConfig
-import com.swago.baseswago.model.live.game.RecommendGameModel
+import com.swago.baseswago.model.live.game.GameModel
 import com.swago.room.adapter.BannerViewAdapter
 import com.swago.room.adapter.RecommendBannerViewAdapter
 import com.swago.room.databinding.ViewBannerBinding
@@ -19,10 +19,10 @@ import com.youth.banner.indicator.CircleIndicator
 class RecommendBannerView : FrameLayout,IRoomActiveListener {
 
     private val mData by lazy {
-        ArrayList<RecommendGameModel>()
+        ArrayList<GameModel>()
     }
 
-    var jumpToWebFun:((RecommendGameModel)->Unit)? = null
+    var jumpToWebFun:((GameModel)->Unit)? = null
 
     private val bannerViewAdapter  = RecommendBannerViewAdapter(mData)
 
@@ -56,14 +56,14 @@ class RecommendBannerView : FrameLayout,IRoomActiveListener {
         SwagoRoomManager.removeListener(this)
     }
 
-    fun setData(data:ArrayList<RecommendGameModel>){
+    fun setData(data:ArrayList<GameModel>){
         binding?.let {
             mData.addAll(data)
             it.banner.setAdapter(bannerViewAdapter)
                 .setIndicator(CircleIndicator(context))
                 .addBannerLifecycleObserver(findViewTreeLifecycleOwner())
                 .setOnBannerListener { data, _ ->
-                    val bannerData = data as RecommendGameModel
+                    val bannerData = data as GameModel
                     jumpToWebFun?.invoke(bannerData)
                 }
         }

+ 0 - 1
room/src/main/res/layout/fragment_base_com.xml

@@ -101,7 +101,6 @@
         android:layout_marginTop="300dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginEnd="10dp"
         tools:visibility="visible"
         android:visibility="gone"
         android:layout_width="wrap_content"