Browse Source

1.优化代码

王鹏鹏 2 years ago
parent
commit
ffd18178f4

+ 1 - 0
.idea/misc.xml

@@ -491,6 +491,7 @@
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_game_introduction.xml" value="0.4" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_game_loading.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_main.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_play_game.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_consultation_request.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_doctor_details.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_payment.xml" value="0.23697916666666666" />

+ 5 - 0
baselib/src/main/java/com/yingyangfly/baselib/router/RouterUrlCommon.kt

@@ -199,4 +199,9 @@ object RouterUrlCommon {
      * 游戏介绍
      */
     const val gameIntroduction = "/game/introduction"
+
+    /**
+     * 玩游戏页面
+     */
+    const val playGame = "/play/game"
 }

+ 0 - 1
game/build.gradle

@@ -16,7 +16,6 @@ android {
 
 dependencies {
     implementation project(path: ':baselib')
-    api project(path: ':superplayerkit')
     api fileTree(exclude: '*.bak', dir: 'libs')
     implementation(rootProject.ext.androidx.kotlin_lib)
     implementation(rootProject.ext.androidx.kotlin_core)

+ 6 - 0
game/src/main/AndroidManifest.xml

@@ -16,6 +16,12 @@
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
 
+        <activity
+            android:name="com.yingyangfly.game.play.PlayGameActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
+
     </application>
 
 </manifest>

+ 6 - 0
game/src/main/java/com/yingyangfly/game/entity/GetGameDetailByCodeBean.kt

@@ -0,0 +1,6 @@
+package com.yingyangfly.game.entity
+
+class GetGameDetailByCodeBean {
+    var gameCode: String = ""
+    var playClass: String = ""
+}

+ 17 - 7
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionActivity.kt

@@ -6,9 +6,7 @@ import android.text.TextUtils
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.tencent.liteav.demo.superplayer.SuperPlayerModel
 import com.yingyangfly.baselib.bean.Record
-import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
@@ -25,10 +23,10 @@ class GameIntroductionActivity :
     BaseMVVMActivity<ActivityGameIntroductionBinding, GameIntroductionViewModel>(),
     View.OnTouchListener {
 
-    private var url: String = ""
+    private var id: String = ""
 
     override fun onCreate(savedInstanceState: Bundle?) {
-        url = intent.getStringExtra("url") ?: ""
+        id = intent.getStringExtra("url") ?: ""
         super.onCreate(savedInstanceState)
     }
 
@@ -51,8 +49,8 @@ class GameIntroductionActivity :
 
     override fun onResume() {
         super.onResume()
-        if (TextUtils.isEmpty(url).not()) {
-            viewModel.getGameDetail(url, fail = {
+        if (TextUtils.isEmpty(id).not()) {
+            viewModel.getGameDetail(id, fail = {
 
             }, success = {
                 if (it != null) {
@@ -60,11 +58,23 @@ class GameIntroductionActivity :
                     if (TextUtils.isEmpty(it.gameVideoUrl).not()) {
                         initPalyer(it)
                     }
+                    getGameDetailByCode(it.gameCode, it.playClass)
                 }
             })
         }
     }
 
+    /**
+     * 获取游戏信息
+     */
+    private fun getGameDetailByCode(gameCode: String, playClass: String) {
+        viewModel.getGameDetailByCode(gameCode, playClass, fail = {
+
+        }, success = {
+
+        })
+    }
+
     /**
      * 初始化播放器
      */
@@ -85,7 +95,7 @@ class GameIntroductionActivity :
                 if (v.id == R.id.homeImage) {
                     JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
                 } else if (v.id == R.id.btnStartGame) {
-
+                    JumpUtil.jumpActivityWithUrl(RouterUrlCommon.playGame, id, mContext)
                 }
             }
             MotionEvent.ACTION_CANCEL -> {

+ 24 - 0
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionViewModel.kt

@@ -2,6 +2,9 @@ package com.yingyangfly.game.introduction
 
 import com.yingyangfly.baselib.bean.Record
 import com.yingyangfly.baselib.mvvm.BaseViewModel
+import com.yingyangfly.baselib.net.XUtils
+import com.yingyangfly.baselib.utils.GsonUtil
+import com.yingyangfly.game.entity.GetGameDetailByCodeBean
 import com.yingyangfly.game.net.GAME_API
 
 /**
@@ -23,4 +26,25 @@ class GameIntroductionViewModel : BaseViewModel() {
         fail
     )
 
+    /**
+     * 获取游戏详情
+     */
+    fun getGameDetailByCode(
+        code: String,
+        playClasses: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: Unit?) -> Unit)? = null,
+    ) = launchFlow(false) {
+        val requestBean = GetGameDetailByCodeBean().apply {
+            gameCode = code
+            playClass = playClasses
+        }
+        val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+        GAME_API.getGameDetailByCode(body)
+    }.runUI(
+        success,
+        fail
+    )
+
+
 }

+ 8 - 0
game/src/main/java/com/yingyangfly/game/net/GameApiService.kt

@@ -2,6 +2,8 @@ package com.yingyangfly.game.net
 
 import com.yingyangfly.baselib.bean.Record
 import com.yingyangfly.baselib.net.BaseResp
+import okhttp3.RequestBody
+import retrofit2.http.Body
 import retrofit2.http.POST
 import retrofit2.http.Query
 
@@ -12,4 +14,10 @@ interface GameApiService {
      */
     @POST("game/params/user/detail")
     suspend fun getGameDetail(@Query("id") id: String): BaseResp<Record>
+
+    /**
+     * 获取游戏详情
+     */
+    @POST("app/game/detailByCode")
+    suspend fun getGameDetailByCode(@Body requestBody: RequestBody): BaseResp<Unit>
 }

+ 54 - 0
game/src/main/java/com/yingyangfly/game/play/PlayGameActivity.kt

@@ -0,0 +1,54 @@
+package com.yingyangfly.game.play
+
+import android.os.Bundle
+import android.text.TextUtils
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.game.databinding.ActivityPlayGameBinding
+
+/**
+ * 玩游戏页面
+ */
+@Route(path = RouterUrlCommon.playGame)
+class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewModel>() {
+
+    private var id: String = ""
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        id = intent.getStringExtra("url") ?: ""
+        super.onCreate(savedInstanceState)
+    }
+
+    override fun initViews() {
+
+    }
+
+    override fun initListener() {
+
+    }
+
+    override fun initData() {
+
+    }
+
+    override fun onResume() {
+        super.onResume()
+        if (TextUtils.isEmpty(id).not()) {
+            loadGame()
+        }
+    }
+
+    /**
+     * 加载游戏内容
+     */
+    private fun loadGame() {
+        viewModel.getGameDetail(id, fail = {
+
+        }, success = {
+            if (it != null) {
+
+            }
+        })
+    }
+}

+ 26 - 0
game/src/main/java/com/yingyangfly/game/play/PlayGameViewModel.kt

@@ -0,0 +1,26 @@
+package com.yingyangfly.game.play
+
+import com.yingyangfly.baselib.bean.Record
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+import com.yingyangfly.game.net.GAME_API
+
+/**
+ * @author 王鹏鹏
+ */
+class PlayGameViewModel : BaseViewModel() {
+
+    /**
+     * 获取游戏详情
+     */
+    fun getGameDetail(
+        id: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: Record?) -> Unit)? = null,
+    ) = launchFlow(false) {
+        GAME_API.getGameDetail(id)
+    }.runUI(
+        success,
+        fail
+    )
+
+}

+ 6 - 0
game/src/main/manifest/AndroidManifest.xml

@@ -14,6 +14,12 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
+
+        <activity
+            android:name="com.yingyangfly.game.play.PlayGameActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
     </application>
 
 </manifest>

+ 13 - 0
game/src/main/res/layout/activity_play_game.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>