Commit Graph

18 Commits

Author SHA1 Message Date
9eccf859bc Added logic for Searching through available medias and basic ui 2026-03-26 22:22:56 +01:00
f85624b159 Fix interactive episode navigation buttons 2026-03-24 21:34:38 +01:00
Balogh Barnabás
2e8c864522 Fix playback progress updates on exit 2026-03-24 20:54:07 +01:00
92342f1f35 Add offline playback and network fallbacks 2026-03-20 16:55:37 +01:00
43a15c4662 fix: Cannot play the same content. The previous session got stuck 2026-03-20 16:55:37 +01:00
3941c67d8b feat: add smart download feature for series
Automatically manages downloaded episodes per series — keeps 5 unwatched
episodes downloaded, removing watched ones and fetching new ones on
HomeScreen open or pull-to-refresh. A single download button on the
Series screen opens a dialog to choose between downloading all episodes
or enabling smart download.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 16:55:37 +01:00
5ca127434d feat: add pull-to-refresh gesture to HomeScreen
Wrap HomeContent with PullToRefreshBox to allow refreshing library,
continue watching, and next up sections by pulling down. Also fix
refreshHomeData to suspend until loading completes so the refresh
indicator dismisses properly.
2026-03-20 16:55:37 +01:00
e4b99354f6 feat: Back gesture should hide controls in tv module 2026-02-27 17:42:05 +01:00
fe699d7f99 refactor: Fix repository switch between offline and online. Now it switches seamlessly 2026-02-22 18:41:46 +01:00
8c7ddab9c2 feat: Implement Episode download functionality 2026-02-22 15:41:42 +01:00
9ec09a0e94 feat: Allow offline mode in Purefin 2026-02-22 15:41:08 +01:00
4ecb402e69 refactor: extract InMemoryMediaRepository from InMemoryAppContentRepository
- Create InMemoryMediaRepository to hold in-memory media state (movies,
  series, episodes), lazy series content loading, and watch progress updates
- InMemoryAppContentRepository delegates MediaRepository via Kotlin's by
  delegation, injecting InMemoryMediaRepository as a composite component
- CompositeMediaRepository now uses InMemoryMediaRepository directly as the
  online repository instead of AppContentRepository
2026-02-22 14:38:22 +01:00
69fda1fef2 refactor: add CompositeMediaRepository to switch between offline/online based on user session
Extract AppContentRepository interface from MediaRepository for home/library-specific features.
CompositeMediaRepository delegates to OfflineMediaRepository or AppContentRepository based on
UserSessionRepository.isOfflineMode, allowing content ViewModels to use a single MediaRepository
interface that automatically switches data source.
2026-02-22 14:18:27 +01:00
d5c0bbded6 feat: add DownloadsViewModel for managing offline media downloads 2026-02-22 13:41:52 +01:00
ce126988d9 feat: add images to libraries on LibrariesContent screen 2026-02-22 12:50:56 +01:00
781d36cc99 refactor: replace Room backing store in InMemoryMediaRepository with MutableStateFlows
- Remove RoomMediaLocalDataSource dependency from InMemoryMediaRepository;
  libraries, movies, series, and episodes are now held in MutableStateFlows
- observeSeriesWithContent derives from _series flow via map {}
- updateWatchProgress mutates _movies / _episodes in-memory
- ensureSeriesContentLoaded checks and updates _series in-memory
- Reorganize Room package: move entities/DAOs from local/room to room/entity and room/dao
2026-02-22 11:05:28 +01:00
6f34190ed0 feat: add player screen to TV app via compose navigation
- Add PlayerRoute to the Route sealed interface
- Refactor PlayerViewModel to expose loadMedia() for external callers
- Add onPlay() to EpisodeScreenViewModel and MovieScreenViewModel
- Wire play/resume buttons in TV episode and movie screens
- Create TvPlayerScreen with TV-optimized controls: seek bar, playback
  buttons, track selection panels, queue panel, and state cards
- Register PlayerRoute in TvRouteEntryBuilder and TvNavigationModule
- Add media3-ui dependency to app-tv module
2026-02-22 11:05:27 +01:00
7333781f83 refactor: modularize app into multi-module architecture 2026-02-22 11:05:26 +01:00