diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreenContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreenContentTest.kt index a78ebba9..805bd688 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreenContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreenContentTest.kt @@ -105,7 +105,9 @@ class EpisodeScreenContentTest { return Episode( id = UUID.fromString("33333333-3333-3333-3333-333333333333"), seriesId = seriesId, + seriesName = "Severance", seasonId = seasonId, + seasonIndex = 2, index = 4, title = "The You You Are", synopsis = "Mark is pulled deeper into Lumon's fractured world as the team chases a clue.", diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt index 2687027b..17ffd715 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt @@ -425,7 +425,9 @@ class TvHomeContentTest { return Episode( id = UUID.fromString(id), seriesId = seriesId, + seriesName = "Firefly", seasonId = seasonId, + seasonIndex = 1, index = 1, title = title, synopsis = "A crew member takes the shuttle for a spin and makes a mess.", diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/series/SeriesScreenContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/series/SeriesScreenContentTest.kt index 0a1d681f..17b4cead 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/series/SeriesScreenContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/series/SeriesScreenContentTest.kt @@ -120,7 +120,9 @@ class SeriesScreenContentTest { Episode( id = UUID.fromString("44444444-4444-4444-4444-444444444444"), seriesId = seriesId, + seriesName = "Severance", seasonId = seasonId, + seasonIndex = 1, index = 1, title = "Good News About Hell", synopsis = "Mark is promoted after an unexpected tragedy.", @@ -136,7 +138,9 @@ class SeriesScreenContentTest { Episode( id = UUID.fromString("55555555-5555-5555-5555-555555555555"), seriesId = seriesId, + seriesName = "Severance", seasonId = seasonId, + seasonIndex = 1, index = 2, title = "Half Loop", synopsis = "Mark takes the team out for a sanctioned dinner.", diff --git a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt index 0897315c..cd5dc5ce 100644 --- a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt +++ b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt @@ -95,7 +95,9 @@ class TvFocusedItemHeroTest { return Episode( id = UUID.fromString("33333333-3333-3333-3333-333333333333"), seriesId = UUID.fromString("44444444-4444-4444-4444-444444444444"), + seriesName = "Love, Death & Robots", seasonId = UUID.fromString("55555555-5555-5555-5555-555555555555"), + seasonIndex = 3, index = 3, title = "The Very Pulse of the Machine", synopsis = "An astronaut faces a strange world alone.", diff --git a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt index 92af8d06..d9ea7df2 100644 --- a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt +++ b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt @@ -126,7 +126,9 @@ class TvHomeHeroStateTest { episode = Episode( id = UUID.fromString(id), seriesId = UUID.fromString("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"), + seriesName = "Sample Series", seasonId = UUID.fromString("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"), + seasonIndex = 1, index = 1, title = "Next Episode", synopsis = "Episode synopsis", diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt index 290c91fc..eae0e9be 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt @@ -237,7 +237,9 @@ private fun previewEpisode(): Episode { return Episode( id = UUID.fromString("33333333-3333-3333-3333-333333333333"), seriesId = seriesId, + seriesName = "Severance", seasonId = seasonId, + seasonIndex = 2, index = 4, title = "The You You Are", synopsis = "Mark is pulled deeper into Lumon's fractured world as the team chases a clue that reframes everything they thought they understood.", diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt index 5fdf3316..0188bdc1 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt @@ -268,7 +268,9 @@ private fun previewSeries(): Series { Episode( id = UUID.fromString("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"), seriesId = seriesId, + seriesName = "Constellation", seasonId = seasonOneId, + seasonIndex = 1, index = 1, title = "A Fresh Start", synopsis = "A fractured crew tries to reassemble after a year apart.", @@ -284,7 +286,9 @@ private fun previewSeries(): Series { Episode( id = UUID.fromString("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa2"), seriesId = seriesId, + seriesName = "Constellation", seasonId = seasonOneId, + seasonIndex = 1, index = 2, title = "Signals", synopsis = "Anomalies around the station point to a cover-up.", @@ -302,7 +306,9 @@ private fun previewSeries(): Series { Episode( id = UUID.fromString("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa3"), seriesId = seriesId, + seriesName = "Constellation", seasonId = seasonTwoId, + seasonIndex = 2, index = 1, title = "Return Window", synopsis = "A high-risk jump changes the rules of the mission.", diff --git a/core-model/src/main/java/hu/bbara/purefin/model/Episode.kt b/core-model/src/main/java/hu/bbara/purefin/model/Episode.kt index 243f363b..7fb05ba8 100644 --- a/core-model/src/main/java/hu/bbara/purefin/model/Episode.kt +++ b/core-model/src/main/java/hu/bbara/purefin/model/Episode.kt @@ -5,7 +5,9 @@ import java.util.UUID data class Episode( val id: UUID, val seriesId: UUID, + val seriesName: String, val seasonId: UUID, + val seasonIndex: Int, val index: Int, val title: String, val synopsis: String, diff --git a/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt b/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt index feb9754f..e5044344 100644 --- a/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt +++ b/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt @@ -129,8 +129,8 @@ class EpisodeUiModel : MediaUiModel { constructor(episode: Episode) { id = episode.id - primaryText = episode.title - secondaryText = episode.releaseDate + primaryText = episode.seriesName + secondaryText = "${episode.seasonIndex} x ${episode.index} : ${episode.title}" description = episode.synopsis prefixImageUrl = episode.imageUrlPrefix progress = (episode.progress?.toFloat() ?: 0f) / 100f diff --git a/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt b/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt index f8e233a3..bcfd7456 100644 --- a/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt +++ b/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt @@ -95,7 +95,9 @@ fun BaseItemDto.toEpisode(serverUrl: String): Episode { return Episode( id = id, seriesId = seriesId!!, + seriesName = seriesName!!, seasonId = parentId!!, + seasonIndex = parentIndexNumber!!, title = name ?: "Unknown title", index = indexNumber!!, releaseDate = releaseDate, diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/cache/HomeCache.kt b/data/src/main/java/hu/bbara/purefin/data/offline/cache/HomeCache.kt index a01d3479..4ab72a44 100644 --- a/data/src/main/java/hu/bbara/purefin/data/offline/cache/HomeCache.kt +++ b/data/src/main/java/hu/bbara/purefin/data/offline/cache/HomeCache.kt @@ -50,7 +50,9 @@ data class CachedSeries( data class CachedEpisode( val id: String, val seriesId: String, + val seriesName: String, val seasonId: String, + val seasonIndex: Int, val index: Int, val title: String, val synopsis: String, @@ -208,7 +210,9 @@ fun CachedSeries.toSeries(): Series? { fun Episode.toCachedEpisode() = CachedEpisode( id = id.toString(), seriesId = seriesId.toString(), + seriesName = seriesName, seasonId = seasonId.toString(), + seasonIndex = seasonIndex, index = index, title = title, synopsis = synopsis, @@ -229,7 +233,9 @@ fun CachedEpisode.toEpisode(): Episode? { return Episode( id = episodeId, seriesId = seriesUuid, + seriesName = seriesName, seasonId = seasonUuid, + seasonIndex = seasonIndex, index = index, title = title, synopsis = synopsis, diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/room/entity/EpisodeEntity.kt b/data/src/main/java/hu/bbara/purefin/data/offline/room/entity/EpisodeEntity.kt index 5877907d..676e0e7f 100644 --- a/data/src/main/java/hu/bbara/purefin/data/offline/room/entity/EpisodeEntity.kt +++ b/data/src/main/java/hu/bbara/purefin/data/offline/room/entity/EpisodeEntity.kt @@ -21,7 +21,9 @@ import java.util.UUID data class EpisodeEntity( @PrimaryKey val id: UUID, val seriesId: UUID, + val seriesName: String, val seasonId: UUID, + val seasonIndex: Int, val index: Int, val title: String, val synopsis: String, diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineMediaDatabase.kt b/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineMediaDatabase.kt index c27b4988..efe3b526 100644 --- a/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineMediaDatabase.kt +++ b/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineMediaDatabase.kt @@ -23,7 +23,7 @@ import hu.bbara.purefin.data.offline.room.entity.SmartDownloadEntity EpisodeEntity::class, SmartDownloadEntity::class, ], - version = 10, + version = 11, exportSchema = false ) @TypeConverters(UuidConverters::class) diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineRoomMediaLocalDataSource.kt b/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineRoomMediaLocalDataSource.kt index 61a70660..5a5bd2a2 100644 --- a/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineRoomMediaLocalDataSource.kt +++ b/data/src/main/java/hu/bbara/purefin/data/offline/room/offline/OfflineRoomMediaLocalDataSource.kt @@ -246,7 +246,9 @@ class OfflineRoomMediaLocalDataSource( private fun Episode.toEntity() = EpisodeEntity( id = id, seriesId = seriesId, + seriesName = seriesName, seasonId = seasonId, + seasonIndex = seasonIndex, index = index, title = title, synopsis = synopsis, @@ -300,7 +302,9 @@ class OfflineRoomMediaLocalDataSource( private fun EpisodeEntity.toDomain() = Episode( id = id, seriesId = seriesId, + seriesName = seriesName, seasonId = seasonId, + seasonIndex = seasonIndex, index = index, title = title, synopsis = synopsis,