Commit Graph

62 Commits

Author SHA1 Message Date
7232352014 refactor: rename domain module to core module 2026-04-24 17:42:18 +02:00
3f7c1966af Collapse shared modules into data domain and ui-common 2026-04-23 20:42:59 +02:00
59a471c535 feature: Added MediaSegmentManager 2026-04-23 19:59:12 +02:00
f0a4aadcf0 Derive player state from Media3 events 2026-04-22 20:04:47 +02:00
65f2bd811b refactor: Update MediaTrackPreferences handling for improved null safety and initialization 2026-04-22 19:39:24 +02:00
899e2f08b0 refactor: Added MediaSegments to MediaContext to make it accesible during playback. Also refactored MediaTrackPreferences to load preference in the PlayerViewModel 2026-04-22 19:34:11 +02:00
a2931b78f9 refactor: simplify AppContentRepository initialization logic. 2026-04-21 21:34:22 +02:00
9545e4d619 refactor: remove forced common PosterCardContent and inline them in the corresponding app ui module 2026-04-20 18:13:25 +02:00
920b0e0e4a Refactor TV home media cards smaller 2026-04-19 20:35:20 +02:00
2c5585417a refactor: add backdropImageUrl to MediaUiModel for improved image handling 2026-04-19 20:14:19 +02:00
a0086c6f62 refactor: rename imageUrl to primaryImageUrl for consistency across components 2026-04-19 20:08:41 +02:00
76eebc1139 refactor: remove overcomplicated TvHomeHeroState 2026-04-19 19:49:12 +02:00
632dda52d6 Refactor media models to use MediaUiModel for improved consistency and type safety 2026-04-18 21:35:56 +02:00
5a377fc428 Add keys to lazy Compose entries 2026-04-17 18:02:22 +02:00
9591b72273 Extract shared Compose UI into core module 2026-04-15 21:21:10 +02:00
ad930e899f feat: introduce core data models and interfaces for playback and downloads 2026-04-15 20:02:50 +02:00
b67c8076f1 refactor: update package structure and imports for consistency across UI components 2026-04-14 22:03:36 +02:00
3509a09064 Separate mobile downloads from TV playback 2026-04-13 16:31:57 +02:00
a0af187e8f feat: implement quick play/pause toggle for TV player
Adds the ability to play and pause media using the Center or Enter keys
without displaying the full player controls. When pausing via this
method, a brief visual "Pause" feedback overlay is shown in the center
of the screen.

- Added `TvPlayerHiddenStopFeedback` component and related logic
- Updated `handleTvPlayerRootKeyEvent` to support background playback toggling
- Added `pausePlayback` and `resumePlayback` to `PlayerViewModel` and `PlayerManager`
- Included comprehensive UI tests for the new hidden control behavior
2026-04-12 19:02:45 +02:00
7c30e12af7 Fix TV player track selector focus 2026-04-09 19:59:01 +02:00
512f7bbb5b feat: Enable ASS direct play in TV device profile 2026-04-09 18:54:56 +02:00
58980f4ac7 feat: Update episode retrieval counts in API client and media repository 2026-04-09 18:45:21 +02:00
d007c80af7 Refine TV player inline playlist flow
Move the TV player queue into a simplified bottom inline playlist row and keep the existing seek bar -> controls -> playlist navigation hierarchy.

Focus playlist entry on the current queue item, keep focus pinned on the row at the horizontal edges, and return to the controls row on Up/Back.

Add compose coverage for playlist expansion, current-item focus, fallback focus, and row edge navigation.
2026-04-09 18:22:21 +02:00
d253a6c8d0 feat: Add HLS support to ExoPlayer implementation 2026-04-09 14:03:53 +02:00
b41a9c24a2 feat: Implement auto-hide delay for TV player controls 2026-04-08 20:19:04 +02:00
98c936aea6 feat: Allow repeated seeking in the tv ui 2026-04-08 20:02:27 +02:00
cf08db5034 Split mobile and TV playback profiles 2026-04-08 19:46:37 +02:00
1a17c52326 refactor: Throw out overcomplicated shit code for Playback 2026-04-08 18:03:23 +02:00
674e0881d7 code cleanup 2026-04-07 21:28:08 +02:00
bc41116118 fix: adjust buffer durations and prioritize time over size in video player module 2026-04-07 19:25:03 +02:00
69ae10c761 Stabilize HLS playback timestamps 2026-04-07 17:18:42 +02:00
4b0e02e017 Fix TV audio sink capability handling 2026-04-07 16:52:44 +02:00
356816ba0e feat: add HLS support by including media3-exoplayer-hls dependency 2026-04-07 16:25:54 +02:00
cca75d8a5a feat: add PendingSeekTracker to manage seek requests and improve playback accuracy 2026-04-07 15:35:14 +02:00
59c9e31ca5 feat: implement playback source planning and enhance device profile transcoding support 2026-04-07 15:18:39 +02:00
9e8772467c Improve player error reporting 2026-04-06 20:20:44 +02:00
680df51ce7 refactor: update image handling in Episode dto to use imageUrlPrefix and JellyfinImageHelper 2026-04-01 22:49:37 +02:00
98850087ff refactor: update image handling in Series dto to use imageUrlPrefix and JellyfinImageHelper 2026-04-01 22:38:58 +02:00
ce5266f17c refactor: update image handling in Movie dto to use imageUrlPrefix and JellyfinImageHelper 2026-04-01 22:30:32 +02:00
d6d05be93f Add image URL prefix and completion helpers to JellyfinImageHelper 2026-04-01 22:17:09 +02:00
f107085385 feat: add media suggestions to home screen
Introduce a new Suggestions section on the home screen that fetches and
displays recommended content from the Jellyfin API. This replaces the
previous manual featured items logic with a more robust suggestion
system supporting movies, series, and episodes.

Key changes:
- Implement `getSuggestions` in `JellyfinApiClient` to fetch video content.
- Update `AppContentRepository` and its implementation to manage
  suggestions, including caching and background refreshing.
- Add `SuggestedItem` models and update `AppViewModel` to expose
  suggestions as a state flow.
- Replace `HomeFeaturedSection` with `SuggestionsSection` using a
  horizontal pager.
- Implement auto-scrolling logic in `HomeContent` to ensure suggestions
  are visible upon initial load if the user hasn't already interacted.
2026-03-31 15:51:07 +02:00
51fc17cb92 feat: redesign home screen with discovery-focused UI
Overhauls the home screen to provide a modern, media-focused discovery
experience. Key changes include:

- Introduced a featured content carousel at the top, highlighting
  continue watching items, next up episodes, and library additions.
- Implemented a search overlay with a real-time search bar and grid
  results for movies and series.
- Redesigned the top bar with a large collapsible title and subtitle
  that dynamically reflects content status.
- Updated sections for "Continue Watching", "Next Up", and libraries
  with high-fidelity cards, progress indicators, and better typography.
- Added a dedicated empty state with quick actions for refreshing or
  browsing libraries.
- Improved navigation by adding library-specific click actions and
  search-to-detail transitions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 20:33:15 +02:00
4b92af26ba Implement Jellyfin playback decision flow 2026-03-29 16:38:44 +02:00
0d7a3d99dd Removed online/offline toggle button from tv ui and also from the references 2026-03-28 11:38:22 +01:00
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