diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt index a95b79d3..30bd3f6f 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt @@ -68,13 +68,30 @@ class PlayerGestureHelper( override fun onDoubleTap(e: MotionEvent): Boolean { // Disables double tap gestures if view is locked if (isControlsLocked) return false - val viewCenterX = playerView.measuredWidth / 2 + + val viewWidth = playerView.measuredWidth + val areaWidth = viewWidth / 5 // Divide the view into 5 parts: 2:1:2 + val currentPos = playerView.player?.currentPosition ?: 0 - if (e.x.toInt() > viewCenterX) { - playerView.player?.seekTo(currentPos + appPreferences.playerSeekForwardIncrement) - } else { - playerView.player?.seekTo((currentPos - appPreferences.playerSeekBackIncrement).coerceAtLeast(0)) + // Define the areas and their boundaries + val leftmostAreaStart = 0 + val middleAreaStart = areaWidth * 2 + val rightmostAreaStart = middleAreaStart + areaWidth + + when (e.x.toInt()) { + in leftmostAreaStart until middleAreaStart -> { + // Tapped on the leftmost area (seek backward) + playerView.player?.seekTo((currentPos - appPreferences.playerSeekBackIncrement).coerceAtLeast(0)) + } + in middleAreaStart until rightmostAreaStart -> { + // Tapped on the middle area (toggle pause/unpause) + playerView.player?.playWhenReady = !playerView.player?.playWhenReady!! + } + in rightmostAreaStart until viewWidth -> { + // Tapped on the rightmost area (seek forward) + playerView.player?.seekTo(currentPos + appPreferences.playerSeekForwardIncrement) + } } return true }