Ver Fonte

1.添加直播推送游戏任务功能

王鹏鹏 há 2 anos atrás
pai
commit
6f88acfe14

+ 35 - 1
livebroadcast/src/main/java/com/yingyang/livebroadcast/dialog/GameTasksDialog.kt

@@ -1,6 +1,7 @@
 package com.yingyang.livebroadcast.dialog
 
 import android.annotation.SuppressLint
+import android.content.Context
 import android.os.Bundle
 import android.text.TextUtils
 import android.view.LayoutInflater
@@ -15,12 +16,17 @@ import com.gyf.immersionbar.BarHide
 import com.gyf.immersionbar.ktx.immersionBar
 import com.yingyang.livebroadcast.R
 import com.yingyang.livebroadcast.entity.GameTasksBean
+import com.yingyang.livebroadcast.net.LivebroadcastServiceFactory
+import com.yingyangfly.baselib.bean.Record
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.net.BaseObserver
+import com.yingyangfly.baselib.net.MyRxScheduler
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.GlideImgUtil
 import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.baselib.utils.ViewTool
 import gorden.rxbus2.RxBus
+import io.reactivex.schedulers.Schedulers
 
 /**
  * 专属游戏任务弹窗
@@ -33,6 +39,9 @@ class GameTasksDialog : DialogFragment() {
     private var tvGameDifficulty: AppCompatTextView? = null
     private var btnGame: AppCompatButton? = null
     private var gameData: String = ""
+    private var content: Context? = null
+    private var gameTotalScore = ""
+    private var record: Record? = null
 
     fun setData(data: String) {
         gameData = data
@@ -66,11 +75,35 @@ class GameTasksDialog : DialogFragment() {
         val rootView = ViewTool.inflateFragmentPixels(
             activity, R.layout.dialog_game_tasks, container, 1194, 834
         )
+        content = activity
         findId(rootView)
         init()
         return rootView
     }
 
+    /**
+     * 获取游戏详情
+     */
+    private fun getGameDetail(id: String) {
+        if (TextUtils.isEmpty(id).not()) {
+            LivebroadcastServiceFactory.getService()
+                .getGameDetail(id)
+                .subscribeOn(Schedulers.io())
+                .compose(MyRxScheduler.ioMain(content!!, true))
+                .subscribe(object : BaseObserver<Record>() {
+                    override fun onSuccess(t: Record?) {
+                        if (t != null) {
+                            record = t
+                            gameTotalScore = t.gameScore
+                        }
+                    }
+
+                    override fun onFail(msg: String) {
+                    }
+                })
+        }
+    }
+
     private fun findId(rootView: View) {
         gameImage = rootView.findViewById(R.id.gameImage)
         tvGameType = rootView.findViewById(R.id.tvGameType)
@@ -88,6 +121,7 @@ class GameTasksDialog : DialogFragment() {
                 tvGameType!!.text = "游戏类型:" + gameTasksBean.gameTypeName
                 tvGameName!!.text = "游戏名称:" + gameTasksBean.gameName
                 tvGameDifficulty!!.text = "游戏难度:" + gameDifficultyInfo(gameTasksBean.gameDifficulty)
+                getGameDetail(gameTasksBean.id)
             }
             btnGame!!.setOnSingleClickListener {
                 if (gameTasksBean != null) {
@@ -96,7 +130,7 @@ class GameTasksDialog : DialogFragment() {
                         .withString("playClass", "A")
                         .withString("url", gameTasksBean.url)
                         .withString("gameType", gameTasksBean.gameType)
-                        .withString("gameTotalScore", gameTasksBean.gameTotalScore)
+                        .withString("gameTotalScore", gameTotalScore)
                         .withString("gameInbetweenImage", gameTasksBean.gameInbetweenImage)
                         .withString("gameBackgroundImage", gameTasksBean.gameBackgroundImage)
                         .withString("gameShortDesn", gameTasksBean.gameShortDesn)

+ 1 - 0
livebroadcast/src/main/java/com/yingyang/livebroadcast/entity/GameTasksBean.kt

@@ -15,4 +15,5 @@ class GameTasksBean {
     var fullFlag: String? = ""//是否全屏
     var frameImg: String? = ""
     var gameTypeName: String = ""
+    var id = ""
 }

+ 21 - 0
livebroadcast/src/main/java/com/yingyang/livebroadcast/net/LivebroadcastServiceFactory.kt

@@ -0,0 +1,21 @@
+package com.yingyang.livebroadcast.net
+
+import com.yingyangfly.baselib.config.AccountConfig
+import com.yingyangfly.baselib.net.ServiceFactory
+
+/**
+ * Author: Austin
+ * Date: 19-4-11
+ * Description:
+ */
+object LivebroadcastServiceFactory {
+
+    fun getService(): LivebroadcastsApiService {
+        if (apiService != null) {
+            return apiService!!
+        }
+        return ServiceFactory.getService(AccountConfig.API_URL, LivebroadcastsApiService::class.java)
+    }
+
+    var apiService: LivebroadcastsApiService? = null
+}

+ 21 - 0
livebroadcast/src/main/java/com/yingyang/livebroadcast/net/LivebroadcastsApiService.kt

@@ -0,0 +1,21 @@
+package com.yingyang.livebroadcast.net
+
+import com.yingyangfly.baselib.bean.Record
+import com.yingyangfly.baselib.net.XBaseEntity
+import io.reactivex.Observable
+import retrofit2.http.POST
+import retrofit2.http.Query
+
+/**
+ * Author: Austin
+ * Date: 19-4-1
+ * Description:
+ */
+interface LivebroadcastsApiService {
+
+    /**
+     * 获取游戏详情
+     */
+    @POST("game/params/user/detail")
+    fun getGameDetail(@Query("id") id: String): Observable<XBaseEntity<Record>>
+}