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`.
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.
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.
- 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
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.
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.
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.
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.
- 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.
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>