@@ -245,6 +245,8 @@ class HJzvdStd @JvmOverloads constructor(
245245 private lateinit var topBarContainer: LinearLayout
246246 private lateinit var layoutTop: View
247247 private lateinit var layoutBottom: View
248+ private lateinit var gestureLock: ImageView
249+ var gestureLocked = false
248250 var savedProgress: Long = 0L
249251 private lateinit var btnResumeProgress: MaterialButton
250252 private val handler = Handler (Looper .getMainLooper())
@@ -363,6 +365,7 @@ class HJzvdStd @JvmOverloads constructor(
363365 layoutBottom = findViewById(R .id.layout_bottom)
364366 btnResumeProgress = findViewById(R .id.btn_resume_progress)
365367 topBarContainer = findViewById(R .id.top_bar_container)
368+ gestureLock = findViewById(R .id.lock)
366369 textureViewContainer.isHapticFeedbackEnabled = true
367370 tvSpeed.setOnClickListener(this )
368371 tvKeyframe.setOnClickListener(this )
@@ -387,6 +390,9 @@ class HJzvdStd @JvmOverloads constructor(
387390 gotoFullscreen()
388391 }
389392 }
393+ gestureLock.setOnClickListener {
394+ gestureLocked = ! gestureLocked
395+ }
390396
391397 }
392398
@@ -486,10 +492,23 @@ class HJzvdStd @JvmOverloads constructor(
486492 }
487493
488494 STATE_PLAYING -> {
489- if (bottomContainer.isVisible) {
495+ if (gestureLocked) {
496+ post {
497+ gestureLock.isVisible = ! gestureLock.isVisible
498+ }
490499 changeUiToPlayingClearSafe()
491500 } else {
492- changeUiToPlayingShowSafe()
501+ if (bottomContainer.isVisible) {
502+ post {
503+ gestureLock.isVisible = false
504+ }
505+ changeUiToPlayingClearSafe()
506+ } else {
507+ post {
508+ gestureLock.isVisible = true
509+ }
510+ changeUiToPlayingShowSafe()
511+ }
493512 }
494513 }
495514
@@ -545,6 +564,7 @@ class HJzvdStd @JvmOverloads constructor(
545564 btnGoHome.isVisible = true
546565 topBarContainer.isVisible = false
547566 superResolution.isVisible = false
567+ gestureLock.isVisible = false
548568
549569 layoutTop.updatePadding(left = 0 , right = 0 )
550570 layoutBottom.updatePadding(left = 0 , right = 0 )
@@ -562,6 +582,7 @@ class HJzvdStd @JvmOverloads constructor(
562582 topBarContainer.isVisible = true
563583 clarity.isVisible = true
564584 superResolution.isVisible = switchPlayerKernel == HMediaKernel .Type .MpvPlayer .name
585+ gestureLock.isVisible = true
565586 val statusBarHeight = statusBarHeight
566587 val navBarHeight = navBarHeight
567588 layoutTop.updatePadding(left = statusBarHeight, right = navBarHeight)
@@ -701,6 +722,9 @@ class HJzvdStd @JvmOverloads constructor(
701722 }
702723
703724 override fun touchActionMove (x : Float , y : Float ) {
725+ if (gestureLocked) {
726+ return
727+ }
704728 val deltaX = x - mDownX
705729 var deltaY = y - mDownY
706730 val absDeltaX = deltaX.absoluteValue
0 commit comments