mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-22 20:18:36 +00:00
Don't display erroneous remaining time in video player.
This commit is contained in:
committed by
mtang-signal
parent
879c794324
commit
e036c8992f
@@ -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)
|
||||||
|
if (remainingDuration >= Duration.ZERO) {
|
||||||
val minutes: Long = remainingDuration.inWholeMinutes
|
val minutes: Long = remainingDuration.inWholeMinutes
|
||||||
val seconds: Long = remainingDuration.inWholeSeconds % 60
|
val seconds: Long = remainingDuration.inWholeSeconds % 60
|
||||||
durationLabel.text = "–${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}"
|
durationLabel.text = "–${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}"
|
||||||
|
} else {
|
||||||
|
durationLabel.text = ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setProgressUpdateListener(null)
|
setProgressUpdateListener(null)
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user