|
|
@@ -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
|
|
|
+ }
|
|
|
}
|