This project is for downloading items(songs, images etc) in Android using RxJava2. There are, however 2 conditions which I have set for downloading.
1) 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.
2) 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.
RxJava2 EventBus that supports pausing and resuming. This way, you can achieve that the bus is queueing events while it is paused and emitting events while it is resumed which is a nice way to enforce that events are only observed, when for example your activity is resumed and your views are accessible.
This project is inspired by the Live Video Reactions on Facebook. I have used RxJava2 for handling the stream of reactions (like, love, haha, wow, sad, angry). I have put one extra condition that the time duration between two reactions should be atleast 300 ms.. This is achieved very easily by RxJava by using Flowable
SimplerRecyclerViewAdapter used to simplify the adapter structure for
FlowR is a wrapper class around the Fragment Manager. It's mainly used to navigate between different fragments easily while providing a wide range of functionality. The following are the functionalities provided by the Flowr:
Easily navigate between different fragments. Ability to open fragments for result. Keeping the state of the activity correctly synced depending on the custom values specified by the fragment currently visible such as the screen orientation and navigation bar colour.
A Twitter style post length counter which can be bound to an
EditText and provide callbacks when hitting a max character count.
Once bound to an EditText the characters remaining will go down as the user types. If the user goes over the max limit you will get notified and the view will show how much they are over.
JFixture is an open source library based on the popular .NET library, AutoFixture.
JFixture is a Java library to assist in the writing of Unit Tests, particularly when following Test Driven Development. It generates types based on the concept of 'constrained non-determinism', which is an implementation of the Generated Value xUnit test pattern.
The Universal Event Bus is an event dispatcher architecture which help you to use most common event bus implementation as Otto in a structured mode.
An events is a bus designed to separate different parts of the application, while still allowing them to communicate efficiently. The operation of the EventDispatcher is based on the publish-subscribe pattern: the bus asked a series of events that will be collected by those who joined them.
The publisher is, in this case, called Bus or RxBus and deals with post events using the Observable of RxJava. The event dispatcher contains two RxBuses: one dedicated to the UI thread, and the other for all the other events that have nothing to do with the UI (network calls, CRUD operations with the database etc.).