- 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.
- Improved logging for pull operations in SyncManager, detailing the authentication state and pull sequence.
- Refactored AddonRepository to streamline addon retrieval from the server, including migration of local addons if the server returns no results.
- Added timeout handling for waiting on addon manifests in WatchProgressRepository to prevent indefinite blocking.
- Updated MainAppContent to support profile switching.
- Added onSwitchProfile callback to SettingsScreen and related components.
- Introduced a new "Switch Profile" option in the settings menu for easier profile management.
- Improved watch progress synchronization by resolving remote metadata for entries.
- Added AuthRepository for handling user authentication states and actions.
- Implemented AuthScreen for user sign-in and sign-up functionality.
- Introduced Profile management with ProfileEditScreen and PinEntryDialog for secure access.
- Enhanced synchronization of user profiles and library data with Supabase.
- Created necessary data models and network providers for seamless integration with Supabase services.
- Introduced ContinueWatchingPreferencesStorage for managing user preferences.
- Added ContinueWatchingPreferencesRepository to handle loading and saving preferences.
- Created UI components for Continue Watching settings, including visibility toggle and style selection.
- Implemented new settings pages for Appearance and Continue Watching.
- Updated MainActivity to initialize ContinueWatchingPreferencesStorage.
- Enhanced HomeScreen to display Continue Watching section based on user preferences.
- Refactored NuvioShelfSection to allow customizable item spacing.
- Added new styles for Continue Watching cards: Wide and Poster.
- 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.
- Added navigation support using Jetpack Compose Navigation.
- Created MetaDetailsScreen to display detailed information about media items.
- Introduced MetaDetailsRepository for fetching and managing media details.
- Added components for displaying action buttons, cast, and meta information.
- Updated HomeScreen and HomePosterCard to handle poster click events.
- Integrated new UI components into the existing app structure.
- Added platform-specific insets for better layout handling.
- Updated Gradle dependencies for navigation and serialization support.