From 24dbd04ca6d261322256694320d48ad58e288f20 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Wed, 10 Jul 2024 06:51:32 -0600 Subject: [PATCH] music: fix broken name comparator --- app/src/main/java/org/oxycblt/auxio/music/info/Name.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/music/info/Name.kt b/app/src/main/java/org/oxycblt/auxio/music/info/Name.kt index 30626f01e..3f5662b8d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/info/Name.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/info/Name.kt @@ -70,12 +70,11 @@ sealed interface Name : Comparable { final override fun compareTo(other: Name) = when (other) { is Known -> { - // Progressively compare the sort tokens between each known name. - sortTokens.zip(other.sortTokens).fold(0) { acc, (token, otherToken) -> + val result = sortTokens.zip(other.sortTokens).fold(0) { acc, (token, otherToken) -> acc.takeIf { it != 0 } ?: token.compareTo(otherToken) } + if (result != 0) result else sortTokens.size.compareTo(other.sortTokens.size) } - // Unknown names always come before known names. is Unknown -> 1 }