Skip to content

CloudStream Mega Update: Reliable Disable, Multi-Select, Smart Sources, Folders, Auto-Maintenance, Unified Progress, and VPN Check#2867

Open
parabamol63 wants to merge 9 commits into
recloudstream:masterfrom
parabamol63:master
Open

CloudStream Mega Update: Reliable Disable, Multi-Select, Smart Sources, Folders, Auto-Maintenance, Unified Progress, and VPN Check#2867
parabamol63 wants to merge 9 commits into
recloudstream:masterfrom
parabamol63:master

Conversation

@parabamol63

Copy link
Copy Markdown

This update introduces seven major features designed to transform CloudStream into a more reliable, intelligent, and user-friendly media center.

✨ New Features

  1. Persistent "Disable" Mechanism: Users can now disable extensions instead of deleting them. Keeps files on-device; easy re-enable with one tap.
  2. Multi-Select & Batch Management: Long-press any extension to enter selection mode. Batch Download, Enable, Disable, Delete, or Move to Folder.
  3. Smart Source Priority (User-Adaptive): The player now learns and remembers your preferred source for every show and auto-prioritizes it.
  4. Unified "Continue Watching" (Cross-Provider): Progress and "Watched" status follow you across different extensions for the same show.
  5. Auto-Maintenance System: Periodic background "Health Checks" that safely auto-disables dead extensions to keep results clean.
  6. Extension Categories & Folders: Create custom folders (e.g., "Anime", "Live TV") to organize a messy extension list.
  7. Integrated ISP Block Warning: Smart error parsing during tests identifies likely blocks and suggests DNS/VPN fixes.
  8. Visual Health Badges: Color-coded status dots (Green/Yellow/Red) in extension lists for instant awareness.

🛠️ Technologies Added/Improved

  • Android WorkManager for battery-efficient background maintenance.
  • Persistent State Management via DataStoreHelper for global mapping.
  • Atomic State Synchronization for thread-safe batch processing.
  • Adaptive UI with HorizontalScrollView and dynamic toolbars.

…s, Folders, Auto-Maintenance, Unified Progress, and VPN Check

@fire-light42 fire-light42 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Read our AI Policy https://github.com/recloudstream/cloudstream/blob/master/AI-POLICY.md
  2. Writing a pull request with many features makes the review process really hard, and as such each of these features should be a separate and small pull request.

parabamol63 and others added 8 commits July 6, 2026 06:21
The central error-handling utilities (safe, safeAsync, launchSafe,
safeApiCall, and the deprecated normalSafeApiCall/suspendSafeApiCall)
caught Throwable and turned any failure into null / a Failure resource.
This also swallowed CancellationException, breaking coroutine
structured concurrency: cancelling a job would be silently absorbed
(and even logged as an error) instead of propagating.

Rethrow CancellationException before the generic catch so cancellation
keeps propagating while genuine errors are still logged.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…n, harden WebView and Runtime.exec

- Move hardcoded TMDB API key from SearchSuggestionApi to BuildConfig
  (sourced from env var TMDB_API_KEY / local.properties tmdb.key)
- Change CS3IPlayer.ignoreSSL default from true to false so SSL
  certificate validation is enforced unless explicitly opted out
- SSLTrustManager: reject null/empty certificate chains, log when
  accepting unverified certificates
- WebViewResolver: cancel on SSL errors instead of blindly proceeding
- WebviewFragment RepoApi: block non-HTTPS repository URLs from the
  JavaScript interface
- Use Runtime.exec(String[]) array form instead of string form to
  prevent potential command injection in getprop and logcat calls

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…JsUnpacker, StringUtils)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…-utils

Refactor duplicated result UI code into shared helpers
…tests

test: add unit tests for least-covered library utils
fix: security hardening — remove hardcoded API key, fix SSL validation, harden WebView and exec calls
…cellation

Propagate CancellationException in core safe/launchSafe error helpers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants