From d5595f3b05732a2384119700885da82eb875282c Mon Sep 17 00:00:00 2001 From: nicoo-c Date: Sun, 5 Jul 2026 19:26:49 -0400 Subject: [PATCH 1/2] search query for local favorites, most played and downloaded lists now also includes artist name matches --- .../ui/screen/library/LibraryDynamicPlaylistScreen.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt b/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt index 58ca42074..b08961453 100644 --- a/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt @@ -125,13 +125,16 @@ fun LibraryDynamicPlaylistScreen( LaunchedEffect(query) { Logger.w("LibraryDynamicPlaylistScreen", "Check query: $query") - tempFavorite = favorite.filter { it.title.contains(query, ignoreCase = true) } + tempFavorite = favorite.filter { it.title.contains(query, ignoreCase = true) || + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempFavorite: $tempFavorite") tempFollowed = followed.filter { it.name.contains(query, ignoreCase = true) } Logger.w("LibraryDynamicPlaylistScreen", "Check tempFollowed: $tempFollowed") - tempMostPlayed = mostPlayed.filter { it.title.contains(query, ignoreCase = true) } + tempMostPlayed = mostPlayed.filter { it.title.contains(query, ignoreCase = true) || + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempMostPlayed: $tempMostPlayed") - tempDownloaded = downloaded.filter { it.title.contains(query, ignoreCase = true) } + tempDownloaded = downloaded.filter { it.title.contains(query, ignoreCase = true) || + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempDownloaded: $tempDownloaded") tempTopTracks = analyticsUIState.topTracks.data @@ -583,4 +586,4 @@ sealed class LibraryDynamicPlaylistType { else -> throw IllegalArgumentException("Unknown type: $this") } } -} \ No newline at end of file +} From 27078c983d0fe493d12bca4f90f58c9c5fdf9499 Mon Sep 17 00:00:00 2001 From: nicoo-c Date: Sun, 5 Jul 2026 19:38:45 -0400 Subject: [PATCH 2/2] feat: search query for local favorites, most played and downloaded lists now also includes artist name matches --- .../ui/screen/library/LibraryDynamicPlaylistScreen.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt b/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt index b08961453..69300b4d5 100644 --- a/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/maxrave/simpmusic/ui/screen/library/LibraryDynamicPlaylistScreen.kt @@ -126,15 +126,15 @@ fun LibraryDynamicPlaylistScreen( LaunchedEffect(query) { Logger.w("LibraryDynamicPlaylistScreen", "Check query: $query") tempFavorite = favorite.filter { it.title.contains(query, ignoreCase = true) || - it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempFavorite: $tempFavorite") tempFollowed = followed.filter { it.name.contains(query, ignoreCase = true) } Logger.w("LibraryDynamicPlaylistScreen", "Check tempFollowed: $tempFollowed") tempMostPlayed = mostPlayed.filter { it.title.contains(query, ignoreCase = true) || - it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempMostPlayed: $tempMostPlayed") tempDownloaded = downloaded.filter { it.title.contains(query, ignoreCase = true) || - it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } + it.artistName?.any { artistString -> artistString.contains(query, ignoreCase = true) } ?: false } Logger.w("LibraryDynamicPlaylistScreen", "Check tempDownloaded: $tempDownloaded") tempTopTracks = analyticsUIState.topTracks.data