refactor: convert PlayableMedia to sealed class with specific media types

This commit is contained in:
2026-04-25 21:25:11 +02:00
parent f9eaf0cf84
commit b15453ab01
5 changed files with 139 additions and 29 deletions

View File

@@ -3,10 +3,34 @@ package hu.bbara.purefin.model
import androidx.media3.common.MediaItem
import java.util.UUID
data class PlayableMedia (
val id: UUID,
val resumePositionMs: Float,
val mediaItem: MediaItem,
val preferences: MediaTrackPreferences,
val mediaSegments: List<MediaSegment>
)
sealed class PlayableMedia {
abstract val id: UUID
abstract val resumePositionMs: Long
abstract val mediaItem: MediaItem
abstract val preferences: MediaTrackPreferences
abstract val mediaSegments: List<MediaSegment>
data class Movie(
override val id: UUID,
override val resumePositionMs: Long,
override val mediaItem: MediaItem,
override val preferences: MediaTrackPreferences,
override val mediaSegments: List<MediaSegment>
) : PlayableMedia()
data class Series(
override val id: UUID,
override val resumePositionMs: Long,
override val mediaItem: MediaItem,
override val preferences: MediaTrackPreferences,
override val mediaSegments: List<MediaSegment>
) : PlayableMedia()
data class Episode(
override val id: UUID,
override val resumePositionMs: Long,
override val mediaItem: MediaItem,
override val preferences: MediaTrackPreferences,
override val mediaSegments: List<MediaSegment>
) : PlayableMedia()
}