|  | @@ -4,19 +4,23 @@ import android.annotation.SuppressLint
 | 
	
		
			
				|  |  |  import android.os.Build
 | 
	
		
			
				|  |  |  import android.os.Bundle
 | 
	
		
			
				|  |  |  import android.util.Log
 | 
	
		
			
				|  |  | +import android.view.MotionEvent
 | 
	
		
			
				|  |  | +import android.view.View
 | 
	
		
			
				|  |  |  import android.webkit.WebResourceRequest
 | 
	
		
			
				|  |  |  import android.webkit.WebSettings
 | 
	
		
			
				|  |  |  import android.webkit.WebView
 | 
	
		
			
				|  |  |  import android.webkit.WebViewClient
 | 
	
		
			
				|  |  |  import com.alibaba.android.arouter.facade.annotation.Route
 | 
	
		
			
				|  |  |  import com.bumptech.glide.Glide
 | 
	
		
			
				|  |  | -import com.yingyangfly.baselib.R
 | 
	
		
			
				|  |  | +import com.yingyangfly.baselib.ext.getEndAnimation
 | 
	
		
			
				|  |  | +import com.yingyangfly.baselib.ext.getScaleAnimation
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.ext.toast
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.router.RouterUrlCommon
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.utils.GsonUtil
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.utils.LiveEventBusUtil
 | 
	
		
			
				|  |  |  import com.yingyangfly.baselib.utils.RxBusCodes
 | 
	
		
			
				|  |  | +import com.yingyangfly.game.R
 | 
	
		
			
				|  |  |  import com.yingyangfly.game.databinding.ActivityPlayGameBinding
 | 
	
		
			
				|  |  |  import com.yingyangfly.game.entity.GameBean
 | 
	
		
			
				|  |  |  import com.yingyangfly.game.entity.GameDataBean
 | 
	
	
		
			
				|  | @@ -26,7 +30,8 @@ import com.yingyangfly.game.utils.AndroidToJs
 | 
	
		
			
				|  |  |   * 玩游戏页面
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @Route(path = RouterUrlCommon.playGame)
 | 
	
		
			
				|  |  | -class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewModel>() {
 | 
	
		
			
				|  |  | +class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewModel>(),
 | 
	
		
			
				|  |  | +    View.OnTouchListener {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private var gameBean: GameBean? = null
 | 
	
		
			
				|  |  |      private lateinit var webSettings: WebSettings
 | 
	
	
		
			
				|  | @@ -49,8 +54,11 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @SuppressLint("ClickableViewAccessibility")
 | 
	
		
			
				|  |  |      override fun initListener() {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        binding {
 | 
	
		
			
				|  |  | +            tvPause.setOnTouchListener(this@PlayGameActivity)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      override fun initData() {
 | 
	
	
		
			
				|  | @@ -62,7 +70,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |          LiveEventBusUtil.observer<String>(this, RxBusCodes.SETTIME) {
 | 
	
		
			
				|  |  |              binding.tvTime.post {
 | 
	
		
			
				|  |  |                  val data = it.split("setTime:")
 | 
	
		
			
				|  |  | -                Log.e("wpp", "setTime:"+data)
 | 
	
		
			
				|  |  | +                Log.e("wpp", "setTime:" + data)
 | 
	
		
			
				|  |  |                  binding.tvTime.text = it
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -70,7 +78,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |          LiveEventBusUtil.observer<String>(this, RxBusCodes.SETSCORE) {
 | 
	
		
			
				|  |  |              binding.tvScore.post {
 | 
	
		
			
				|  |  |                  val data = it.split("setScore:")
 | 
	
		
			
				|  |  | -                Log.e("wpp", "setScore:"+data)
 | 
	
		
			
				|  |  | +                Log.e("wpp", "setScore:" + data)
 | 
	
		
			
				|  |  |                  binding.tvScore.text = it
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -82,9 +90,10 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |                  if (data.isNullOrEmpty().not()) {
 | 
	
		
			
				|  |  |                      if (data[1].isNullOrEmpty().not()) {
 | 
	
		
			
				|  |  |                          Log.e("wpp", data[1])
 | 
	
		
			
				|  |  | -//                        var gameDataBean = GsonUtil.GsonToBean(data[1], GameDataBean::class.java)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +                        val gameDataBean = GsonUtil.GsonToBean(data[1], GameDataBean::class.java)
 | 
	
		
			
				|  |  | +                        if (gameDataBean != null) {
 | 
	
		
			
				|  |  | +                            saveData(gameDataBean)
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -92,6 +101,17 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 保存游戏进度
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private fun saveData(gameDataBean: GameDataBean) {
 | 
	
		
			
				|  |  | +        viewModel.saveGameRecord(gameBean!!.gameCode, gameBean!!.playClass, gameDataBean, fail = {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }, success = {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @SuppressLint("JavascriptInterface", "SetJavaScriptEnabled")
 | 
	
		
			
				|  |  |      private fun initWebView(gameUrl: String) {
 | 
	
		
			
				|  |  |          webSettings = binding.webView.settings
 | 
	
	
		
			
				|  | @@ -148,4 +168,27 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          binding.webView.loadUrl(gameUrl)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @SuppressLint("ClickableViewAccessibility")
 | 
	
		
			
				|  |  | +    override fun onTouch(v: View, event: MotionEvent): Boolean {
 | 
	
		
			
				|  |  | +        when (event.action) {
 | 
	
		
			
				|  |  | +            MotionEvent.ACTION_DOWN -> {
 | 
	
		
			
				|  |  | +                if (v.id == R.id.tvPause) {
 | 
	
		
			
				|  |  | +                    v.startAnimation(getScaleAnimation())
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            MotionEvent.ACTION_UP -> {
 | 
	
		
			
				|  |  | +                v.startAnimation(getEndAnimation())
 | 
	
		
			
				|  |  | +                if (v.id == R.id.tvPause) {
 | 
	
		
			
				|  |  | +                    finish()
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            MotionEvent.ACTION_CANCEL -> {
 | 
	
		
			
				|  |  | +                if (v.id == R.id.tvPause) {
 | 
	
		
			
				|  |  | +                    v.startAnimation(getEndAnimation())
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return true
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |