Skip to content

Instantly share code, notes, and snippets.

View amitshekhariitbhu's full-sized avatar
🎯
Helping developers in getting high-paying tech jobs

AMIT SHEKHAR amitshekhariitbhu

🎯
Helping developers in getting high-paying tech jobs
View GitHub Profile

Using Fast Android Networking in your application

Add this in your build.gradle

compile 'com.amitshekhar.android:android-networking:1.0.2'

When using it with RxJava2

compile 'com.amitshekhar.android:rx2-android-networking:1.0.2'
public class PaginationActivity extends AppCompatActivity {
// removed for brevity..
private PublishProcessor<Integer> paginator = PublishProcessor.create();
private ProgressBar progressBar;
private boolean loading = false;
private int pageNumber = 1;
private final int VISIBLE_THRESHOLD = 1;
private int lastVisibleItem, totalItemCount;
package com.mindorks.snaphelperexample.ui.common;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.LinearSnapHelper;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.View;
public class PaginationActivity extends AppCompatActivity {
/**
* Simulation of network data
*/
private Single<List<String>> dataFromNetwork(final int page) {
return Single.just(true)
.delay(2, TimeUnit.SECONDS)
.map(value -> {
List<String> items = new ArrayList<>();
for (int i = 1; i <= 10; i++) {

Using RxPS - RxJavaPriorityScheduler Library in your Android application

Add this in your build.gradle

implementation 'com.mindorks.scheduler:rxps:0.1.0'

Setting low level priority for a task - use RxPS.low()

getObservable()
public class PaginationAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<String> items = new ArrayList<>();
public PaginationAdapter() {
}
void addItems(List<String> items) {
this.items.addAll(items);
/*
* Singleton class for default executor supplier
*/
public class DefaultExecutorSupplier{
/*
* Number of cores to decide the number of threads
*/
public static final int NUMBER_OF_CORES = Runtime.getRuntime().availableProcessors();
/*
getUserObservable()
.flatMap(new Function<ApiUser, ObservableSource<UserDetail>>() {
@Override
public ObservableSource<UserDetail> apply(ApiUser apiUser) throws Exception {
return getUserDetailObservable(apiUser);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getObserver());
getUserObservable()
.map(new Function<ApiUser, User>() {
@Override
public User apply(ApiUser apiUser) throws Exception {
// here we get the ApiUser from the server
User user = new User(apiUser);
// then by converting it into the user, we are returning
return user;
}
})

Using PRDownloader Library in your Android application

Add this in your build.gradle

compile 'com.mindorks.android:prdownloader:0.3.0'

Do not forget to add internet permission in manifest if already not present

<uses-permission android:name="android.permission.INTERNET" />