- Introduced a new `IntegrationsSettingsPage` to manage TMDB, MDBList, and Trakt integrations.
- Updated `SettingsNavigationRow` to support both `ImageVector` and `Painter` for icons.
- Created `IntegrationLogo` enum to represent different integration logos.
- Implemented platform-specific logo handling in `IntegrationLogoPainter` for Android and iOS.
- Added new drawable resources for MDBList logo in both Android and common resources.
- Refactored `SearchScreen` to improve query handling and search history recording.
- Updated TraktAuthState to replace device and user codes with pending authorization fields.
- Modified TraktAuthUiState to remove polling fields and include pending authorization timestamp.
- Introduced TraktBrandAsset enum for brand assets.
- Implemented traktBrandPainter function for Android and iOS to provide appropriate brand images.
- Added SVG and XML resources for Trakt brand assets (logo wordmark and favicon).
- Updated iOS app to handle URL callbacks for Trakt authentication.
- Added TraktAuthBridge to manage authentication callback handling.
- Introduced MetaExternalRating data class to hold external ratings.
- Updated MetaDetails to include externalRatings list.
- Implemented MdbListMetadataService for fetching ratings from MDBList API.
- Created MdbListSettings and MdbListSettingsRepository for managing settings.
- Added UI components for displaying external ratings in DetailMetaInfo.
- Integrated MDBList settings into the settings screen with options for enabling/disabling and configuring providers.
- Updated ProfileRepository to handle MDBList settings changes.
- Enhanced error handling and caching for MDBList API requests.
- 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.
- 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.