mirror of
				https://github.com/SimpleMobileTools/Simple-Gallery.git
				synced 2025-06-05 21:59:19 +02:00 
			
		
		
		
	apply the double tap skipping on the separate window player too
This commit is contained in:
		| @@ -163,6 +163,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen | |||||||
|         video_duration.setOnClickListener { skip(true) } |         video_duration.setOnClickListener { skip(true) } | ||||||
|         video_toggle_play_pause.setOnClickListener { togglePlayPause() } |         video_toggle_play_pause.setOnClickListener { togglePlayPause() } | ||||||
|         video_surface_frame.setOnClickListener { toggleFullscreen() } |         video_surface_frame.setOnClickListener { toggleFullscreen() } | ||||||
|  |         video_surface_frame.controller.settings.swallowDoubleTaps = true | ||||||
|  |  | ||||||
|         video_next_file.beVisibleIf(intent.getBooleanExtra(SHOW_NEXT_ITEM, false)) |         video_next_file.beVisibleIf(intent.getBooleanExtra(SHOW_NEXT_ITEM, false)) | ||||||
|         video_next_file.setOnClickListener { handleNextFile() } |         video_next_file.setOnClickListener { handleNextFile() } | ||||||
| @@ -170,8 +171,24 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen | |||||||
|         video_prev_file.beVisibleIf(intent.getBooleanExtra(SHOW_PREV_ITEM, false)) |         video_prev_file.beVisibleIf(intent.getBooleanExtra(SHOW_PREV_ITEM, false)) | ||||||
|         video_prev_file.setOnClickListener { handlePrevFile() } |         video_prev_file.setOnClickListener { handlePrevFile() } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         val gestureDetector = GestureDetector(this, object : GestureDetector.SimpleOnGestureListener() { | ||||||
|  |             override fun onDoubleTap(e: MotionEvent?): Boolean { | ||||||
|  |                 val instantWidth = mScreenWidth / 7 | ||||||
|  |                 val clickedX = e?.rawX ?: 0f | ||||||
|  |                 when { | ||||||
|  |                     clickedX <= instantWidth -> doSkip(DOUBLE_TAP_SKIP_VIDEO_MS, false) | ||||||
|  |                     clickedX >= mScreenWidth - instantWidth -> doSkip(DOUBLE_TAP_SKIP_VIDEO_MS, true) | ||||||
|  |                     else -> togglePlayPause() | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 return true | ||||||
|  |             } | ||||||
|  |         }) | ||||||
|  |  | ||||||
|         video_surface_frame.setOnTouchListener { view, event -> |         video_surface_frame.setOnTouchListener { view, event -> | ||||||
|             handleEvent(event) |             handleEvent(event) | ||||||
|  |             gestureDetector.onTouchEvent(event) | ||||||
|             false |             false | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -475,11 +492,15 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen | |||||||
|             return |             return | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         val curr = mExoPlayer!!.currentPosition |  | ||||||
|         val twoPercents = Math.max((mExoPlayer!!.duration / 50).toInt(), MIN_SKIP_LENGTH) |         val twoPercents = Math.max((mExoPlayer!!.duration / 50).toInt(), MIN_SKIP_LENGTH) | ||||||
|         val newProgress = if (forward) curr + twoPercents else curr - twoPercents |         doSkip(twoPercents, forward) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private fun doSkip(millis: Int, forward: Boolean) { | ||||||
|  |         val curr = mExoPlayer!!.currentPosition | ||||||
|  |         val newProgress = if (forward) curr + millis else curr - millis | ||||||
|         val roundProgress = Math.round(newProgress / 1000f) |         val roundProgress = Math.round(newProgress / 1000f) | ||||||
|         val limitedProgress = Math.max(Math.min(mExoPlayer!!.duration.toInt(), roundProgress), 0) |         val limitedProgress = Math.max(Math.min(mExoPlayer!!.duration.toInt() / 1000, roundProgress), 0) | ||||||
|         setPosition(limitedProgress) |         setPosition(limitedProgress) | ||||||
|         if (!mIsPlaying) { |         if (!mIsPlaying) { | ||||||
|             togglePlayPause() |             togglePlayPause() | ||||||
|   | |||||||
| @@ -39,7 +39,6 @@ import java.io.FileInputStream | |||||||
|  |  | ||||||
| class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, SeekBar.OnSeekBarChangeListener { | class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, SeekBar.OnSeekBarChangeListener { | ||||||
|     private val PROGRESS = "progress" |     private val PROGRESS = "progress" | ||||||
|     private val DOUBLE_TAP_SKIP_MS = 10000 |  | ||||||
|  |  | ||||||
|     private var mIsFullscreen = false |     private var mIsFullscreen = false | ||||||
|     private var mWasFragmentInit = false |     private var mWasFragmentInit = false | ||||||
| @@ -137,8 +136,8 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S | |||||||
|                     val instantWidth = viewWidth / 7 |                     val instantWidth = viewWidth / 7 | ||||||
|                     val clickedX = e?.rawX ?: 0f |                     val clickedX = e?.rawX ?: 0f | ||||||
|                     when { |                     when { | ||||||
|                         clickedX <= instantWidth -> doSkip(DOUBLE_TAP_SKIP_MS, false) |                         clickedX <= instantWidth -> doSkip(DOUBLE_TAP_SKIP_VIDEO_MS, false) | ||||||
|                         clickedX >= viewWidth - instantWidth -> doSkip(DOUBLE_TAP_SKIP_MS, true) |                         clickedX >= viewWidth - instantWidth -> doSkip(DOUBLE_TAP_SKIP_VIDEO_MS, true) | ||||||
|                         else -> togglePlayPause() |                         else -> togglePlayPause() | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
| @@ -544,7 +543,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S | |||||||
|         val curr = mExoPlayer!!.currentPosition |         val curr = mExoPlayer!!.currentPosition | ||||||
|         val newProgress = if (forward) curr + millis else curr - millis |         val newProgress = if (forward) curr + millis else curr - millis | ||||||
|         val roundProgress = Math.round(newProgress / 1000f) |         val roundProgress = Math.round(newProgress / 1000f) | ||||||
|         val limitedProgress = Math.max(Math.min(mExoPlayer!!.duration.toInt(), roundProgress), 0) |         val limitedProgress = Math.max(Math.min(mExoPlayer!!.duration.toInt() / 1000, roundProgress), 0) | ||||||
|         setPosition(limitedProgress) |         setPosition(limitedProgress) | ||||||
|         if (!mIsPlaying) { |         if (!mIsPlaying) { | ||||||
|             togglePlayPause() |             togglePlayPause() | ||||||
|   | |||||||
| @@ -118,6 +118,7 @@ const val MONTH_MILLISECONDS = MONTH_SECONDS * 1000L | |||||||
| const val MIN_SKIP_LENGTH = 2000 | const val MIN_SKIP_LENGTH = 2000 | ||||||
| const val HIDE_SYSTEM_UI_DELAY = 500L | const val HIDE_SYSTEM_UI_DELAY = 500L | ||||||
| const val MAX_PRINT_SIDE_SIZE = 4096 | const val MAX_PRINT_SIDE_SIZE = 4096 | ||||||
|  | const val DOUBLE_TAP_SKIP_VIDEO_MS = 10000 | ||||||
|  |  | ||||||
| const val DIRECTORY = "directory" | const val DIRECTORY = "directory" | ||||||
| const val MEDIUM = "medium" | const val MEDIUM = "medium" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user