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