feat: add preferenceMediaId to PlayableMedia and update related logic to make more prone to mistakes

This commit is contained in:
2026-05-13 22:52:49 +02:00
parent 9fb3672c19
commit cc643ae34f
3 changed files with 41 additions and 20 deletions

View File

@@ -48,11 +48,16 @@ class DefaultPlayableMediaRepository @Inject constructor(
val mediaItem = getMediaItem(baseItem, playbackDecision)
val resumePositionMs = calculateResumePosition(baseItem, playbackDecision.mediaSource)
val mediaTrackPreferences = trackPreferencesRepository.getMediaPreferences(baseItem.parentId.toString()).first()
val preferenceMediaId = when (baseItem.type) {
BaseItemKind.EPISODE -> baseItem.seriesId ?: mediaId
else -> mediaId
}
val mediaTrackPreferences = trackPreferencesRepository.getMediaPreferences(preferenceMediaId.toString()).first()
val mediaSegments = getMediaSegments(mediaId)
when (baseItem.type) {
BaseItemKind.MOVIE -> PlayableMedia.Movie(
id = mediaId,
preferenceMediaId = preferenceMediaId,
mediaItem = mediaItem,
resumePositionMs = resumePositionMs ?: 0L,
preferences = mediaTrackPreferences,
@@ -60,6 +65,7 @@ class DefaultPlayableMediaRepository @Inject constructor(
)
BaseItemKind.SERIES -> PlayableMedia.Series(
id = mediaId,
preferenceMediaId = preferenceMediaId,
mediaItem = mediaItem,
resumePositionMs = resumePositionMs ?: 0L,
preferences = mediaTrackPreferences,
@@ -67,6 +73,7 @@ class DefaultPlayableMediaRepository @Inject constructor(
)
BaseItemKind.EPISODE -> PlayableMedia.Episode(
id = mediaId,
preferenceMediaId = preferenceMediaId,
mediaItem = mediaItem,
resumePositionMs = resumePositionMs ?: 0L,
preferences = mediaTrackPreferences,