Clamp videos to max duration after media quality change.

Fixes #13930
Resolves #13932
This commit is contained in:
Sagar
2025-01-22 17:00:03 +05:30
committed by Greyson Parrelli
parent 4369591966
commit 119ee9666d

View File

@@ -335,6 +335,14 @@ class MediaSelectionViewModel(
store.update { it.copy(quality = sentMediaQuality, isPreUploadEnabled = false) }
repository.uploadRepository.cancelAllUploads()
store.state.selectedMedia.forEach { mediaItem ->
if (MediaUtil.isVideoType(mediaItem.contentType) && MediaConstraints.isVideoTranscodeAvailable()) {
val uri = mediaItem.uri
val data = store.state.getOrCreateVideoTrimData(uri)
onEditVideoDuration(totalDurationUs = data.totalInputDurationUs, startTimeUs = data.startTimeUs, endTimeUs = data.endTimeUs, touchEnabled = true, uri = uri)
}
}
}
fun setMessage(text: CharSequence?) {
@@ -345,9 +353,9 @@ class MediaSelectionViewModel(
store.update { it.copy(viewOnceToggleState = it.viewOnceToggleState.next()) }
}
fun onEditVideoDuration(totalDurationUs: Long, startTimeUs: Long, endTimeUs: Long, touchEnabled: Boolean) {
fun onEditVideoDuration(totalDurationUs: Long, startTimeUs: Long, endTimeUs: Long, touchEnabled: Boolean, uri: Uri? = store.state.focusedMedia?.uri) {
if (uri == null) return
store.update {
val uri = it.focusedMedia?.uri ?: return@update it
val data = it.getOrCreateVideoTrimData(uri)
val clampedStartTime = max(startTimeUs, 0)