- Introduced a new toggle for trailers in TMDB settings.
- Updated TMDB metadata service to fetch and handle trailers.
- Enhanced TMDB settings repository and storage to persist trailer preferences.
- Implemented trailer playback resolver for iOS, integrating YouTube extractor.
- Modified player bridge to support loading video with audio.
- Added necessary data classes and methods for trailer management and playback.
- Updated PlayerEpisodesPanel, PlayerOverlays, PlayerSourcesPanel, SubtitleModal, and SubtitleStylePanel to use MaterialTheme.colorScheme for consistent theming.
- Replaced hardcoded colors with dynamic colors from the MaterialTheme, enhancing adaptability to different themes.
- Improved accessibility and visual consistency across various player components by ensuring text and background colors align with the current theme.
- Added clear() method to PlayerLaunchStore for resetting launch state.
- Refactored PlayerScreen to manage active playback state with new variables for source and episode details.
- Introduced PlayerSourcesPanel for displaying and selecting available streams.
- Implemented PlayerStreamsRepository for managing stream fetching and state for sources and episodes.
- Added reset() method to SearchRepository for clearing search state.
- Enhanced various repositories (PlayerSettingsRepository, WatchedRepository, etc.) with clearLocalState() methods for resetting their states.
- Created PlatformLocalAccountDataCleaner for iOS to handle local account data cleanup.
- Added `DeviceLanguagePreferences` for Android and iOS to retrieve preferred language codes.
- Enhanced `PlayerSettingsStorage` to save and load preferred audio and subtitle languages.
- Updated `PlayerSettingsRepository` to manage audio and subtitle language preferences.
- Modified `PlayerScreen` to apply preferred audio and subtitle selections.
- Introduced `PlaybackSettingsSection` in `PlaybackSettingsPage` for user to select audio and subtitle languages.
- Added language normalization and matching functions to support language preference logic.
- Updated `SubtitleTrack` model to include `isForced` property for subtitle tracks.
- Implemented SubtitleModal composable for displaying subtitle options.
- Created SubtitleRepository to handle fetching and managing addon subtitles.
- Added SubtitleStylePanel for customizing subtitle appearance and settings.
- Updated PlayerEngine for iOS to support subtitle track management
- Introduced PlayerLayout.kt to define layout metrics based on screen width.
- Created PlayerOverlays.kt for various overlay components including OpeningOverlay, GestureFeedbackPill, PauseMetadataOverlay, and ErrorModal.
- Refactored PlayerScreen.kt to utilize new overlay and layout components, improving code organization and readability.