|
|
@@ -11,11 +11,14 @@ import android.text.TextUtils
|
|
|
import android.util.Log
|
|
|
import android.view.MotionEvent
|
|
|
import android.view.View
|
|
|
+import android.view.ViewTreeObserver
|
|
|
import android.webkit.WebResourceRequest
|
|
|
import android.webkit.WebSettings
|
|
|
import android.webkit.WebView
|
|
|
import android.webkit.WebViewClient
|
|
|
import android.widget.FrameLayout
|
|
|
+import androidx.constraintlayout.widget.ConstraintLayout
|
|
|
+import androidx.constraintlayout.widget.ConstraintSet
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
|
import com.bumptech.glide.Glide
|
|
|
@@ -71,6 +74,10 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
private var voicePlayer: VoicePlayer? = null
|
|
|
private var gameResultDialog: GameResultDialog? = null
|
|
|
|
|
|
+ var mWebViewHeight = 0
|
|
|
+ var mWebViewWidth = 0
|
|
|
+ private var mConstrainSet_one: ConstraintSet? = ConstraintSet()
|
|
|
+
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
gameCode = intent.getStringExtra("gameCode") ?: ""
|
|
|
playClass = intent.getStringExtra("playClass") ?: ""
|
|
|
@@ -100,18 +107,19 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
binding {
|
|
|
tvPause.setOnTouchListener(this@PlayGameActivity)
|
|
|
tvPauses.setOnTouchListener(this@PlayGameActivity)
|
|
|
- tvFullScreen.setOnSingleClickListener {
|
|
|
- binding.webView.post {
|
|
|
- val params = FrameLayout.LayoutParams(
|
|
|
- FrameLayout.LayoutParams.MATCH_PARENT,
|
|
|
- FrameLayout.LayoutParams.MATCH_PARENT
|
|
|
- )
|
|
|
- binding.gameLayout.radius = 0F
|
|
|
- binding.gameLayout.layoutParams = params
|
|
|
- binding.gameFullLayout.show(true)
|
|
|
- }
|
|
|
+ tvFullScreen.setOnTouchListener(this@PlayGameActivity)
|
|
|
+ tvReduce.setOnSingleClickListener {
|
|
|
+ setReduce(true)
|
|
|
}
|
|
|
}
|
|
|
+ binding.gameLayout.viewTreeObserver.addOnGlobalLayoutListener(object :
|
|
|
+ ViewTreeObserver.OnGlobalLayoutListener {
|
|
|
+ override fun onGlobalLayout() {
|
|
|
+ mWebViewHeight = binding.gameLayout.height
|
|
|
+ mWebViewWidth = binding.gameLayout.width
|
|
|
+ binding.gameLayout.viewTreeObserver.removeGlobalOnLayoutListener(this)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
@SuppressLint("SetTextI18n")
|
|
|
@@ -162,10 +170,14 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
webSettings.javaScriptEnabled = true
|
|
|
webSettings.setAppCacheEnabled(true)
|
|
|
webSettings.loadWithOverviewMode = true
|
|
|
- webSettings.builtInZoomControls = true
|
|
|
webSettings.allowFileAccess = true
|
|
|
webSettings.allowUniversalAccessFromFileURLs = true
|
|
|
webSettings.cacheMode = WebSettings.LOAD_DEFAULT
|
|
|
+
|
|
|
+ webSettings.builtInZoomControls = false
|
|
|
+ webSettings.setSupportZoom(false)
|
|
|
+ webSettings.displayZoomControls = false
|
|
|
+
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
|
|
|
}
|
|
|
@@ -214,7 +226,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
override fun onTouch(v: View, event: MotionEvent): Boolean {
|
|
|
when (event.action) {
|
|
|
MotionEvent.ACTION_DOWN -> {
|
|
|
- if (v.id == R.id.tvPause || v.id == R.id.tvPauses) {
|
|
|
+ if (v.id == R.id.tvPause || v.id == R.id.tvPauses || v.id == R.id.tvFullScreen) {
|
|
|
v.startAnimation(getScaleAnimation())
|
|
|
}
|
|
|
}
|
|
|
@@ -232,10 +244,12 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
.navigation(mContext)
|
|
|
}
|
|
|
}
|
|
|
+ } else if (v.id == R.id.tvFullScreen) {
|
|
|
+ setReduce(false)
|
|
|
}
|
|
|
}
|
|
|
MotionEvent.ACTION_CANCEL -> {
|
|
|
- if (v.id == R.id.tvPause || v.id == R.id.tvPauses) {
|
|
|
+ if (v.id == R.id.tvPause || v.id == R.id.tvPauses || v.id == R.id.tvFullScreen) {
|
|
|
v.startAnimation(getEndAnimation())
|
|
|
}
|
|
|
}
|
|
|
@@ -256,6 +270,7 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
}
|
|
|
countdownDialog.show(supportFragmentManager, "countdownDialog")
|
|
|
}
|
|
|
+ mConstrainSet_one?.clone(binding.gameParentLayout)
|
|
|
}
|
|
|
|
|
|
override fun onDestroy() {
|
|
|
@@ -562,4 +577,32 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
|
|
|
val cn = am.getRunningTasks(1)[0].topActivity
|
|
|
return cn!!.className == activity.javaClass.name
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否缩放
|
|
|
+ */
|
|
|
+ private fun setReduce(isReduce: Boolean) {
|
|
|
+ binding.webView.post {
|
|
|
+ binding.tvFullScreen.show(isReduce)
|
|
|
+ binding.tvReduce.show(isReduce.not())
|
|
|
+ if (isReduce) {
|
|
|
+ val params = ConstraintLayout.LayoutParams(
|
|
|
+ mWebViewWidth,
|
|
|
+ mWebViewHeight
|
|
|
+ )
|
|
|
+ binding.gameLayout.radius = 49F
|
|
|
+ binding.gameLayout.layoutParams = params
|
|
|
+ binding.gameFullLayout.show(isReduce)
|
|
|
+ mConstrainSet_one?.applyTo(binding.gameParentLayout)
|
|
|
+ } else {
|
|
|
+ val params = FrameLayout.LayoutParams(
|
|
|
+ FrameLayout.LayoutParams.MATCH_PARENT,
|
|
|
+ FrameLayout.LayoutParams.MATCH_PARENT
|
|
|
+ )
|
|
|
+ binding.gameLayout.radius = 0F
|
|
|
+ binding.gameLayout.layoutParams = params
|
|
|
+ binding.gameFullLayout.show(isReduce.not())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|