- Implemented `getChannelItemByNumber` utility function to retrieve channels by their number.
- Enhanced `StalkerLiveStreamLayoutComponent` and `LiveStreamLayoutComponent` to handle remote control commands for channel selection and volume adjustments.
- Updated typings to include new remote control commands and status updates.
- Refactored `RemoteControlComponent` to manage numeric input for channel selection and volume control actions.
- Improved UI for remote control with new volume and channel navigation features.
- Added service methods for volume up, down, and mute toggle in `RemoteControlService`.
This PR brings the Turkish localization to full parity with the application's current state.
### 🔄 Synchronization & Updates
- **Complete Sync:** Added ~165 missing translation keys, achieving 100% coverage.
- *New Features Covered:* Xtream Codes management, Stalker Portal settings, EPG status messages, Download manager states, and Welcome screen onboarding.
- **Correction:** Updated remote control port description to reflect the correct default port (`8765`), fixing a legacy mismatch.
- **Structure:** Ensured the translation file strictly follows the hierarchical key order of the source configuration.
- Added new component for live stream layout with sidebar and content area.
- Integrated playlist switcher and category view for better navigation.
- Implemented channel list with loading indicators and favorite functionality.
- Added EPG (Electronic Program Guide) support for channels with loading and pagination.
- Enhanced styles for responsive design and improved user experience.
- Updated routing to use the new live stream layout component.
- Modified stalker store to handle EPG fetching and search functionality.
- Introduced new actions in the StalkerPortalActions enum for EPG operations.
Add a new "Custom order" sort option that allows users to manually
reorder playlists via drag-and-drop. When this sort mode is active,
drag handles appear in front of each playlist item.
- Add SortBy.CUSTOM enum value to SortService
- Add custom order button to filter-sort-menu
- Add isDraggable input and cdkDrag support to PlaylistItemComponent
- Enable cdkDropList in RecentPlaylistsComponent when custom sort active
- Add translation key for custom order option
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace @Output() decorator with EventEmitter with modern Angular
signal-based output() function for consistency with other components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed from direct signal assignment to computed() wrapper to ensure
consistent reactive pattern and clearer intent.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed toggleFavorite() to emit the desired new state (!isFavorite)
instead of the current state. Updated all parent handlers to match
the new semantic where isFavorite means "user wants it to be a favorite".
This makes the API more intuitive - consumers can now apply the payload
directly without inverting the boolean.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The goBack() method was both emitting backClicked and calling
location.back(), causing double navigation when parent components
also handled backClicked with their own location.back() call.
Now goBack() only emits the event, consistent with stalker-series-view.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add check for macAddress and portalUrl to ensure only Stalker playlists
are synced to the SQLite database
- Normalize playlist._id to string before passing to IPC handlers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add o_name (original title) field to Stalker VOD interfaces
- Prefer o_name over name in adapters and grid list display
- Add playback position tracking for Stalker VOD content
- Support resume playback from last position in vod-details
- Add real-time position updates via IPC listener
- Add progress indicators for Stalker VOD items in grid view
- Add debug logging for VOD series seasons resource
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Only reset page to 0 when category actually changes in setSelectedCategory
- Preserve current page when navigating back from VOD/series details
- Sort downloads list by createdAt descending (newest first)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert relative screenshot_uri URLs to absolute URLs using portal base URL
- Fix series detection logic to distinguish between embedded series data
(vclub/Ministra with episode numbers) vs items needing API fetch
- Only set is_series flag when seasons need to be fetched from API
- Items with embedded series array now correctly use vodWithSeries mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>