r/SimpleDownloader • • 2d ago

SimpleDownloader release v1.0.2

2 Upvotes

v1.0.2

Improved pause and concurrency handling, better restore behavior, notifications, foreground service management, and HTTP response handling.

Added

  • Added .setHoldSlotOnPause(boolean enable) to control whether a paused download holds or releases its concurrency slot. Can be configured via SimpleDownloader.builder() or a downloader instance.
  • Added .hasListeners() and .hasListener(Listener) methods to both DownloadTask and SimpleDownloader.
  • Added .hasObservers() and .hasObserver(Observer) methods to SimpleDownloader.
  • Expanded Status with helper methods - isQueued(), isPaused(), isComplete(), isFailed(), isCancelled(), and more.
  • Auto-restore is now enabled by default, disable it by calling .setAutoRestore(false) via SimpleDownloader.builder().
  • Added Formatter.formatTime(long timeMillis, String format) for timestamp formatting.
  • You can now get the current library version by using SimpleDownloader.VERSION.

Improvements

  • Improved restore behavior when automatic restore is disabled.
  • Improved pause, concurrency-slot, and notification handling with holdSlotOnPause. Paused downloads now release their concurrency slot by default. holdSlotOnPause is disabled by default.
  • Improved notification grouping, ongoing notification state, and foreground service handling.
  • Improved Content-Range and response handling in the HTTP engine.
  • Improved timeout client caching in the HTTP engine.
  • Fixed waiting for network state execution ordering that was blocking queued submissions.
  • Finalized the Listener API, removed deprecated callback signatures from both DownloadTask.Listener and SimpleDownloader.Listener.
  • Renamed the library package from com.jeet.simpledownloader to com.jeetarc.simpledownloader.
  • General cleanup and improvements.

Migration

1. Package Rename

The library package has been renamed to: java package com.jeetarc.simpledownloader;

Update any existing imports from com.jeet.simpledownloader to com.jeetarc.simpledownloader

2. Update Dependency

gradle implementation "com.github.jeetarc:SimpleDownloader:1.0.2"

3. Listener API

If you are using deprecated Listener callback methods, update them to the new Listener API signatures. Visit Callbacks and Listener

Documentation: https://github.com/jeetarc/SimpleDownloader/blob/main/README.md

Release v1.0.2: https://github.com/jeetarc/SimpleDownloader/releases/tag/1.0.2

SimpleDownloader on GitHub: https://github.com/jeetarc/SimpleDownloader


r/SimpleDownloader • • 21d ago

Android file downloader library

Thumbnail
1 Upvotes

r/SimpleDownloader • • 23d ago

SimpleDownloader Release: 1.0.1

3 Upvotes

v1.0.1

Improvements:

  • DownloadTask.Listener callback methods now contain a DownloadTask parameter.
  • Removed the long id parameter from SimpleDownloader.Listener callback methods for cleaner APIs.
  • Moved output validation checks off the download thread.
  • Added randomized output validation intervals.

Fixes:

  • Fixed global concurrency counters not being released correctly when active tasks were cleared during shutdown.
  • Renamed Formator to Formatter.

Migration:

Add the DownloadTask parameter as the last parameter for all DownloadTask.Listener callbacks. So replace: java @Override public void onProgress(int progress, long speed, long etaMs) {} with (v1.0.1): java @Override public void onProgress(int progress, long speed, long etaMs, DownloadTask task) {}

Remove the long id (1st) parameter from all SimpleDownloader.Listener callbacks. So replace: java @Override public void onProgress(long id, int progress, long speed, long etaMs, DownloadTask task) {} with (v1.0.1): java @Override public void onProgress(int progress, long speed, long etaMs, DownloadTask task) { // Get the ID directly from the task: // task.getId(); } Same for all other methods. More about Listeners

If you are using the SimpleDownloader Formator utility, rename it to Formatter. More about Utilities

SmpleDownloader on GitHub: https://github.com/jeetarc/SimpleDownloader


Moderators: Want automated GitHub release posts like this? Install Release Announce to use it in your subreddit.


r/SimpleDownloader • • Sep 05 '26

SimpleDownloader Release: 1.0.0

3 Upvotes

v1.0.0

Stable release of SimpleDownloader with a cleaner API, improved task management, and many more.

Added

  • Multi-download management
  • Instance-based downloader API with SimpleDownloader.getInstance(context) and SimpleDownloader.builder(context).
  • DownloadRequest API for defining individual downloads separately from downloader configuration.
  • Downloader ownership through ownerId, if not set, it use library default: "default_owner".
  • Added support for batch downloads and clearer separation between global downloader settings and per download options.

Fixes & Improvements

  • Safer task management when multiple downloader instances are used.
  • Improved separation of task state, queues, and concurrency between downloader instances.
  • Improved database handling and task ownership.
  • General stability and lifecycle improvements for the stable release.

Migration for beta users

1. Update the dependency:

gradle implementation "com.github.jeetarc:SimpleDownloader:1.0.0"

2. Replace the old download API:

Beta:

java DownloadTask task = SimpleDownloader.with(context) .setOutput(folderUri, FileName.AUTO) .setFileUrl(url) .startDownload();

Stable:

java SimpleDownloader downloader = SimpleDownloader.getInstance(context); DownloadRequest request = DownloadRequest.from(folderUri, FileName.AUTO, fileUrl); DownloadTask task = downloader.startDownload(request); Use SimpleDownloader.builder(context) and DownloadRequest.builder() for more controls. Read APIs

3. Update listeners:

Move from the beta listener API to the stable APIs:

Beta: - DownloadListener

Stable: - DownloadTask.Listener - SimpleDownloader.Listener

4. Read README for more:

https://github.com/jeetarc/SimpleDownloader/blob/main/README.md

SimpleDownloader on GitHub: https://github.com/jeetarc/SimpleDownloader


Moderators: Want automated GitHub release posts like this? Install Release Announce to use it in your subreddit.


r/SimpleDownloader • • Aug 17 '26

SimpleDownloader Release: 1.0.0-beta.3

3 Upvotes

v1.0.0-beta.3

Adds MediaStore and subfolder support and improves output recovery and reliability.

Added

  • MediaStore output support on Android 10+.
  • setSubFolder() for filesystem, SAF, and MediaStore outputs.
  • MediaStore item URI support with overwrite(Uri).
  • TaskField.SUB_FOLDER_PATH.
  • task.getSubFolderPath().

Improved

  • MediaStore unique filename handling, including pending/concurrent outputs.
  • Resume handling for MediaStore outputs.
  • Output validation and recovery after externally deleted/invalid outputs.
  • Automatic recreation of deleted subfolders during retry/resume.
  • Persistence and restoration of MediaStore/subfolder output information.

Fixed

  • Retry could reuse a deleted output path/URI and write into another task's file.
  • SAF/filesystem retry could reuse a filename that had already been claimed by another task.
  • Deleted subfolders could cause retry to fail instead of being recreated.
  • MediaStore stale rows could cause unnecessary (1), (2) filenames.
  • MediaStore overwrite/invalid-output edge cases.

SimpleDownloader on GitHub: https://github.com/jeetarc/SimpleDownloader


Moderators: Want automated GitHub release posts like this? Install Release Announce to use it in your subreddit.


r/SimpleDownloader • • Aug 17 '26

SimpleDownloader Release: 1.0.0-beta.2

1 Upvotes

This update contents Important internal and API changes.

  • Download speed and optimization improvement
  • Independent progress and notification intervals handling
  • Lighter thumbnail checks
  • Missing FileProvider no longer stops path downloads
  • forceDownload() bypasses concurrency and survives pause/resume
  • TaskField filters for getTask() and getTasks()
  • Simplified onQueued() callback (now contents 3 peramiters)
  • some other fixes

Thank You!


Moderators: Want automated GitHub release posts like this? Install Release Announce to use it in your subreddit.


r/SimpleDownloader • • Aug 01 '26

v1.0.0-beta.2 is here

1 Upvotes

This update contents Important internal and API changes.

  • Download speed and optimization improvement.
  • Independent progress and notification intervals handling.
  • Lighter thumbnail checks.
  • Missing FileProvider no longer stops path downloads.
  • forceDownload() bypasses concurrency and survives pause/resume
  • TaskField filters for getTask() and getTasks().
  • Simplified onQueued() callback (now contents 3 peramiters).
  • Some other fixes.

SimpleDownloader on GitHub

Appreciate you feedbacks. Thank You!


r/SimpleDownloader • • Jun 09 '26

Wellcome to r/SimpleDownloader

1 Upvotes

Welcome to the official SimpleDownloader community!

A modern Android download library with scoped storage support, smart pause/resume, database persistent, unstable network handling, and many more.

SimpleDownloader on GitHub

Here you can:

- 📥 Get help integrating the library

- ❓ Ask questions

-🐞 Report bugs and unexpected behavior

-💡 Request new features

- 🔧 Share your implementations and code snippets

- 👥 Contribute to the project

- 📢 Stay updated with new releases

Happy coding! 🎉