All Projects → BalakrishnanPT → BulkDownloader

BalakrishnanPT / BulkDownloader

Licence: other
BulkDownloader is used for multiple downloading process easy. It provides progress listener for each files and for whole file. It guarantees completion of download files as it runs on work manager

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to BulkDownloader

Zoom2Youtube
Transfer video recordings from the Zoom to YouTube
Stars: ✭ 63 (+162.5%)
Mutual labels:  downloader, notification
Firupdater
Fir.im通道APK更新器,使用简单,让自己的demo快速具备升级功能
Stars: ✭ 148 (+516.67%)
Mutual labels:  downloader, notification
Android Upload Service
Easily upload files (Multipart/Binary/FTP out of the box) in the background with progress notification. Support for persistent upload requests, customizations and custom plugins.
Stars: ✭ 2,593 (+10704.17%)
Mutual labels:  notification, background
cordova-plugin-apkupdater
This plugin allows your Android app to download and install compressed updates without the Google Play Store.
Stars: ✭ 46 (+91.67%)
Mutual labels:  downloader, background
YoutubePlayer
Play and download YouTube videos. Extract audio from video. With minimalist beautiful gui.
Stars: ✭ 19 (-20.83%)
Mutual labels:  downloader
Android-Firebase-Notification-With-PHP-Backend
This is a practice repository of Android Firebase Push Notification with PHP Backend. I wrote a blog post about this topic on my Bengali blog site.
Stars: ✭ 51 (+112.5%)
Mutual labels:  notification
markdown articles tool
Parse markdown article, download images and replace images URL's with local paths
Stars: ✭ 37 (+54.17%)
Mutual labels:  downloader
Mega-index-heroku
Mega nz heroku index, Serves mega.nz to http via heroku web. It Alters downloading speed and stability
Stars: ✭ 165 (+587.5%)
Mutual labels:  downloader
photo-dl
A photo album downloader
Stars: ✭ 44 (+83.33%)
Mutual labels:  downloader
stanford-dl
A dead simple script to download videos or pdfs from Stanford Engineering Everywhere.
Stars: ✭ 57 (+137.5%)
Mutual labels:  downloader
ngx-animated-gradient
Angular Directive that animates the gradient background
Stars: ✭ 16 (-33.33%)
Mutual labels:  background
Zeiver
A Scraper, Downloader, & Recorder for static open directories.
Stars: ✭ 14 (-41.67%)
Mutual labels:  downloader
lostark-wait-notifier
🐤️ Lost Ark wait notifier
Stars: ✭ 38 (+58.33%)
Mutual labels:  notification
arch-deluge
Docker build script for Arch Linux base with Deluge
Stars: ✭ 12 (-50%)
Mutual labels:  downloader
goodreads-toolbox
9 tools for Goodreads.com, for finding people based on the books they’ve read, finding books popular among the people you follow, following new book reviews, etc
Stars: ✭ 56 (+133.33%)
Mutual labels:  notification
dannyAVgleDownloader
知名網站avgle下載器
Stars: ✭ 27 (+12.5%)
Mutual labels:  downloader
su-downloader3
nodejs HTTP downloader with pause/resume support and segmented downloading
Stars: ✭ 14 (-41.67%)
Mutual labels:  downloader
birthday-keeper
一个生日管理APP, UI风格模仿的系统闹钟, 可以添加, 编辑, 删除生日以及本地推送提醒, 项目截图见README.
Stars: ✭ 27 (+12.5%)
Mutual labels:  notification
celery.node
Celery task queue client/worker for nodejs
Stars: ✭ 164 (+583.33%)
Mutual labels:  background
SI4844
Silicon Labs SI4844 (BROADCAST ANALOG TUNING DIGITAL DISPLAY AM/FM/SW RADIO RECEIVER) Library
Stars: ✭ 16 (-33.33%)
Mutual labels:  receiver

BulkDownloader

You can use this Downloader, where:

You want to download 100's of images in background You want progress of each file being downloaded and total images downloaded.

What this can do:

  • You can download bunch of images in a go -You can assign n number of downloading tasks and this library can handle this pretty well
  • You can assign 10 downloading jobs that has 100s of images each, each downloading batch gives you progress and as well as each image progress in percentage
  • Let's say you have to download unknown number of images from a response,you don't have to parse the response to get image urls you can just pass the response and this will handle everything for you.
  • You can specify when to download the images lets say you have to download only when internet is at good speed or download over mobile data or not to download when app is in doze mode.
  • You can get the information of downloading in receiver if app is not running. You can write logic in receiver for local notification

In development

  • As of now this library can support only images but it is developed in such way that it could support uploads and all formats.
  • To specify what to do when each file is downloaded. Let say you have to convert a response into video or image and resizing it.

Implementation

Copy and paste this dependency in module gradle

implementation 'balakrishnan.me.bulkdownloader:bulkdownloader:0.0.5'

Implement ImageDownloaderHelper.DownloadStatus in the activity or fragment that you want to track your record or you can follow below given method in the Activity or Fragment

If you wanted to download a list of images then call BulkDownloader as follows

        new ImageDownloaderHelper().setUrls(ArrayList of urls))
                    .setDownloadStatus(getCallback())
                    .setCollectionId(uniqueId)
                    .create();

getCallback() method is as follows

   public ImageDownloaderHelper.DownloadStatus getCallback() {
        return new ImageDownloaderHelper.DownloadStatus() {
            @Override
            public void DownloadedItems(int totalurls, int downloadPercentage, int successPercent, int failurePercent) {
               //You can get Total Image Downloaded progress here
            }

            @Override
            public void CurrentDownloadPercentage(LinkedHashMap<String, ProgressModel> trackRecord) {
              //You can get Induvidual Image Downloaded progress here
            }

        };
    }

Let's say if you want to download all images in a any response

Example:

[
{"id":"1","createdAt":"2018-10-22T23:34:56.999Z","name":"Cornelius Fadel","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/areus/128.jpg"},
{"id":"2","createdAt":"2018-10-22T22:59:42.972Z","name":"Freeman Balistreri","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/matbeedotcom/128.jpg"},
{"id":"3","createdAt":"2018-10-22T19:08:53.211Z","name":"Angus Johnson","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/cdharrison/128.jpg"},
{"id":"4","createdAt":"2018-10-23T01:38:08.226Z","name":"Ashleigh Baumbach","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/michaelmartinho/128.jpg"},
{"id":"5","createdAt":"2018-10-23T14:08:41.273Z","name":"Sasha Bernhard","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/128.jpg"},
.
.
.
{"id":"24","createdAt":"2018-10-23T15:12:14.040Z","name":"Mr. Barton Hickle","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/markolschesky/128.jpg"}
]

You need to add following code in your activity / Fragment

        new ImageDownloaderHelper().setDownloadStatus(getCallback())
                    .setUrl(`some_url`)
                    .setCollectionId(uniqueId)
                    .createImageDownloadWorkURl();

getCallback() method is as follows

   public ImageDownloaderHelper.DownloadStatus getCallback() {
        return new ImageDownloaderHelper.DownloadStatus() {
            @Override
            public void DownloadedItems(int totalurls, int downloadPercentage, int successPercent, int failurePercent) {
               //You can get Total Image Downloaded progress here
            }

            @Override
            public void CurrentDownloadPercentage(LinkedHashMap<String, ProgressModel> trackRecord) {
              //You can get Induvidual Image Downloaded progress here
            }

        };
    }

Receiving download status if app is not running

  1. Create a receiver for receiving info even if app is not running Receiver
  2. Register the receiver in AndroidManifest.xml and Application Class

You will get information in the receiver of download only if app is not running

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].