Commit Graph

266 Commits

Author SHA1 Message Date
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
9906d473c5 refactor: reduce maxLines for improved text display in PlayerQueuePanel 2026-04-25 22:45:36 +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
3ae1425eba refactor: Add lazy list state to sections for automatic scrolling to top 2026-04-22 18:31:57 +02:00
d0e5e978be Refactor app navigation to use Navigation3
Integrate `navigation3` into `AppScreen` to manage tab transitions and
backstack state. Replaced manual tab state management with `NavDisplay`
and `NavBackStack`, and added horizontal slide animations for switching
between Home, Libraries, and Downloads screens.
2026-04-20 20:23:40 +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
a9b0f771f8 refactor: Use MediaUiModel instead of SuggestedItem 2026-04-20 19:51:13 +02:00
18e352eb1e refactor: change background color of PlayerScreen to black 2026-04-20 18:13:46 +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
a0086c6f62 refactor: rename imageUrl to primaryImageUrl for consistency across components 2026-04-19 20:08:41 +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
18844fcd38 Remove Play Store logo assets 2026-04-15 21:23:47 +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
1e6c0e838e refactor: reorganize package structure for episode, movie, and series screens 2026-04-14 19:57:06 +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
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
9e8772467c Improve player error reporting 2026-04-06 20:20:44 +02:00
0011420bf2 feat: add initial focus management and media metadata for TV home screen
Introduce a `FocusableItem` interface to unify media item properties (ID, type, text, and images) across `ContinueWatchingItem`, `NextUpItem`, and `PosterItem`.

Key changes:
- Implement automatic initial focus on the first available item in `TvHomeContent`.
- Add `onMediaFocused` callbacks to TV sections and cards to track active items.
- Standardize image URL generation and metadata access in home models.
- Clean up unused previews in `HomeScreen`.
- Add UI tests for TV home content focus behavior.
2026-04-05 17:38:19 +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
0df79f55a1 refactor: adjust dimensions for ContinueWatchingCard and SuggestionsSection for improved layout 2026-04-01 15:44:24 +02:00
ce539a1a5a Refine SuggestionsSection layout for better scaling
Adjusts the `HorizontalPager` to use a fixed page size and consistent horizontal padding. This ensures the suggestion cards have a predictable width on wider screens.
2026-03-31 23:50:19 +02:00
b08b74bab3 Replace HomeAvatar with standard Icon and update top bar layout
- Remove HomeAvatar.kt and replace usages with standard Material Icons
- Update search and profile button sizes to 50dp and icon sizes to 30dp
- Add spacing between top bar actions in HomeTopBar
2026-03-31 23:38:07 +02:00
6852e0b13a Update app branding and home screen top bar
Replaces the previous application icon with a new version (`purefin_logo_2`) across all density buckets and updates the `AndroidManifest.xml` accordingly.

The `HomeTopBar` is redesigned to feature a new brand-aligned layout:
- Replaced the generic "Watch now" title and subtitle with the Purefin logo and stylized "PureFin" text.
- Added a `PurefinLogo` component to render the raw logo resource.
- Updated the search button styling to use theme-based secondary colors.
2026-03-31 23:31:48 +02:00
72f6a37203 refactor: update MediaResumeButton to use white color for button text 2026-03-31 22:29:45 +02:00
c85767cf25 refactor: remove MediaPlayButton component as it is unused 2026-03-31 22:28:51 +02:00
8563b41111 Refactor media screens to use a unified hero section with gradient overlays
Moved title, metadata chips, and hero images into new `MediaHeroSection`, `EpisodeHeroSection`, and `SeriesHeroSection` components across Movie, Episode, and Series screens. This change:
- Increases hero section height to 40% of the screen.
- Adds a vertical gradient overlay to the hero image to improve text legibility.
- Layers title and metadata directly over the hero section instead of placing them in the scrollable content body.
- Cleans up unused imports and experimental annotations in component files.
2026-03-31 22:27:52 +02:00
74c532140e feat: auto-scroll to first page on SuggestionsSection load 2026-03-31 19:41:34 +02:00
e8938a9290 refactor: remove redundant Text component in SuggestionCard 2026-03-31 19:41:27 +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
f2759b271e Refine home screen card styling and visual hierarchy
Updated various home screen components (`ContinueWatchingCard`, `HomeBrowseCard`, `NextUpCard`, `HomeSearchResultCard`, etc.) to simplify their appearance and improve readability:

- Removed `tonalElevation` from multiple Surface containers.
- Replaced `surfaceVariant` backgrounds and `onSurfaceVariant` text colors with `surface` and `onSurface` for better contrast.
- Removed the thin border from `HomeBrowseCard`.
- Darkened the gradient overlay on `HomeFeaturedCard` for better text legibility and adjusted the progress bar padding.
2026-03-31 12:16:48 +02:00
4455640142 Refactor home composables into subpackages 2026-03-31 11:58:57 +02:00
0e1682fd16 Refactor home screen UI and top bar components
- Replace `HomeDiscoveryTopBar` with a simpler `HomeTopBar` using `TopAppBar`.
- Introduce `DefaultTopBar` as a reusable component with integrated search and profile actions.
- Update `HomeScreen` and `LibrariesScreen` to use the new top bar implementations.
- Simplify `HomeContent` background and remove `ContentBadge` from featured and next-up items.
- Refine `HomeSections` UI including library item shapes, padding, and text styling.
- Expose internal preview data functions for broader use in UI previews.
2026-03-31 11:29:02 +02:00
c815f53cff refactor: simplify color definitions using HSL for better readability 2026-03-31 11:01: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