From 6529b109f88f4511759db08060e32dc6f0afd4b6 Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Sat, 17 Jan 2026 22:34:19 +0100 Subject: [PATCH] Enhance library item handling by adding isEmpty property and filtering out empty libraries from the HomeContent --- .../main/java/hu/bbara/purefin/app/HomePageViewModel.kt | 3 ++- app/src/main/java/hu/bbara/purefin/app/home/HomeContent.kt | 2 +- app/src/main/java/hu/bbara/purefin/app/home/HomeModels.kt | 3 ++- .../main/java/hu/bbara/purefin/client/JellyfinApiClient.kt | 7 +++++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/hu/bbara/purefin/app/HomePageViewModel.kt b/app/src/main/java/hu/bbara/purefin/app/HomePageViewModel.kt index a695c80..adf630f 100644 --- a/app/src/main/java/hu/bbara/purefin/app/HomePageViewModel.kt +++ b/app/src/main/java/hu/bbara/purefin/app/HomePageViewModel.kt @@ -79,7 +79,8 @@ class HomePageViewModel @Inject constructor( val mappedLibraries = libraries.map { LibraryItem( name = it.name!!, - id = it.id + id = it.id, + isEmpty = it.childCount!! == 0 ) } _libraries.value = mappedLibraries diff --git a/app/src/main/java/hu/bbara/purefin/app/home/HomeContent.kt b/app/src/main/java/hu/bbara/purefin/app/home/HomeContent.kt index 86d40b1..0431055 100644 --- a/app/src/main/java/hu/bbara/purefin/app/home/HomeContent.kt +++ b/app/src/main/java/hu/bbara/purefin/app/home/HomeContent.kt @@ -40,7 +40,7 @@ fun HomeContent( ) } items( - items = libraries, + items = libraries.filter { libraryContent[it.id]?.isEmpty() != true }, key = { it.id } ) { item -> LibraryPosterSection( diff --git a/app/src/main/java/hu/bbara/purefin/app/home/HomeModels.kt b/app/src/main/java/hu/bbara/purefin/app/home/HomeModels.kt index f19d366..ea080a0 100644 --- a/app/src/main/java/hu/bbara/purefin/app/home/HomeModels.kt +++ b/app/src/main/java/hu/bbara/purefin/app/home/HomeModels.kt @@ -14,7 +14,8 @@ data class ContinueWatchingItem( data class LibraryItem( val name: String, - val id: UUID + val id: UUID, + val isEmpty: Boolean ) data class PosterItem( diff --git a/app/src/main/java/hu/bbara/purefin/client/JellyfinApiClient.kt b/app/src/main/java/hu/bbara/purefin/client/JellyfinApiClient.kt index cd2ae05..6c21801 100644 --- a/app/src/main/java/hu/bbara/purefin/client/JellyfinApiClient.kt +++ b/app/src/main/java/hu/bbara/purefin/client/JellyfinApiClient.kt @@ -8,9 +8,9 @@ import kotlinx.coroutines.flow.first import org.jellyfin.sdk.api.client.Response import org.jellyfin.sdk.api.client.extensions.authenticateUserByName import org.jellyfin.sdk.api.client.extensions.itemsApi -import org.jellyfin.sdk.api.client.extensions.libraryApi import org.jellyfin.sdk.api.client.extensions.userApi import org.jellyfin.sdk.api.client.extensions.userLibraryApi +import org.jellyfin.sdk.api.client.extensions.userViewsApi import org.jellyfin.sdk.createJellyfin import org.jellyfin.sdk.model.ClientInfo import org.jellyfin.sdk.model.api.BaseItemDto @@ -92,7 +92,10 @@ class JellyfinApiClient @Inject constructor( if (!ensureConfigured()) { return emptyList() } - val response = api.libraryApi.getMediaFolders(isHidden = false) + val response = api.userViewsApi.getUserViews( + userId = getUserId(), + includeHidden = false + ) Log.d("getLibraries response: {}", response.content.toString()) return response.content.items }