From c5cfa876e4772f769dc4297b65a699df20cd35db Mon Sep 17 00:00:00 2001 From: Damontecres Date: Thu, 2 Oct 2025 11:58:07 -0400 Subject: [PATCH] WIP translating season/episode to tab/row indexes --- .../dolphin/data/model/BaseItem.kt | 3 + .../dolphin/ui/detail/SeriesDetails.kt | 51 +++-- .../ui/detail/series/SeriesOverview.kt | 52 +++-- .../ui/detail/series/SeriesOverviewContent.kt | 23 ++- .../dolphin/ui/playback/PlaybackOverlay.kt | 8 - .../dolphin/util/ApiRequestPager.kt | 192 ++++++++++++++++++ .../damontecres/dolphin/util/ItemPager.kt | 11 + 7 files changed, 285 insertions(+), 55 deletions(-) create mode 100644 app/src/main/java/com/github/damontecres/dolphin/util/ApiRequestPager.kt diff --git a/app/src/main/java/com/github/damontecres/dolphin/data/model/BaseItem.kt b/app/src/main/java/com/github/damontecres/dolphin/data/model/BaseItem.kt index d216729c..d77d53bf 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/data/model/BaseItem.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/data/model/BaseItem.kt @@ -22,6 +22,9 @@ data class BaseItem( @Transient val name = data.name + @Transient + val indexNumber = data.indexNumber + fun destination(): Destination.MediaItem { val result = // Redirect episodes & seasons to their series if possible diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt index a84ac476..60ff32a6 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt @@ -15,11 +15,16 @@ import com.github.damontecres.dolphin.data.model.BaseItem import com.github.damontecres.dolphin.data.model.Video import com.github.damontecres.dolphin.preferences.UserPreferences import com.github.damontecres.dolphin.ui.cards.ItemRow +import com.github.damontecres.dolphin.ui.indexOfFirstOrNull import com.github.damontecres.dolphin.ui.nav.Destination import com.github.damontecres.dolphin.ui.nav.NavigationManager +import com.github.damontecres.dolphin.util.ApiRequestPager +import com.github.damontecres.dolphin.util.GetEpisodesRequestHandler import com.github.damontecres.dolphin.util.ItemPager import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.Deferred import kotlinx.coroutines.Job +import kotlinx.coroutines.async import kotlinx.coroutines.launch import org.jellyfin.sdk.api.client.ApiClient import org.jellyfin.sdk.api.client.extensions.playStateApi @@ -28,6 +33,7 @@ import org.jellyfin.sdk.model.api.BaseItemKind import org.jellyfin.sdk.model.api.ItemFields import org.jellyfin.sdk.model.api.ItemSortBy import org.jellyfin.sdk.model.api.SortOrder +import org.jellyfin.sdk.model.api.request.GetEpisodesRequest import org.jellyfin.sdk.model.api.request.GetItemsRequest import timber.log.Timber import java.util.UUID @@ -40,6 +46,7 @@ class SeriesViewModel api: ApiClient, ) : ItemViewModel