Allow seeking in video timeline.

This commit is contained in:
Nicholas Tinsley
2024-03-15 15:08:45 -04:00
committed by Cody Henthorne
parent b38865bdc7
commit c0cb2b5e12
5 changed files with 34 additions and 31 deletions

View File

@@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.video.VideoPlayer.PlayerCallback
import org.thoughtcrime.securesms.video.videoconverter.VideoThumbnailsRangeSelectorView
import org.thoughtcrime.securesms.video.videoconverter.VideoThumbnailsRangeSelectorView.PositionDragListener
import java.io.IOException
import kotlin.time.Duration.Companion.microseconds
class VideoEditorFragment : Fragment(), PositionDragListener, MediaSendPageFragment {
private val sharedViewModel: MediaSelectionViewModel by viewModels(ownerProducer = { requireActivity() })
@@ -176,7 +177,7 @@ class VideoEditorFragment : Fragment(), PositionDragListener, MediaSendPageFragm
if (slide.hasVideo()) {
canEdit = true
try {
videoTimeLine.registerPlayerOnRangeChangeListener(this)
videoTimeLine.registerPlayerDragListener(this)
hud.visibility = View.VISIBLE
startPositionUpdates()
@@ -293,7 +294,8 @@ class VideoEditorFragment : Fragment(), PositionDragListener, MediaSendPageFragm
videoScanThrottle.publish {
player.pause()
player.playbackPosition = position
val milliseconds = position.microseconds.inWholeMilliseconds
player.playbackPosition = milliseconds
}
}

View File

@@ -543,8 +543,10 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul
return
}
val uri = mediaItem.uri
videoTimeLine.unregisterPlayerOnRangeChangeListener()
videoTimeLine.setInput(uri)
val updatedInputInTimeline = videoTimeLine.setInput(uri)
if (updatedInputInTimeline) {
videoTimeLine.unregisterDragListener()
}
val size: Long = tryGetUriSize(requireContext(), uri, Long.MAX_VALUE)
val maxSend = sharedViewModel.getMediaConstraints().getVideoMaxSize(requireContext())
if (size > maxSend) {