From 8221e98401213ce9f3d70d461859a0523d7667a5 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/service/BetterShuffleOrder.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/BetterShuffleOrder.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/BetterShuffleOrder.kt index 5c5415ed5..0f037a75a 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/BetterShuffleOrder.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/BetterShuffleOrder.kt @@ -67,6 +67,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) { @@ -86,8 +89,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) }