Don't display erroneous remaining time in video player.

This commit is contained in:
Nicholas Tinsley
2024-08-08 16:41:46 -04:00
committed by mtang-signal
parent 879c794324
commit e036c8992f
2 changed files with 8 additions and 5 deletions

View File

@@ -22,6 +22,7 @@ import com.airbnb.lottie.model.KeyPath
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.MediaUtil
import org.thoughtcrime.securesms.util.visible import org.thoughtcrime.securesms.util.visible
import kotlin.time.Duration
import kotlin.time.DurationUnit import kotlin.time.DurationUnit
import kotlin.time.toDuration import kotlin.time.toDuration
@@ -74,9 +75,13 @@ class MediaPreviewPlayerControlView @JvmOverloads constructor(
setProgressUpdateListener { position, _ -> setProgressUpdateListener { position, _ ->
val finalPlayer = player ?: return@setProgressUpdateListener val finalPlayer = player ?: return@setProgressUpdateListener
val remainingDuration = (finalPlayer.duration - position).toDuration(DurationUnit.MILLISECONDS) val remainingDuration = (finalPlayer.duration - position).toDuration(DurationUnit.MILLISECONDS)
val minutes: Long = remainingDuration.inWholeMinutes if (remainingDuration >= Duration.ZERO) {
val seconds: Long = remainingDuration.inWholeSeconds % 60 val minutes: Long = remainingDuration.inWholeMinutes
durationLabel.text = "${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}" val seconds: Long = remainingDuration.inWholeSeconds % 60
durationLabel.text = "${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}"
} else {
durationLabel.text = ""
}
} }
} else { } else {
setProgressUpdateListener(null) setProgressUpdateListener(null)

View File

@@ -25,7 +25,6 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.OptIn; import androidx.annotation.OptIn;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.MediaItem; import androidx.media3.common.MediaItem;
@@ -48,7 +47,6 @@ import org.thoughtcrime.securesms.mediapreview.MediaPreviewPlayerControlView;
import org.thoughtcrime.securesms.mms.VideoSlide; import org.thoughtcrime.securesms.mms.VideoSlide;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit;
@OptIn(markerClass = UnstableApi.class) @OptIn(markerClass = UnstableApi.class)
public class VideoPlayer extends FrameLayout { public class VideoPlayer extends FrameLayout {