diff --git a/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt index 13fee447..1fe7eb17 100644 --- a/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt +++ b/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt @@ -102,6 +102,18 @@ class CompositeLocalMediaRepository @Inject constructor( ) } + override suspend fun updatePlaybackPosition( + mediaId: UUID, + playbackPositionTicks: Long, + runtimeTicks: Long, + ) { + // Server-side operation — delegates to active repository (both are no-ops) + runOnlineOrOfflineNoOp( + onlineAction = { onlineRepository.updatePlaybackPosition(mediaId, playbackPositionTicks, runtimeTicks) }, + offlineAction = { offlineRepository.updatePlaybackPosition(mediaId, playbackPositionTicks, runtimeTicks) }, + ) + } + private suspend fun getFromActiveRepository( onlineRead: suspend () -> Flow, offlineRead: suspend () -> Flow, diff --git a/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt index 0c7a07bb..d2e39997 100644 --- a/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt +++ b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt @@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import java.util.UUID -interface LocalMediaRepository : LocalMediaUpdater { +interface LocalMediaRepository : MediaMetadataUpdater { val movies: StateFlow> val series: StateFlow> val episodes: StateFlow> diff --git a/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt deleted file mode 100644 index d9fd3417..00000000 --- a/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt +++ /dev/null @@ -1,9 +0,0 @@ -package hu.bbara.purefin.core.data - -import java.util.UUID - -interface LocalMediaUpdater { - suspend fun updateWatchProgress(mediaId: UUID, positionMs: Long, durationMs: Long) - suspend fun updateWatchProgressPercent(mediaId: UUID, progressPercent: Double) - suspend fun markAsWatched(mediaId: UUID, watched: Boolean) -} diff --git a/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt b/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt index 2e46146e..78bcab5f 100644 --- a/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt +++ b/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt @@ -6,7 +6,6 @@ import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import hu.bbara.purefin.core.data.CompositeLocalMediaRepository import hu.bbara.purefin.core.data.LocalMediaRepository -import hu.bbara.purefin.core.data.LocalMediaUpdater @Module @@ -15,7 +14,4 @@ abstract class RepositoryModule { @Binds abstract fun bindMediaRepository(impl: CompositeLocalMediaRepository): LocalMediaRepository - - @Binds - abstract fun bindMediaProgressWrite(impl: CompositeLocalMediaRepository): LocalMediaUpdater } diff --git a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt index 155b0e06..1f538ecb 100644 --- a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt +++ b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt @@ -214,6 +214,14 @@ class InMemoryLocalMediaRepository @Inject constructor( } } + override suspend fun updatePlaybackPosition( + mediaId: UUID, + playbackPositionTicks: Long, + runtimeTicks: Long, + ) { + // Server-side operation — not persisted locally + } + private fun updateLoadedSeriesEpisode(updatedEpisode: Episode) { seriesState.update { current -> val series = current[updatedEpisode.seriesId] ?: return@update current diff --git a/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt b/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt index 36a00ba3..88081b6c 100644 --- a/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt +++ b/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt @@ -71,6 +71,14 @@ class OfflineLocalMediaRepository @Inject constructor( // Do nothing } + override suspend fun updatePlaybackPosition( + mediaId: UUID, + playbackPositionTicks: Long, + runtimeTicks: Long, + ) { + // Server-side operation — not persisted offline + } + override suspend fun saveMovies(movies: List) { localDataSource.saveMovies(movies) }