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 }