Commit Graph

112 Commits

Author SHA1 Message Date
22c414b5e2 Revert "refactor: remove unused name field from LibraryDto"
This reverts commit 8a1d5ccfab.
2026-04-29 18:09:13 +02:00
8a1d5ccfab refactor: remove unused name field from LibraryDto 2026-04-29 17:44:20 +02:00
bd5e43114b refactor: extract and rename LibraryUiModel 2026-04-29 17:35:52 +02:00
afdd9b860f feat: integrate dynamic library navigation in TV drawer
Refactors the TV navigation drawer to use specific library routes instead
of a static libraries overview. Added a `NavDisplay` with a backstack to
manage navigation between the Home screen and individual Library screens
directly from the drawer.

- Replace `TvDrawerDestination` enum with `Route` in the navigation drawer
- Dynamically populate drawer items based on available libraries
- Add `NavDisplay` to `TvAppScreen` for nested TV navigation
- Connect `TvLibraryScreen` to `AppViewModel` for media selection handling
- Remove back button from `TvLibraryScreen` in favor of drawer navigation
- Update `TvNavigationDrawerTest` to reflect routing changes
2026-04-26 18:08:40 +02:00
01de2ca19c feat: move subtitles when controls overlay are shown 2026-04-26 12:47:28 +02:00
522c8273d5 feat: add skip segment functionality to player 2026-04-26 12:21:52 +02:00
78a5f716c0 refactor: refine TV detail cast rows and player queue behavior
Temporarily hide cast rows on TV movie, episode, and series detail surfaces while preserving the surrounding section layout.

Simplify TV player queue rows by removing the secondary subtitle line so queued items scan more cleanly.

Increase the next-up queue fetch from 5 to 10 items and skip missing playlist episodes with an error log instead of throwing during queue mapping.
2026-04-25 18:43:14 +02:00
f7f9fc1058 refactor: centralize playable media state
Move playback-related media state into shared model types and make the player consume a single PlayableMedia object instead of separately loading MediaItems, track preferences, resume positions, and media segments.

This updates PlayableMediaRepository to return playable media bundles, seeds the player playlist with the current item, keeps next-up entries in the same model, restores resume/segment handling, and fixes current queue highlighting.

The change also moves track preference models into core-model, centralizes Jellyfin BaseItemDto conversion, removes placeholder movie audio/subtitle fields, bumps the offline Room schema, and updates mobile/TV queue UI code for the playlist model.

Verification:
./gradlew --no-daemon :core-model:compileDebugKotlin :core:compileDebugKotlin :data:compileDebugKotlin :app:compileDebugKotlin
2026-04-25 18:08:23 +02:00
2433ececac refactor: change dependency structure. core should not depend on data. Move repository interfaces to core. Move hilt bindings in the data model. 2026-04-24 19:02:26 +02:00
354314710b refactor: extract core-model into its own module 2026-04-24 18:11:28 +02:00
ab7700d202 refactor: rename ui-common module to core-ui module 2026-04-24 17:43:33 +02:00
7232352014 refactor: rename domain module to core module 2026-04-24 17:42:18 +02:00
57e2983527 refactor: move JellyfinAuthInterceptor and JellyfinNetworkModule to the domain module 2026-04-24 09:36:19 +02:00
a1239c907a refactor: reorganize package structure and remove unused files (remove old core parent package) in domain module 2026-04-24 09:31:30 +02:00
8423e63937 refactor: moved packages from data/core into /data in the data module 2026-04-24 08:37:45 +02:00
3f7c1966af Collapse shared modules into data domain and ui-common 2026-04-23 20:42:59 +02:00
a39581682f Refactor media selection logic to use a unified onMediaSelected callback
Consolidates specific media selection callbacks (`onMovieSelected`, `onSeriesSelected`, `onEpisodeSelected`) into a single `onMediaSelected` handler that accepts a `MediaUiModel`. This simplifies the interface between the ViewModel and UI components across both mobile and TV screens, moving the type-checking logic into `AppViewModel`.
2026-04-20 20:08:38 +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
52a51b1b28 Tighten TV home hero and bring-in-view offset 2026-04-19 20:07:08 +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
29747a1031 Reorganize app-tv packages and align test imports 2026-04-15 20:35:46 +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
1f6e3a8b43 feat: update adaptive icons to use color resources and add monochrome variant 2026-04-14 19:52:15 +02:00
3509a09064 Separate mobile downloads from TV playback 2026-04-13 16:31:57 +02:00
9a130e9738 Keep TV player controls hidden while seeking 2026-04-13 14:40:07 +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
16839942b1 Focus play/pause button when player controls open 2026-04-12 18:39:57 +02:00
360cd51e23 feat: Enhance TV player controls with key event handling and overlay visibility management 2026-04-10 15:49:34 +02:00
7c30e12af7 Fix TV player track selector focus 2026-04-09 19:59:01 +02:00
53f7cb58f3 feat: Update background image URL handling in TvEpisodeScreen 2026-04-09 19:28:17 +02:00
313a971684 feat: Rename screen and component classes for TV context 2026-04-09 19:01:16 +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
54e79d8bee feat: Extend play toggle functionality to include additional enter key inputs 2026-04-09 17:03:16 +02:00
4ef78b8ec6 feat: Implement back button behavior for TV player controls 2026-04-09 16:57:30 +02:00
b41a9c24a2 feat: Implement auto-hide delay for TV player controls 2026-04-08 20:19:04 +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
b47ebda8e6 feat: add TV player UI components including controls, loading error card, and track selection 2026-04-07 19:25:23 +02:00
fb1d099ec1 refactor: remove unused back navigation handlers in TV player UI 2026-04-07 18:53:42 +02:00
bcbad6f262 Refine TV player remote control key mappings
Update directional key behavior to separate seeking, showing controls, and
toggling playback. Left/Right now seek without showing controls, while
Up/Down now only show controls instead of toggling playback.
2026-04-07 18:51:25 +02:00
8a6c745332 fix: reduce memory cache size percentage in TvActivity 2026-04-07 18:51:07 +02:00
985fdec3a5 feat: add play/pause toggle on key press in TV player screen 2026-04-07 16:58:18 +02:00
b91a8a81e8 Fix TV detail playback single-press behavior 2026-04-06 20:38:05 +02:00