Tonyofrancis Fetch Versions Save

The best file downloader library for Android

3.2.0

3 weeks ago

Version 3.2.0/ Androidx version 3.2.0

  • Android 14 compatibility, min SDK 16, AGP 8.2.0, Gradle 8.5, Kotlin 1.9.20. Thanks to @helloimfrog
  • Android SDK 34 and fixes of register receiver. Thanks to @Kutikov
  • Updated Gradle to 8.3.1, Kotlin Version, upgrade dependencies, and fixed sampleApp. Thanks to @vicajilau

3.0.12-release

3 years ago

Version 3.0.12/ Androidx version 3.1.6

  1. Download TotalBytes fixes. Thanks to @badrazizi
  2. OnCompleted not called in some instances.
  3. Fixed " A resource failed to call close" errors. Thanks to @Braxeo
  4. Fixed Pen Test issues: Thanks to @StuStirling
  5. Added new batch enqueue method. Thanks to @thib-rdr
  6. Fixed rapid pause and resume issues. Thanks to @jpvs0101
  7. Breaking change. Reverted OkHttp client to 3.12.12 to support Android versions older than 21. Thanks to @badrazizi
  8. Fixed issues with sample app

Big thanks to everyone who contributed and open issues. Happy Holidays. Stay Safe!

3.1.5/3.0.11

3 years ago

Version 3.0.11/ Androidx version 3.1.5 2. Notification sound fixes. 3. RxJava fixes. 4. Content Length fixes 5. Added NetworkType.UNMETERED 6. Lots of bug fixes.

Thanks to everyone who contributed!

3.0.10

4 years ago

Version 3.0.10/ Androidx version 3.1.4

  1. Improvements/Bug fixes to getting a download's content-length
  2. FetchDatabaseManager interface improvements. It is now easier to create custom fetch databases. Note: New methods were added and old methods may have been updated for the FetchDatabaseManager interface.
  3. FetchNotificationManger interface improvements. It is now easier to control notifications. Note: New methods were added and old methods may have been updated for the FetchNotificationManger interface. -> The DefaultFetchNotificationManager class has also been updated and is now abstract. See java docs for details. Also seen sample app DownloadListActivity on how to use the DefaultFetchNotificationManager class.
  4. Fetch updateRequest method will now call fetch listener onDeleted(download) method when a request is being updated
  5. Added new Fetch method getAllGroupIds(callback) that returns all group id's being managed by Fetch.
  6. Added new Fetch method getDownloadsByTag(tag, callback) that returns all download's being managed by Fetch with the specified tag.

Special thanks to @alvince and @DHosseiny for providing fixes for this release.

3.0.9

4 years ago

Version 3.0.9/ Androidx version 3.1.3

  1. Improvements to getting content length.

3.1.2

4 years ago

Version 3.0.8/ Android x version 3.1.2

  1. Fixed group error reporting bugs with FetchGroup.getProgress() method.
  2. Fixed network on main thread error.
  3. Improved network connection checks.
  4. Improvements and fixes to the StorageResolver when working with the Storage Access Framework.
  5. Files are now pre allocated on local storage on request enqueue. This prevents waste of data. See FetchConfiguration method fun preAllocateFileOnCreation(preAllocateFile: Boolean) to enable or disable this feature. On by default.
  6. Added new field segment to Downloader.Request. See java docs for details.
  7. Added new Fetch method fun getContentLengthForRequests(requests:List<Request>, fromServer: Boolean, func: Func<List<Pair<Request,Long>>>, func2: Func<List<Pair<Request, Error>>>): Fetch
  8. Performance improvements to the Parallel downloader mode.

3.0.7/3.1.1

4 years ago

Version 3.0.7/ Android x version 3.1.1 Added new pauseAll method on Fetch. Added new resumeAll method on Fetch. Better logging. Library code cleanup. Special thanks to Alex Starchenko for submitting the fixes and improvements

3.1.0

5 years ago

Androidx version identical to 3.0.6

3.0.6

5 years ago

Version identical to the androidx version 3.1.0

3.0.5

5 years ago

Version 3.0.5 This release only adds a new Feature that allows Fetch to auto retry failed downloads for any reason. Set the number of times Fetch will auto retry a download when it fails. This feature if off by default.

  1. New fields added on Download: autoRetryMaxAttempts and autoRetryAttempts. See Java docs.
  2. New field added on RequestInfo: autoRetryMaxAttempts. See Java docs.
  3. New method added on Fetch: fun resetAutoRetryAttempts(downloadId: Int, retryDownload: Boolean = true, func: Func2<Download?>? = null, func2: Func<Error>? = null): Fetch
  4. New method added on RXFetch: fun resetAutoRetryAttempts(downloadId: Int, retryDownload: Boolean = true): Convertible<Download?>
  5. New method added on FetchConfiguration: fun setAutoRetryMaxAttempts(autoRetryMaxAttempts: Int): Builder. See Java Docs
        final FetchConfiguration fetchConfiguration = new FetchConfiguration.Builder(this)
                .enableRetryOnNetworkGain(true)
                .setDownloadConcurrentLimit(2)
                .setAutoRetryMaxAttempts(10) // set global auto retry max attempts for all downloads.
                .build();
        final Fetch fetch = Fetch.Impl.getInstance(fetchConfiguration);

        //OR

        final String url = "dummy url";
        final String file = "dummy file";
        final Request request = new Request(url, file);
        request.setAutoRetryMaxAttempts(5); // set auto retry on individual downloads.

        fetch.getDownload(request.getId(), download -> {
            if (download != null) {
                download.getAutoRetryAttempts(); //get the number of auto retry attempts.
                download.getAutoRetryMaxAttempts(); //get the number of max attempts.
            }
        });

        //reset the auto retry attempts for a download
        fetch.resetAutoRetryAttempts(request.getId(), true, null, null);