All Projects → Ansh1234 → Rxdownloader

Ansh1234 / Rxdownloader

Demo of Downloading Songs/Images through Android Download Manager using RxJava2

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rxdownloader

Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+3120.48%)
Mutual labels:  rxjava, downloader, downloadmanager
Canvas Img Process
html5 canvas image process ( 3*3 kernel ) canvas卷积核测试 canvas图片后期
Stars: ✭ 31 (-81.33%)
Mutual labels:  demo, canvas
Pyinstalive
Python script to download Instagram livestreams and replays.
Stars: ✭ 336 (+102.41%)
Mutual labels:  stream, downloader
Downloader
Downloader for android with pause, resume, cancel, queue options
Stars: ✭ 40 (-75.9%)
Mutual labels:  downloader, downloadmanager
ProxerAndroid
The official Android App of Proxer.Me
Stars: ✭ 105 (-36.75%)
Mutual labels:  stream, rxjava
Reactive
Reactive: Examples of the most famous reactive libraries that you can find in the market.
Stars: ✭ 256 (+54.22%)
Mutual labels:  rxjava, stream
Grpc By Example Java
A collection of useful/essential gRPC Java Examples
Stars: ✭ 709 (+327.11%)
Mutual labels:  rxjava, stream
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-48.8%)
Mutual labels:  downloader, downloadmanager
Rxjavajdk8interop
RxJava 2/3 interop library for supporting Java 8 features such as Optional, Stream and CompletableFuture [discontinued]
Stars: ✭ 70 (-57.83%)
Mutual labels:  rxjava, stream
Fetch
The best file downloader library for Android
Stars: ✭ 1,124 (+577.11%)
Mutual labels:  downloader, downloadmanager
canvas-cast
Cast any <canvas> element to an LED Matrix over WebSockets with an Arduino/ESP8266.
Stars: ✭ 39 (-76.51%)
Mutual labels:  canvas, stream
Canvas Raycaster
Using the <canvas> element to do software rendering of a 3D environment with ray-casting
Stars: ✭ 112 (-32.53%)
Mutual labels:  demo, canvas
rxjava2-http
Transmit RxJava2 Flowable over http with non-blocking backpressure
Stars: ✭ 19 (-88.55%)
Mutual labels:  stream, rxjava
Androiddownloader
An powerful download library for Android.
Stars: ✭ 287 (+72.89%)
Mutual labels:  downloader, downloadmanager
dl
Command-line file downloader tool
Stars: ✭ 39 (-76.51%)
Mutual labels:  downloader, downloadmanager
uget
(WIP) Universal Getter of remote files
Stars: ✭ 46 (-72.29%)
Mutual labels:  downloader, downloadmanager
ee.Yrewind
Can rewind and save YouTube live stream
Stars: ✭ 133 (-19.88%)
Mutual labels:  downloader, stream
RxLoading
RxJava library for showing a loading (i.e. progress bar) state while waiting for async data with minimal effort and advanced options.
Stars: ✭ 49 (-70.48%)
Mutual labels:  stream, rxjava
Mzdownloadmanager
This download manager uses NSURLSession api to download files. It can download multiple files at a time. It can download large files if app is in background. It can resume downloads if app was quit.
Stars: ✭ 1,061 (+539.16%)
Mutual labels:  downloader, downloadmanager
Gophie
An Aggregator Engine for searching and downloading movies free - NO ADs!
Stars: ✭ 94 (-43.37%)
Mutual labels:  stream, downloader

Downloader Demo using RxJava

Overview

This project is for downloading items(songs, images etc) in Android using RxJava2. There are, however 2 conditions which I have set for downloading.

  • Only 2 items can be downloaded at a time. So even if the user clicks multiple items to download, only 2 of them will be actually downloaded at a time and the rest of the downloads will be en queued.
  • The download percent is shown to the user. But only if the difference between the current percentage and the previously shown percentage is greater than 5 percent.

                                               

Demo

                                               

                                               

There are few important RxJava classes that I have used to do this project:

  • Observable - Emits a stream of events
  • Flowable - Emits a stream of events. The Flowable is created using a BackpressureStrategy like BackpressureStrategy.BUFFER or BackpressureStrategy.DROP. So, if the number of items emitted by the Flowable is greater than the number of items consumed by the subscriber, based on the BackpressureStrategy, the extra items will either be buffered or dropped.
  • Observer - Used to observe/subscribe a stream of events. Whenever the observer is connected to the Observable, a Disposable object is received, which is further used to dispose the connection. This class has 4 methods.
  • Subscriber - Similar to Observer, this class is also used to observe/subscribe a stream of events and has 4 methods. But instead of Disposable object, a Subscription option is received at the time of connection, which is further used to dispose the connection or request new items from the stream.

I wrote a blog about how I used RxJava2 for achieving this. Here is the post.

                                               

NOTE : Since this is a demo project and not an actual project, I have kept the images and urls to be downloaded hardcoded in the client. There is no server call. Also, for every item I am saving the download status and download percent in the shared preference. In a real project, it should be ideally saved in a database.


Checkout my other projects

AppDataReader - A library for reading Shared Preferences and Database values within the application.

RxFbLiveVideoEmoticons - Demo of Fb Live Video Reactions using RxJava2.

WebViewDemo - A demo project for showing how to use WebViews in Android.

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].