Browse Source

1.优化代码

王鹏鹏 2 years ago
parent
commit
9e742572fd

+ 6 - 1
.idea/misc.xml

@@ -482,12 +482,17 @@
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/activity_base_web_view.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_loading.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/rv_empty.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_introduction.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_loading.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_progressbar_selector.xml" value="0.151" />
-        <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_game_introduction.xml" value="0.22239583333333332" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_record.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_title.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_start_game.xml" value="0.151" />
+        <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/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" />
         <entry key="..\:/workspace/hcp-pads/home/src/main/res/layout/activity_home.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/home/src/main/res/layout/item_game.xml" value="0.23697916666666666" />

+ 26 - 2
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionActivity.kt

@@ -1,7 +1,9 @@
 package com.yingyangfly.game.introduction
 
+import android.os.Bundle
+import android.text.TextUtils
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.yingyangfly.baselib.base.BaseActivity
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.game.databinding.ActivityGameIntroductionBinding
 
@@ -9,10 +11,19 @@ import com.yingyangfly.game.databinding.ActivityGameIntroductionBinding
  * 游戏介绍
  */
 @Route(path = RouterUrlCommon.gameIntroduction)
-class GameIntroductionActivity : BaseActivity<ActivityGameIntroductionBinding>() {
+class GameIntroductionActivity :
+    BaseMVVMActivity<ActivityGameIntroductionBinding, GameIntroductionViewModel>() {
+
+    private var url: String = ""
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        url = intent.getStringExtra("url") ?: ""
+        super.onCreate(savedInstanceState)
+    }
 
     override fun initViews() {
 
+
     }
 
     override fun initListener() {
@@ -22,4 +33,17 @@ class GameIntroductionActivity : BaseActivity<ActivityGameIntroductionBinding>()
     override fun initData() {
 
     }
+
+    override fun onResume() {
+        super.onResume()
+        if (TextUtils.isEmpty(url).not()) {
+            viewModel.getGameDetail(url, fail = {
+
+            }, success = {
+                if (it != null) {
+                    binding.data = it
+                }
+            })
+        }
+    }
 }

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

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

+ 21 - 7
game/src/main/java/com/yingyangfly/game/loading/GameLoadingActivity.kt

@@ -1,9 +1,12 @@
 package com.yingyangfly.game.loading
 
+import android.os.Bundle
+import android.text.TextUtils
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.bumptech.glide.Glide
 import com.yingyangfly.baselib.R
 import com.yingyangfly.baselib.base.BaseActivity
+import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.RxTimer
@@ -15,18 +18,29 @@ import com.yingyangfly.game.databinding.ActivityGameLoadingBinding
 @Route(path = RouterUrlCommon.gameLoading)
 class GameLoadingActivity : BaseActivity<ActivityGameLoadingBinding>() {
 
+    private var url: String = ""
     private lateinit var rxTimer: RxTimer
     private var time: Long = 4
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        url = intent.getStringExtra("url") ?: ""
+        super.onCreate(savedInstanceState)
+    }
+
     override fun initViews() {
-        rxTimer = RxTimer()
-        val m: Long = 1000
-        rxTimer.interval(m) {
-            binding.progressBar.progress = it.toInt() + 1
-            if (time == it) {
-                JumpUtil.jumpActivity(RouterUrlCommon.gameIntroduction, mContext)
-                finish()
+        if (TextUtils.isEmpty(url).not()) {
+            rxTimer = RxTimer()
+            val m: Long = 1000
+            rxTimer.interval(m) {
+                binding.progressBar.progress = it.toInt() + 1
+                if (time == it) {
+                    JumpUtil.jumpActivityWithUrl(RouterUrlCommon.gameIntroduction, url, mContext)
+                    finish()
+                }
             }
+        } else {
+            "数据错误".toast()
+            finish()
         }
     }
 

+ 14 - 0
game/src/main/java/com/yingyangfly/game/net/GameApiFactory.kt

@@ -0,0 +1,14 @@
+package com.yingyangfly.game.net
+
+import com.yingyangfly.baselib.net.NetConfig
+import com.yingyangfly.baselib.net.initAPI
+
+val Any.GAME_API: GameApiService by lazy {
+    GameApiFactory.api
+}
+
+object GameApiFactory {
+    val api: GameApiService by lazy {
+        initAPI(NetConfig.API_URL, GameApiService::class.java)
+    }
+}

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

@@ -0,0 +1,15 @@
+package com.yingyangfly.game.net
+
+import com.yingyangfly.baselib.bean.Record
+import com.yingyangfly.baselib.net.BaseResp
+import retrofit2.http.POST
+import retrofit2.http.Query
+
+interface GameApiService {
+
+    /**
+     * 获取游戏详情
+     */
+    @POST("game/params/user/detail")
+    suspend fun getGameDetail(@Query("id") id: String): BaseResp<Record>
+}

+ 17 - 0
game/src/main/res/drawable/bg_game_introduction.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FFFFC400"
+                android:startColor="@color/color_FFFFDA81"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 7 - 0
game/src/main/res/drawable/bg_game_record.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_44px" />
+    <solid android:color="@color/color_FFFAFAFA" />
+</shape>

+ 11 - 0
game/src/main/res/drawable/bg_game_title.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_43px" />
+    <solid android:color="@android:color/white" />
+
+    <stroke
+        android:width="@dimen/divider_4px"
+        android:color="@color/color_FFFFA916" />
+</shape>

+ 18 - 0
game/src/main/res/drawable/bg_start_game.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_44px" />
+            <gradient
+                android:angle="180"
+                android:endColor="@color/color_FF8756FF"
+                android:startColor="@color/color_FF77B0FF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 116 - 1
game/src/main/res/layout/activity_game_introduction.xml

@@ -1,14 +1,129 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     tools:ignore="ResourceName">
 
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyangfly.baselib.bean.Record" />
+    </data>
+
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/gameLayout"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_game_introduction">
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/homeImage"
+            android:layout_width="@dimen/divider_48px"
+            android:layout_height="@dimen/divider_43px"
+            android:layout_marginStart="@dimen/divider_65px"
+            android:layout_marginTop="@dimen/divider_35px"
+            android:background="@mipmap/bg_home"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tvTitle"
+            android:layout_width="@dimen/divider_266px"
+            android:layout_height="@dimen/divider_85px"
+            android:layout_marginTop="@dimen/divider_35px"
+            android:background="@drawable/bg_game_title"
+            android:gravity="center"
+            android:text="@{data.gameName}"
+            android:textColor="@color/color_FFFFA413"
+            android:textSize="@dimen/divider_34px"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <com.google.android.material.card.MaterialCardView
+            android:id="@+id/gameCardLayout"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_522px"
+            android:layout_marginStart="@dimen/divider_43px"
+            android:layout_marginTop="@dimen/divider_20px"
+            android:layout_marginEnd="@dimen/divider_43px"
+            android:theme="@style/Theme.MaterialComponents.NoActionBar"
+            app:cardBackgroundColor="@color/color_FFF2EFFF"
+            app:cardCornerRadius="@dimen/divider_49px"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="horizontal">
+
+                <com.google.android.material.card.MaterialCardView
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/divider_27px"
+                    android:layout_marginTop="@dimen/divider_29px"
+                    android:layout_marginEnd="@dimen/divider_15px"
+                    android:layout_marginBottom="@dimen/divider_33px"
+                    android:layout_weight="1"
+                    android:theme="@style/Theme.MaterialComponents.NoActionBar"
+                    app:cardBackgroundColor="@android:color/white"
+                    app:cardCornerRadius="@dimen/divider_26px"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent">
+
+
+                </com.google.android.material.card.MaterialCardView>
+
+
+                <com.google.android.material.card.MaterialCardView
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/divider_15px"
+                    android:layout_marginTop="@dimen/divider_29px"
+                    android:layout_marginEnd="@dimen/divider_28px"
+                    android:layout_marginBottom="@dimen/divider_33px"
+                    android:layout_weight="1"
+                    android:theme="@style/Theme.MaterialComponents.NoActionBar"
+                    app:cardBackgroundColor="@android:color/white"
+                    app:cardCornerRadius="@dimen/divider_26px"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent">
+
 
+                </com.google.android.material.card.MaterialCardView>
 
+            </LinearLayout>
+        </com.google.android.material.card.MaterialCardView>
 
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tvRecord"
+            android:layout_width="@dimen/divider_299px"
+            android:layout_height="@dimen/divider_87px"
+            android:layout_marginStart="@dimen/divider_238px"
+            android:layout_marginTop="@dimen/divider_42px"
+            android:layout_marginBottom="@dimen/divider_43px"
+            android:background="@drawable/bg_game_record"
+            android:gravity="center"
+            android:text='@{"最佳纪录 "+data.gameScore}'
+            android:textColor="@color/color_FFFFA413"
+            android:textSize="@dimen/divider_28px"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/gameCardLayout" />
 
+        <androidx.appcompat.widget.AppCompatButton
+            android:id="@+id/btnStartGame"
+            android:layout_width="@dimen/divider_299px"
+            android:layout_height="@dimen/divider_87px"
+            android:layout_marginStart="@dimen/divider_90px"
+            android:background="@drawable/bg_start_game"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/tvRecord"
+            app:layout_constraintTop_toBottomOf="@+id/gameCardLayout" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

BIN
game/src/main/res/mipmap-xxhdpi/bg_home.png


+ 8 - 0
game/src/main/res/values/colors.xml

@@ -3,4 +3,12 @@
     <color name="color_FFD2DDFF" tools:ignore="ResourceName">#FFD2DDFF</color>
     <color name="color_FF9FBBFF" tools:ignore="ResourceName">#FF9FBBFF</color>
     <color name="color_D63658F7" tools:ignore="ResourceName">#D63658F7</color>
+    <color name="color_FFFFC400" tools:ignore="ResourceName">#FFFFC400</color>
+    <color name="color_FFFFDA81" tools:ignore="ResourceName">#FFFFDA81</color>
+    <color name="color_FFFFA916" tools:ignore="ResourceName">#FFFFA916</color>
+    <color name="color_FFFFA413" tools:ignore="ResourceName">#FFFFA413</color>
+    <color name="color_FFF2EFFF" tools:ignore="ResourceName">#FFF2EFFF</color>
+    <color name="color_FFFAFAFA" tools:ignore="ResourceName">#FFFAFAFA</color>
+    <color name="color_FF8756FF" tools:ignore="ResourceName">#FF8756FF</color>
+    <color name="color_FF77B0FF" tools:ignore="ResourceName">#FF77B0FF</color>
 </resources>

+ 4 - 0
game/src/main/res/values/dimens.xml

@@ -14,6 +14,7 @@
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
     <dimen name="divider_527px" tools:ignore="ResourceName">527px</dimen>
     <dimen name="divider_525px" tools:ignore="ResourceName">525px</dimen>
+    <dimen name="divider_522px" tools:ignore="ResourceName">522px</dimen>
     <dimen name="divider_503px" tools:ignore="ResourceName">503px</dimen>
     <dimen name="divider_502px" tools:ignore="ResourceName">502px</dimen>
     <dimen name="divider_472px" tools:ignore="ResourceName">472px</dimen>
@@ -50,11 +51,13 @@
     <dimen name="divider_320px" tools:ignore="ResourceName">320px</dimen>
     <dimen name="divider_313px" tools:ignore="ResourceName">313px</dimen>
     <dimen name="divider_307px" tools:ignore="ResourceName">307px</dimen>
+    <dimen name="divider_299px" tools:ignore="ResourceName">299px</dimen>
     <dimen name="divider_296px" tools:ignore="ResourceName">296px</dimen>
     <dimen name="divider_290px" tools:ignore="ResourceName">290px</dimen>
     <dimen name="divider_289px" tools:ignore="ResourceName">289px</dimen>
     <dimen name="divider_285px" tools:ignore="ResourceName">285px</dimen>
     <dimen name="divider_270px" tools:ignore="ResourceName">270px</dimen>
+    <dimen name="divider_266px" tools:ignore="ResourceName">266px</dimen>
     <dimen name="divider_265px" tools:ignore="ResourceName">265px</dimen>
     <dimen name="divider_264px" tools:ignore="ResourceName">264px</dimen>
     <dimen name="divider_260px" tools:ignore="ResourceName">260px</dimen>
@@ -66,6 +69,7 @@
     <dimen name="divider_245px" tools:ignore="ResourceName">245px</dimen>
     <dimen name="divider_243px" tools:ignore="ResourceName">243px</dimen>
     <dimen name="divider_240px" tools:ignore="ResourceName">240px</dimen>
+    <dimen name="divider_238px" tools:ignore="ResourceName">238px</dimen>
     <dimen name="divider_237px" tools:ignore="ResourceName">237px</dimen>
     <dimen name="divider_235px" tools:ignore="ResourceName">235px</dimen>
     <dimen name="divider_234px" tools:ignore="ResourceName">234px</dimen>

+ 5 - 4
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainActivity.kt

@@ -7,6 +7,7 @@ import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.alibaba.android.arouter.launcher.ARouter
 import com.yingyang.workbenches.R
 import com.yingyang.workbenches.adapter.FreeTrainAdapter
 import com.yingyang.workbenches.adapter.FreeTrainTypeAdapter
@@ -72,10 +73,10 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
             freeTrainListAdapter.onGameClickListener = { bean, position ->
                 gameId = bean.id
                 gameIndex = position
-                val str =
-                    bean.gameUrl + "?gameCode=" + bean.gameCode + "&isFull=false&isSound=true&playClass=" + bean.playClass +
-                            "&userToken=" + User.getToken()
-                JumpUtil.jumpActivityWithUrl(RouterUrlCommon.gameLoading, str, mContext)
+//                val str =
+//                    bean.gameUrl + "?gameCode=" + bean.gameCode + "&isFull=false&isSound=true&playClass=" + bean.playClass +
+//                            "&userToken=" + User.getToken()
+                JumpUtil.jumpActivityWithUrl(RouterUrlCommon.gameLoading, bean.id, mContext)
             }
         }
     }