-
Release 1.0.61 Stable
released this
2026-02-02 15:37:44 +08:00 | 0 commits to main since this releaseChangelog
All notable changes to RoxyIPT will be documented in this file.
[1.0.61] - 2026-01-24
✨ New Features
Playlist Refresh Status Display
- Transparency Dashboard: Added a new "Playlist Refresh Status" card in Settings → General that shows:
- Last Refresh: Human-readable time ("2 hours ago") plus exact timestamp
- Next Refresh: Calculated next refresh time or "Pending (on next app launch)" if overdue
- Color-Coded Status: Green for recent refreshes, yellow for never/overdue, blue for scheduled
- Active Playlist Only: Only displays when an active playlist is selected, showing relevant information for the current playlist.
Favorites Drag-and-Drop Reordering
- Interactive Reordering: Restored drag-and-drop functionality in Favorites page allowing users to reorder favorite channels, movies, and series.
- Grip Handle: Visual grip icon appears on hover in the top-left corner of each card, indicating draggable items.
- Smooth Animations: Drag animations with opacity change during drag operations for better visual feedback.
- Persistent Order: Reordered favorites are immediately saved to Zustand store and persisted across app restarts.
🐛 Bug Fixes
Playlist Auto-Refresh System Overhaul
- Persistent Timestamp Tracking: Fixed playlist auto-refresh that only worked if the app stayed open continuously (e.g., 24 hours). The app now stores a
lastRefreshedtimestamp for each playlist and checks it on app launch, automatically refreshing if the interval has passed. - Launch-Time Validation: Auto-refresh now triggers immediately on app launch if the playlist is overdue for refresh, instead of relying solely on
setIntervaltimers that reset when the app closes. - Smart Logging: Added diagnostic logging showing when playlists were last refreshed and when the next refresh will occur.
Dashboard Content Type Status Display
- Accurate Disabled State: Fixed Dashboard tiles (Live TV, Movies, Series) showing "Loading..." when content types were disabled in playlist settings. Now correctly displays "Disabled" with a red indicator when
includeLive,includeVOD, orincludeSeriesis set to false. - Visual Consistency: All three main tiles now follow the same pattern for showing enabled/disabled states.
Theater Mode Aspect Ratio Fix
- Maintain Aspect Ratio: Fixed theater mode stretching video content to fill the screen. Theater mode now uses
objectFit: 'contain'to maintain proper aspect ratio with letterboxing when needed. - No Distortion: Videos display in their original aspect ratio without stretching or distortion in theater mode.
🚀 Performance Improvements
EPG Loading Optimization
- Removed Channel Limit: Eliminated the 150-channel safety limit that was blocking EPG loads for larger categories.
- Category-by-Category Loading: EPG data loads only for the currently selected category, not all channels at once. Switching categories loads EPG on-demand.
- Indexed SQLite Queries: EPG cache queries use indexed lookups on
playlist_idandchannel_idfor fast retrieval (< 100ms for 100+ channels). - Fuzzy Matching Safeguard: Fuzzy channel name matching only runs if fewer than 50 channels are unmatched, preventing large-scale scanning.
Downloads
- Transparency Dashboard: Added a new "Playlist Refresh Status" card in Settings → General that shows: