Ver Fonte

1.修改退出游戏确认弹窗游戏无法退出bug

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

+ 1 - 0
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionActivity.kt

@@ -194,6 +194,7 @@ class GameIntroductionActivity :
                                 val exitGameDialog = ExitGameDialog()
                                 exitGameDialog.onDialogClickListener = {
                                     LiveEventBusUtil.send(RxBusCodes.CALLQUITGAME, "")
+                                    finish()
                                 }
                                 exitGameDialog.show(supportFragmentManager, "exitGameDialog")
                             } else {

+ 15 - 4
game/src/main/java/com/yingyangfly/game/play/PlayGameActivity.kt

@@ -27,7 +27,6 @@ import com.yingyangfly.baselib.db.VoicePlayerBean
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.show
-import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.player.VoicePlayer
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -50,6 +49,11 @@ import com.yingyangfly.game.utils.AndroidToJs
 class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewModel>(),
     View.OnTouchListener {
 
+    /**
+     * 退出游戏
+     */
+    private var callQuitGame = false
+
     /**
      * 游戏是否加载完成
      */
@@ -257,9 +261,11 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
                             if (TextUtils.equals("D", playClass)) {
                                 finish()
                             } else {
+                                Log.e("wpp", "游戏暂停")
                                 binding.webView.evaluateJavascript(
                                     "javascript:CallPauseGame()"
                                 ) {
+                                    Log.e("wpp", "游戏暂停成功跳转介绍")
                                     ARouter.getInstance().build(RouterUrlCommon.gameIntroduction)
                                         .withString("gameCode", gameCode)
                                         .withString("playClass", playClass)
@@ -440,7 +446,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
         LiveEventBusUtil.observer<String>(this, RxBusCodes.SAVEDATA) {
             binding.tvScore.postDelayed({
                 if (TextUtils.isEmpty(it).not()) {
-                    Log.e("wpp", "-----------" + it)
+                    Log.e("wpp", "游戏保存-----------" + it)
                     val gameDataBean = GsonUtil.GsonToBean(it, GameDataBean::class.java)
                     if (gameDataBean != null) {
                         when (gameDataBean.isPass) {
@@ -460,7 +466,11 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
                         if (TextUtils.equals("D", playClass).not()) {
                             saveData(gameDataBean)
                         }
-                        parsingData(gameDataBean, gameDataBean.isPass)
+                        if (callQuitGame) {
+                            finish()
+                        } else {
+                            parsingData(gameDataBean, gameDataBean.isPass)
+                        }
                     }
                 }
             }, 100)
@@ -500,6 +510,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
                 binding.webView.evaluateJavascript(
                     "javascript:CallQuitGame()"
                 ) {
+                    callQuitGame = true
                 }
             }
         }
@@ -626,8 +637,8 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
                         gameTimeOut
                     )
                     gameResultDialog?.onBackHomeDialogClickListener = {
-                        finish()
                         LiveEventBusUtil.send(RxBusCodes.GAMEOVERTIME, "")
+                        finish()
                     }
                     gameResultDialog?.onGameDialogClickListener = {
                         loadJs(it)