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) }