- Implement `LibraryScreen` with a responsive grid layout for displaying library contents.
- Create `LibraryViewModel` to handle fetching items for a specific library via `JellyfinApiClient`.
- Integrate dynamic library navigation in `HomePage` by mapping Jellyfin user views to drawer navigation items.
- Add `Route.Library` and `Route.Login` to the navigation graph.
- Update `SeriesCard` and `SeriesViewModel` to adjust hero height and use backdrop images for episodes.
- Refactor `HomePageViewModel` to support library selection and rename episode selection logic for consistency.
- Enhance `PosterCard` with default colors and `PlayerActivity` with a black background.
- Remove redundant play button from `SeriesComponents`.
- Update `EpisodeScreenViewModel`, `SeriesViewModel`, and `HomePageViewModel` to use named parameters (`id`, `type`) when creating `ItemDto` for navigation routes.
- Move `PosterCard` from `HomeSections.kt` to a new standalone file `PosterCard.kt` in `hu.bbara.purefin.common.ui`.
- Refactor `PosterCard` layout from a `Box` to a `Column` for better text placement.
- Update text styling on `PosterCard` to limit to 1 line and adjust padding.
- Clean up code formatting and imports in `HomeSections.kt`.
- Implement back navigation and home redirection in `EpisodeScreenViewModel`, `MovieScreenViewModel`, and `SeriesViewModel`.
- Refactor `EpisodeScreen`, `MovieScreen`, and `SeriesScreen` to handle data fetching via `LaunchedEffect` and display a loading state.
- Create `PurefinWaitingScreen`, a custom animated loading component with pulsing icons and dots.
- Update `SeriesViewModel` to properly map episode data, including image URLs and unique identifiers.
- Add click listeners to `EpisodeTopBar`, `MovieTopBar`, `SeriesTopBar`, and `EpisodeCard` to support navigation between screens.
- Integrate the waiting screen into the `LoginScreen` flow during connection attempts.
- Fix image URL generation in `SeriesViewModel` to use the primary image type for episodes and backdrops for series.
- Implement `SeriesScreen`, `SeriesViewModel`, and associated UI components (`SeriesCard`, `SeriesHero`, etc.) for TV show details.
- Add `getSeasons` and `getEpisodesInSeason` methods to `JellyfinApiClient`.
- Refactor `Route` and navigation logic to use `ItemDto` (containing ID and `BaseItemKind`) instead of raw strings.
- Update `MovieScreen` and `EpisodeScreen` to accept `ItemDto` as a parameter.
- Enhance `PosterItem` and `ContinueWatchingItem` logic to handle parent IDs and correct image fetching for episodes and seasons.
- Add mock data for the series detail view.
- Remove redundant `MovieScreenNavigation.kt`.
- Add `BaseItemKind` type to `ContinueWatchingItem` model.
- Update `HomePageViewModel` to populate the item type.
- Implement click logic in `HomeSections` to navigate to movie or series details based on the item type.
- Create `EpisodeScreen` and `EpisodeCard` components with adaptive layouts for wide and narrow viewports.
- Implement `EpisodeScreenViewModel` to fetch "Next Up" episode data using the Jellyfin API.
- Add `EpisodeUiModel` and `CastMember` data classes for content representation.
- Develop custom UI components including `EpisodeHero`, `PlaybackSettings`, `CastRow`, and `EpisodeTopBar`.
- Define a dedicated color palette for the episode view in `EpisodeColors.kt`.
- Integrate navigation to the player activity from the play buttons.
- Add `id` field to `MovieUiModel` and populate it from the Jellyfin item.
- Update `PlayButton` in `MovieComponents` to launch `PlayerActivity` with the selected media ID.
- Integrate `MovieScreenViewModel` into `PlayButton` to access current movie data via `collectAsState`.
- Update Android Gradle Plugin to 8.9.1 and target SDK to 36.
- Integrate `androidx.navigation3` for Compose-based navigation management.
- Implement a centralized `NavigationManager` and `Route` system (supporting `Home` and `Movie` routes).
- Add a comprehensive Movie Details screen featuring hero images, synopsis, metadata chips, and cast lists.
- Refactor `HomePage` and related components into a dedicated `hu.bbara.purefin.app.home` package.
- Enhance `JellyfinApiClient` with methods to fetch item details and "next up" episodes.
- Update `PurefinActivity` to use `NavDisplay` for handling app navigation and backstack.
- Setup Hilt modules for providing navigation-related dependencies.
- Add Media3 UI, ExoPlayer, and Compose dependencies.
- Implement `PlayerActivity` with landscape orientation for video playback.
- Create `PlayerViewModel` to manage ExoPlayer lifecycle and media loading via Hilt.
- Define `VideoPlayerModule` to provide a configured `ExoPlayer` instance with tunneling and custom load control.
- Extend `JellyfinApiClient` to fetch media sources and video stream URLs.
- Update `ContinueWatchingCard` to launch `PlayerActivity` when the play button is clicked.
- Enforce portrait orientation for the main application and filter duplicate items in `HomePageViewModel`.
- Setup Hilt for dependency injection and KSP for annotation processing.
- Add DataStore for user session management with JSON serialization.
- Integrate Jellyfin SDK and create a basic `JellyfinApiClient`.
- Replace `MainActivity` with `PurefinActivity` featuring a login flow and a placeholder home screen.
- Implement custom UI components: `PurefinComplexTextField`, `PurefinPasswordField`, and `PurefinTextButton`.
- Update version catalog with new dependencies and downgrade SDK versions to 35.