Updates & fixes to discover pages (#1836)
## Description Fixes several issues on the discover pages: - Fixes sorting by release date for tv shows - Fixes automatic go-to for movie & tv show grid - Fixes tv show discover page's go-to using a movie detail page - Updates the alignment & padding for the headers on different discover pages to match the reset of the app - Use media's logo image if available and the setting is enabled ### Related issues N/A ### Testing Emulator mostly ## Screenshots N/A, headers and logos are unchanged, just moved slightly to match regular content ## AI or LLM usage None
This commit is contained in:
parent
4e53cbaa7f
commit
f89d752d2c
14 changed files with 182 additions and 75 deletions
|
|
@ -28,6 +28,7 @@ import kotlinx.coroutines.flow.firstOrNull
|
|||
import org.jellyfin.sdk.model.api.BaseItemKind
|
||||
import org.jellyfin.sdk.model.api.ImageType
|
||||
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
|
@ -169,14 +170,7 @@ class SeerrService
|
|||
backdropWidth: Int = 1920,
|
||||
): String? {
|
||||
if (mediaInfo != null) {
|
||||
val itemId =
|
||||
if (mediaInfo.jellyfinMediaId.isNotNullOrBlank()) {
|
||||
mediaInfo.jellyfinMediaId.toUUIDOrNull()
|
||||
} else if (mediaInfo.jellyfinMediaId4k.isNotNullOrBlank()) {
|
||||
mediaInfo.jellyfinMediaId4k.toUUIDOrNull()
|
||||
} else {
|
||||
null
|
||||
}
|
||||
val itemId = mediaInfo.jellyfinId
|
||||
if (itemId != null) {
|
||||
return imageUrlService.getItemImageUrl(
|
||||
itemId = itemId,
|
||||
|
|
@ -348,7 +342,8 @@ class SeerrService
|
|||
releaseDate = toLocalDate(movie.releaseDate),
|
||||
posterUrl = createImageUrl(ImageType.PRIMARY, movie.posterPath, movie.mediaInfo),
|
||||
backDropUrl = createImageUrl(ImageType.BACKDROP, movie.backdropPath, movie.mediaInfo),
|
||||
jellyfinItemId = movie.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, movie.mediaInfo),
|
||||
jellyfinItemId = movie.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(movie: MovieDetails): DiscoverItem =
|
||||
|
|
@ -364,7 +359,8 @@ class SeerrService
|
|||
releaseDate = toLocalDate(movie.releaseDate),
|
||||
posterUrl = createImageUrl(ImageType.PRIMARY, movie.posterPath, movie.mediaInfo),
|
||||
backDropUrl = createImageUrl(ImageType.BACKDROP, movie.backdropPath, movie.mediaInfo),
|
||||
jellyfinItemId = movie.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, movie.mediaInfo),
|
||||
jellyfinItemId = movie.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(tv: TvResult): DiscoverItem =
|
||||
|
|
@ -380,7 +376,8 @@ class SeerrService
|
|||
releaseDate = toLocalDate(tv.firstAirDate),
|
||||
posterUrl = createImageUrl(ImageType.PRIMARY, tv.posterPath, tv.mediaInfo),
|
||||
backDropUrl = createImageUrl(ImageType.BACKDROP, tv.backdropPath, tv.mediaInfo),
|
||||
jellyfinItemId = tv.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, tv.mediaInfo),
|
||||
jellyfinItemId = tv.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(tv: TvDetails): DiscoverItem =
|
||||
|
|
@ -396,7 +393,8 @@ class SeerrService
|
|||
releaseDate = toLocalDate(tv.firstAirDate),
|
||||
posterUrl = createImageUrl(ImageType.PRIMARY, tv.posterPath, tv.mediaInfo),
|
||||
backDropUrl = createImageUrl(ImageType.BACKDROP, tv.backdropPath, tv.mediaInfo),
|
||||
jellyfinItemId = tv.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, tv.mediaInfo),
|
||||
jellyfinItemId = tv.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(search: SeerrSearchResult): DiscoverItem =
|
||||
|
|
@ -412,7 +410,8 @@ class SeerrService
|
|||
releaseDate = toLocalDate(search.releaseDate ?: search.firstAirDate),
|
||||
posterUrl = createImageUrl(ImageType.PRIMARY, search.posterPath, search.mediaInfo),
|
||||
backDropUrl = createImageUrl(ImageType.BACKDROP, search.backdropPath, search.mediaInfo),
|
||||
jellyfinItemId = search.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, search.mediaInfo),
|
||||
jellyfinItemId = search.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(credit: CreditCast): DiscoverItem =
|
||||
|
|
@ -438,7 +437,8 @@ class SeerrService
|
|||
credit.backdropPath,
|
||||
credit.mediaInfo,
|
||||
),
|
||||
jellyfinItemId = credit.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, credit.mediaInfo),
|
||||
jellyfinItemId = credit.mediaInfo?.jellyfinId,
|
||||
)
|
||||
|
||||
suspend fun createDiscoverItem(credit: CreditCrew): DiscoverItem =
|
||||
|
|
@ -464,6 +464,13 @@ class SeerrService
|
|||
credit.backdropPath,
|
||||
credit.mediaInfo,
|
||||
),
|
||||
jellyfinItemId = credit.mediaInfo?.jellyfinMediaId?.toUUIDOrNull(),
|
||||
logoUrl = createImageUrl(ImageType.LOGO, null, credit.mediaInfo),
|
||||
jellyfinItemId = credit.mediaInfo?.jellyfinId,
|
||||
)
|
||||
}
|
||||
|
||||
val MediaInfo.jellyfinId: UUID?
|
||||
get() = jellyfinMediaId4k?.toUUIDOrNull() ?: jellyfinMediaId?.toUUIDOrNull()
|
||||
|
||||
val MediaInfo.jellyfinIdAsString: String?
|
||||
get() = jellyfinMediaId4k ?: jellyfinMediaId
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue