Ver Fonte

1.修改倒计时崩溃bug

王鹏鹏 há 2 anos atrás
pai
commit
c0aa284aac

+ 4 - 0
.idea/misc.xml

@@ -478,10 +478,13 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/layout_empty.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/spinner_list_item.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/drawable/bg_game_background_settlement.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/drawable/bg_game_loading.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/drawable/bg_game_progressbar_selector.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/drawable/home_webview_progressbar_selector.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/activity_base.xml" value="0.23697916666666666" />
         <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_evaluate.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_game_loading.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_back.xml" value="0.151" />
@@ -513,6 +516,7 @@
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_completion_training.xml" value="0.72" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_count_down.xml" value="0.4" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_exit_game.xml" value="0.22239583333333332" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_game_loading.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_game_result.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/item_game_result.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_consultation_request.xml" value="0.23697916666666666" />

+ 84 - 0
baselib/src/main/java/com/yingyangfly/baselib/dialog/GameLoadingDialog.kt

@@ -0,0 +1,84 @@
+package com.yingyangfly.baselib.dialog
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ProgressBar
+import androidx.appcompat.widget.AppCompatImageView
+import androidx.fragment.app.DialogFragment
+import com.bumptech.glide.Glide
+import com.gyf.immersionbar.BarHide
+import com.gyf.immersionbar.ktx.immersionBar
+import com.yingyangfly.baselib.R
+import com.yingyangfly.baselib.utils.RxTimer
+import com.yingyangfly.baselib.utils.ViewTool
+
+/**
+ * 游戏引导页弹框
+ */
+class GameLoadingDialog : DialogFragment() {
+
+    private var loadingImage: AppCompatImageView? = null
+    private var progressBar: ProgressBar? = null
+    private lateinit var rxTimer: RxTimer
+    private var time: Long = 3
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        isCancelable = false
+        dialog?.setCanceledOnTouchOutside(true)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.MATCH_PARENT
+        )
+        dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        immersionBar {
+            hideBar(BarHide.FLAG_HIDE_BAR)
+            navigationBarColor(R.color.transparent)
+        }
+        val rootView = ViewTool.inflateFragmentPixels(
+            activity, R.layout.dialog_game_loading, container, 1194, 834
+        )
+        findId(rootView)
+        initView()
+        initData()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        loadingImage = rootView.findViewById(R.id.loadingImage)
+        progressBar = rootView.findViewById(R.id.progressBar)
+    }
+
+    private fun initView() {
+        Glide.with(requireActivity())
+            .asGif()
+            .load(R.drawable.fish)
+            .into(loadingImage!!)
+    }
+
+    private fun initData() {
+        rxTimer = RxTimer()
+        rxTimer = RxTimer()
+        val m: Long = 1000
+        rxTimer.interval(m) {
+            progressBar!!.progress = it.toInt() + 1
+            if (time == it) {
+                rxTimer.cancel()
+                dismiss()
+            }
+        }
+    }
+}

+ 17 - 0
baselib/src/main/res/drawable/bg_game_loading.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="180"
+                android:endColor="@color/color_FF9FBBFF"
+                android:startColor="@color/color_FFD2DDFF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 28 - 0
baselib/src/main/res/drawable/bg_game_progressbar_selector.xml

@@ -0,0 +1,28 @@
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="MissingDefaultResource">
+
+    <item android:id="@android:id/background">
+        <shape>
+            <corners android:radius="@dimen/divider_19px" />
+            <gradient
+                android:angle="270"
+                android:centerColor="@android:color/white"
+                android:endColor="@android:color/white"
+                android:startColor="@android:color/white" />
+        </shape>
+    </item>
+    <item android:id="@android:id/progress">
+        <clip>
+            <shape>
+                <corners android:radius="@dimen/divider_19px" />
+                <gradient
+                    android:centerColor="@color/color_D63658F7"
+                    android:endColor="@color/color_D63658F7"
+                    android:startColor="@color/color_D63658F7" />
+
+            </shape>
+        </clip>
+    </item>
+
+</layer-list>

+ 31 - 0
baselib/src/main/res/layout/dialog_game_loading.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/bg_game_loading"
+    tools:ignore="ResourceName">
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/loadingImage"
+        android:layout_width="@dimen/divider_360px"
+        android:layout_height="@dimen/divider_416px"
+        android:layout_marginTop="@dimen/divider_243px"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ProgressBar
+        android:id="@+id/progressBar"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="@dimen/divider_527px"
+        android:layout_height="@dimen/divider_20px"
+        android:layout_marginTop="@dimen/divider_41px"
+        android:indeterminate="false"
+        android:max="3"
+        android:progressDrawable="@drawable/bg_game_progressbar_selector"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/loadingImage" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 3 - 0
baselib/src/main/res/values/colors.xml

@@ -27,4 +27,7 @@
     <color name="color_FF6D9AFF">#FF6D9AFF</color>
     <color name="color_FC426CFB">#FC426CFB</color>
     <color name="color_FF35BEFC">#FF35BEFC</color>
+    <color name="color_FF9FBBFF">#FF9FBBFF</color>
+    <color name="color_FFD2DDFF">#FFD2DDFF</color>
+    <color name="color_D63658F7">#D63658F7</color>
 </resources>

+ 2 - 0
baselib/src/main/res/values/dimens.xml

@@ -11,6 +11,7 @@
     <dimen name="divider_667px" tools:ignore="ResourceName">667px</dimen>
     <dimen name="divider_600px" tools:ignore="ResourceName">600px</dimen>
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
+    <dimen name="divider_527px" tools:ignore="ResourceName">527px</dimen>
     <dimen name="divider_520px" tools:ignore="ResourceName">520px</dimen>
     <dimen name="divider_502px" tools:ignore="ResourceName">502px</dimen>
     <dimen name="divider_483px" tools:ignore="ResourceName">483px</dimen>
@@ -49,6 +50,7 @@
     <dimen name="divider_260px" tools:ignore="ResourceName">260px</dimen>
     <dimen name="divider_250px" tools:ignore="ResourceName">250px</dimen>
     <dimen name="divider_249px" tools:ignore="ResourceName">249px</dimen>
+    <dimen name="divider_243px" tools:ignore="ResourceName">243px</dimen>
     <dimen name="divider_237px" tools:ignore="ResourceName">237px</dimen>
     <dimen name="divider_230px" tools:ignore="ResourceName">230px</dimen>
     <dimen name="divider_229px" tools:ignore="ResourceName">229px</dimen>

+ 84 - 0
game/src/main/java/com/yingyangfly/game/dialog/GameLoadingDialog.kt

@@ -0,0 +1,84 @@
+package com.yingyangfly.game.dialog
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ProgressBar
+import androidx.appcompat.widget.AppCompatImageView
+import androidx.fragment.app.DialogFragment
+import com.bumptech.glide.Glide
+import com.gyf.immersionbar.BarHide
+import com.gyf.immersionbar.ktx.immersionBar
+import com.yingyangfly.baselib.utils.RxTimer
+import com.yingyangfly.baselib.utils.ViewTool
+import com.yingyangfly.game.R
+
+/**
+ * 游戏引导页弹框
+ */
+class GameLoadingDialog : DialogFragment() {
+
+    private var loadingImage: AppCompatImageView? = null
+    private var progressBar: ProgressBar? = null
+    private lateinit var rxTimer: RxTimer
+    private var time: Long = 3
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        isCancelable = false
+        dialog?.setCanceledOnTouchOutside(true)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.MATCH_PARENT
+        )
+        dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        immersionBar {
+            hideBar(BarHide.FLAG_HIDE_BAR)
+            navigationBarColor(R.color.transparent)
+        }
+        val rootView = ViewTool.inflateFragmentPixels(
+            activity, R.layout.dialog_game_loading, container, 1194, 834
+        )
+        findId(rootView)
+        initView()
+        initData()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        loadingImage = rootView.findViewById(R.id.loadingImage)
+        progressBar = rootView.findViewById(R.id.progressBar)
+    }
+
+    private fun initView() {
+        Glide.with(requireActivity())
+            .asGif()
+            .load(com.yingyangfly.baselib.R.drawable.fish)
+            .into(loadingImage!!)
+    }
+
+    private fun initData() {
+        rxTimer = RxTimer()
+        rxTimer = RxTimer()
+        val m: Long = 1000
+        rxTimer.interval(m) {
+            progressBar!!.progress = it.toInt() + 1
+            if (time == it) {
+                rxTimer.cancel()
+                dismiss()
+            }
+        }
+    }
+}

+ 10 - 6
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionActivity.kt

@@ -11,6 +11,7 @@ import com.alibaba.android.arouter.launcher.ARouter
 import com.tencent.liteav.demo.superplayer.SuperPlayerModel
 import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.db.VoicePlayerBean
+import com.yingyangfly.baselib.dialog.GameLoadingDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.show
@@ -85,6 +86,8 @@ class GameIntroductionActivity :
 
     override fun onResume() {
         super.onResume()
+        val gameLoadingDialog = GameLoadingDialog()
+        gameLoadingDialog.show(supportFragmentManager, "gameLoadingDialog")
         if (isEnterGame.not()) {
             speak()
         }
@@ -172,12 +175,13 @@ class GameIntroductionActivity :
                 } else if (v.id == R.id.btnStartGame) {
                     runOnUiThread {
                         isEnterGame = true
-                        val url =
-                            gameBean!!.gameUrl + "?startLv=" + gameBean!!.gameLevel + "&maxLv=" +
-                                    gameBean!!.totalNum + "&gameSetTime=" + gameBean!!.gameDuration +
-                                    "&difficultyRate=" + gameBean!!.gameDifficultyRate + "&totalTime=" +
-                                    gameBean!!.gameTotalTime + "&totalScore=" + gameBean!!.gameTotalScore +
-                                    "&playClass=" + playClass
+//                        val url =
+//                            gameBean!!.gameUrl + "?startLv=" + gameBean!!.gameLevel + "&maxLv=" +
+//                                    gameBean!!.totalNum + "&gameSetTime=" + gameBean!!.gameDuration +
+//                                    "&difficultyRate=" + gameBean!!.gameDifficultyRate + "&totalTime=" +
+//                                    gameBean!!.gameTotalTime + "&totalScore=" + gameBean!!.gameTotalScore +
+//                                    "&playClass=" + playClass
+                        val url = "http://192.168.0.114:7456"
                         ARouter.getInstance().build(RouterUrlCommon.playGame)
                             .withString("gameCode", gameCode)
                             .withString("playClass", playClass)

+ 31 - 0
game/src/main/res/layout/dialog_game_loading.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/bg_game_loading"
+    tools:ignore="ResourceName">
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/loadingImage"
+        android:layout_width="@dimen/divider_360px"
+        android:layout_height="@dimen/divider_416px"
+        android:layout_marginTop="@dimen/divider_243px"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ProgressBar
+        android:id="@+id/progressBar"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="@dimen/divider_527px"
+        android:layout_height="@dimen/divider_20px"
+        android:layout_marginTop="@dimen/divider_41px"
+        android:indeterminate="false"
+        android:max="3"
+        android:progressDrawable="@drawable/bg_game_progressbar_selector"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/loadingImage" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 2
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainActivity.kt

@@ -20,7 +20,6 @@ import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
-import com.yingyangfly.baselib.utils.User
 
 /**
  * 畅玩蓝豚
@@ -73,7 +72,7 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
             freeTrainListAdapter.onGameClickListener = { bean, position ->
                 gameId = bean.id
                 gameIndex = position
-                ARouter.getInstance().build(RouterUrlCommon.gameLoading)
+                ARouter.getInstance().build(RouterUrlCommon.gameIntroduction)
                     .withString("gameCode", bean.gameCode)
                     .withString("playClass", bean.playClass)
                     .withString("videoUrl", bean.gameVideoUrl)