From 74ddfe9f0e7f85fd244739c08b6bdca0bdf48924 Mon Sep 17 00:00:00 2001 From: Koen J Date: Mon, 1 Dec 2025 14:41:35 +0100 Subject: [PATCH] 2 crash fixes. --- .../mainactivity/main/VideoDetailView.kt | 2 +- .../futo/platformplayer/states/StatePlayer.kt | 26 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index 5e18f335..5e442e26 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -558,8 +558,8 @@ class VideoDetailView : ConstraintLayout { _loaderGameVisible = b fragment.lifecycleScope.launch(Dispatchers.Main) { onShouldEnterPictureInPictureChanged.emit() + updateResumeVisibilityFor(lastPositionMilliseconds) } - updateResumeVisibilityFor(lastPositionMilliseconds) } _player.loaderGameVisibilityChanged.subscribe(handleLoaderGameVisibilityChanged) _cast.loaderGameVisibilityChanged.subscribe(handleLoaderGameVisibilityChanged) diff --git a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt index fa2fb58b..2e4845fb 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt @@ -247,17 +247,29 @@ class StatePlayer { } private fun createShuffledQueue() { - val currentItem = getCurrentQueueItem(); - if (_queuePosition == -1 || currentItem == null) { - _queueShuffled = _queue.shuffled().toMutableList() - return; + if (_queue.isEmpty()) { + _queueShuffled = mutableListOf() + return } - val nextItems = _queue.subList(Math.min(_queuePosition + 1, _queue.size - 1), _queue.size).shuffled(); - val previousItems = _queue.subList(0, _queuePosition).shuffled(); - _queueShuffled = (previousItems + currentItem + nextItems).toMutableList(); + val currentItem = getCurrentQueueItem() + if (currentItem == null || _queuePosition !in _queue.indices) { + _queueShuffled = _queue.shuffled().toMutableList() + return + } + + val previousItems = _queue + .take(_queuePosition) + .shuffled() + + val nextItems = _queue + .drop(_queuePosition + 1) + .shuffled() + + _queueShuffled = (previousItems + currentItem + nextItems).toMutableList() } + private fun addToShuffledQueue(video: IPlatformVideo) { val isLastVideo = _queuePosition + 1 >= _queue.size; if (isLastVideo) {