Releases: AryanMir15/cloudcache
TMDB Integration and Episode Loading Performance Optimization
TMDB Integration
- Complete TMDB API Integration: Added comprehensive TMDB API service with genre caching, language support, and advanced filtering capabilities
- Advanced Filtering System: Implemented TMDB-specific filter dialog with support for genres, release years, countries, streaming providers, and content ratings
- Keyword Search: Added keyword-based content discovery with automatic translation to TMDB IDs for precise filtering
- Vote Count Filtering: Implemented minimum vote count filters to improve content quality and relevance
- Enhanced Sort Options: Added comprehensive sorting capabilities including popularity, rating, release date, revenue, and alphabetical ordering
Performance Enhancements
- Episode Loading Optimization: Reduced library loading time from 2 seconds to 5 milliseconds through advanced caching implementation
- O(1) Episode Lookup: Implemented indexed cache structure for instant episode access using parent-child relationships
- Memory Efficiency: Optimized cache management to reduce memory footprint and improve app responsiveness
User Interface Improvements
- TMDB Filter Dialog: Redesigned filter interface with dedicated TMDB-specific options and improved user experience
- Real-time Updates: Enhanced download status indicators with immediate visual feedback
- Metadata Management: Improved metadata provider selection and refresh functionality with original provider prioritization
Bug Fixes
- Download Status Updates: Fixed issues with download progress indicators not updating correctly when navigating away from screens
- Episode Organization: Resolved dub/sub episode misclassification problems in the library through intelligent status inference
- Search Functionality: Fixed search result selection issues across different provider configurations
.
Add Auto-Download System, Library Poster Controls, and Major UI Improvements
New Features
Auto-Download System
- Automatic Episode Downloads: New episodes for subscribed shows download automatically
- Smart Retry System: Configurable retry attempts (0-10) for failed downloads
- Network Controls: Choose which networks to use for auto-downloads (WiFi/Data/Both)
- Storage Checks: Prevents downloads when storage is insufficient
Library Poster Size Control
- Direct Column Control: Set exact number of poster columns (1-10) instead of scale-based sizing
- Improved Settings: Clear "columns" terminology instead of "size" for better understanding
Enhanced Skip Features
- Anime Skip Integration: Support for TheIntroDB skip API
- Offline Filler Database: Better tracking of filler episodes for offline viewing
UI Enhancements
Smart Toast Positioning
- Keyboard-Aware: Toast messages appear at top when keyboard is visible, bottom otherwise
- Better Visibility: Increased margin and elevation to ensure toast is always visible
Improved Download Settings
- Reorganized Preferences: Better categorized download settings
- Professional Wording: Clearer labels and descriptions
Subtitle Selection
- Better UX: "No Subtitles" option moved to bottom for easier access
Bug Fixes
Downloads & Auto-Download
- Fixed Retry Bug: Can now set 0 retry attempts (previously forced minimum of 1)
- Download Playback: Fixed playback issues in continue watching
- Header Issues: Removed problematic default headers from downloads
Player & Navigation
- Player State: Fixed STATE_IDLE issues and gesture handling
- Intent Launches: Fixed app launching problems
- Account Editing: Fixed editing accounts from main screen
Performance & Stability
- Plugin Loading: Fixed concurrent plugin loading crashes
- Search Navigation: Fixed ConcurrentModificationException
- Livestreams: Fixed livestream playback issues
Merged from Main Branch
Build System Updates
- AGP 9.0+: Migrated to Android Gradle Plugin 9.0
- Gradle 9.4.1: Updated build tools
- Media3: Upgraded video player components
- Material Components: Updated UI components
Security & Validation
- Plugin Hash Validation: Added security checks for plugins
- Permission Checks: Enhanced notification permissions
- Configuration Cache: Improved build performance
Extractors & Sources
- New Sources: Added Playmogo (doodstream mirror) and updated Voe URLs
- JWPlayer: Simplified extraction logic
- NewPipeExtractor: Updated to v0.26.0
Device Support
- TV Improvements: Better landscape orientation and pillarboxing
- Screen Wake: Don't keep screen on when video ends
- Translations: Added Arabic and Albanian translations
Add 3-State Filters, Download Scan Info Tab, Navigation Fixes, and UI Improvements
New Features
3-State Checkbox Filters for AniList
- 3-state checkboxes (unchecked, include, exclude) for genres and tags
- Red box with white X for exclude state
- AniList API integration with
genre_not_inandtag_not_insupport - Set Default and Reset buttons for saving/clearing filter presets
- NSFW toggle in filter dialog
Download Scan Info Tab
- Info tab for Scan For Downloads in settings
- Confirmation dialog before scanning
- Enhanced user control over download scanning
Voice Search
- Voice search button in Browse tab
- Speech recognition for hands-free searching
UI Enhancements
Filter Dialog
- Set Default with confirmation dialog (immediate apply on confirm)
- Removed redundant Reset Default button
- Styled confirmation dialog with BlackButton/WhiteButton
- Consistent subtext styling across all options
- Smooth checkbox state transitions
Browse Tab
- Backstack navigation support (now returns to Browse instead of Home)
- Improved top bar hide/show animations
- Dynamic spacing adapts to top bar height
- Refined scroll behavior and thresholds
Bug Fixes
- Fixed search bar auto-focus after genre filter redirect
- Fixed back button navigation (returns to Browse instead of Home)
- Fixed Clear button count display (shows 0 instead of 0/0)
- Fixed scroll to top after Set Default reload (prevents hollow space)
- Fixed PreferenceManager import (androidx.preference)
- Fixed adapter state synchronization for checkboxes
- Fixed checkbox click handler conflicts
- Fixed SearchFragment adapter state clearing
- Fixed download playback in continue watching
- Removed Music format from filter options (only had one entry)
- Improved metadata swap functionality with provider selection
Add 3-State Filters, Download Scan Info Tab, and UI Improvements
New Features
3-State Checkbox Filters for AniList
- 3-state checkboxes (unchecked, include, exclude) for genres and tags
- Red box with white X for exclude state
- AniList API integration with
genre_not_inandtag_not_insupport - Set Default and Reset buttons for saving/clearing filter presets
- NSFW toggle in filter dialog
Download Scan Info Tab
- Info tab for Scan For Downloads in settings
- Confirmation dialog before scanning
- Enhanced user control over download scanning
Voice Search
- Voice search button in Browse tab
- Speech recognition for hands-free searching
UI Enhancements
Filter Dialog
- Set Default for saving filter preferences
- Consistent subtext styling across all options
- Smooth checkbox state transitions
Browse Tab
- Backstack navigation support
- Improved top bar hide/show animations
- Dynamic spacing adapts to top bar height
- Refined scroll behavior and thresholds
Bug Fixes
- Fixed PreferenceManager import (androidx.preference)
- Fixed adapter state synchronization for checkboxes
- Fixed checkbox click handler conflicts
- Fixed SearchFragment adapter state clearing
Added Dedicated Browse Tab, Smooth Scroll, Simkl Login Fix
New Features
Dedicated Browse Tab
- Added new Browse tab for AniList anime discovery
- Browse by genres, tags, year, season, format, and popularity
- Filter chips appear as horizontal scrollable rows when filters are selected
- Remove individual filters by clicking the X on chips
- Filter dialog with accordion-style sections for easy navigation
Improved Scroll Experience
- Top bar automatically hides when scrolling down
- Top bar reappears when scrolling up
- Smooth animations for hide/show transitions
- Floating top bar design doesn't block content
UI Enhancements
- "No more results" shows as a fade-in/out toast message
- Dynamic spacing adapts to top bar height for consistent layout across devices
Bug Fixes
Simkl Login
- Fixed Simkl login authentication issue
Filter Refresh
- Fixed filter changes not refreshing results properly
- Removing filters now correctly reloads results instead of appending
- Fixed page reset when changing filters
Added Anilist Genre Filter, Blurr Episodes
New Features
Spoiler Prevention Mode
- Added configurable spoiler prevention mode to protect against spoilers by hiding episode thumbnails and details
- Five modes available:
- Disabled: No spoiler protection
- Replace with Poster: Show poster image instead of episode thumbnails
- Blur Thumbnails: Blur episode thumbnails (Android 12+ only)
- Added confirmation dialog when enabling spoiler prevention
- Setting available in General Settings
AniList Filter Enhancement
- Added comprehensive AniList filtering to QuickSearch
- Filter by genres, tags, year, season, format, and sort options
- Improved UI with optimized layout:
- Genre and tags chips combined into single horizontally scrollable row
- Filter labels (Year, Season, Format, Sort) with auto-sizing text (10sp-14sp) to prevent distortion on small screens
- Reduced padding and minWidth for better fit on phone screens
- Filter icon beside search bar to open filter dialog
- Combined search with AniList filters - search queries now work alongside selected filters
Bug Fixes
Home Screen Display Issues
- Fixed "Watching" section not displaying
- Fixed "Continue Watching" section not displaying
Navigation Issues
- Fixed AniList result clicks causing navigation to redirect to search tab
- Fixed navigation tabs becoming inaccessible after AniList navigation
- Optimized search fragment state management to prevent repeated redirects
Episode Check, Metadata Improvements, Enhanced Local Library
Scan for Downloads, Metadata Swapping, Cache-Heavy Library Rewrite, Library Poster Size Slider, Offline Player Enhancements
New Features:
Scan for Downloads: Find and add video files from your device folders with smart file matching
Library poster size slider: Adjust poster sizes in your library
Metadata Enhancements:
Swap metadata from different sources (plot, poster, cast, etc.) to build your perfect library entry
Logo/banner support for show artwork
Cache & Downloads:
Cache-heavy library rewrite for instant loading and premium experience
Download status persistence across app restarts
Better cache management with individual entry deletion
Player Improvements:
Offline player: Added next episode button, skip intro (85s jump), and sidebar episode list
Better support for Storage Access Framework (SAF) files
Retry logic for failed downloads and streams
Improved video playback from content URIs