From c42da2240cf9e707641d25fa4de06a90f40fa857 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Wed, 28 Feb 2024 23:08:09 -0700 Subject: [PATCH] playback: fix add to queue again --- .../auxio/playback/system/BetterShuffleOrder.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/BetterShuffleOrder.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/BetterShuffleOrder.kt index c9d77cf37..b3b067fa4 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/BetterShuffleOrder.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/BetterShuffleOrder.kt @@ -68,6 +68,9 @@ class BetterShuffleOrder(private val shuffled: IntArray) : ShuffleOrder { return BetterShuffleOrder(insertionCount, -1) } + // TODO: Fix this scuffed hacky logic + // TODO: Play next ordering needs to persist in unshuffle + val newShuffled = IntArray(shuffled.size + insertionCount) val pivot: Int = if (insertionIndex < shuffled.size) { @@ -87,8 +90,14 @@ class BetterShuffleOrder(private val shuffled: IntArray) : ShuffleOrder { newShuffled[i + insertionCount] = currentIndex } } - for (i in 0 until insertionCount) { - newShuffled[pivot + i + 1] = insertionIndex + i + 1 + if (insertionIndex < shuffled.size) { + for (i in 0 until insertionCount) { + newShuffled[pivot + i + 1] = insertionIndex + i + 1 + } + } else { + for (i in 0 until insertionCount) { + newShuffled[pivot + i] = insertionIndex + i + } } return BetterShuffleOrder(newShuffled) }