Skip to content

Instantly share code, notes, and snippets.

View pyadav's full-sized avatar
🐢
learning new stuff

Praveen Yadav pyadav

🐢
learning new stuff
View GitHub Profile
@pyadav
pyadav / rxjava_sample.java
Created August 8, 2016 04:18 — forked from mdaisuke/rxjava_sample.java
rxjava usage in android
package com.mdaisuke.sample;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
@pyadav
pyadav / ApiService.java
Created August 8, 2016 04:20 — forked from dustin-graham/ApiService.java
Infinite Scrolling Android RecyclerView with RxJava
public static Observable<List<String>> paginatedThings(final Observable<Void> onNextObservable) {
return Observable.create(new Observable.OnSubscribe<List<String>>() {
@Override
public void call(final Subscriber<? super List<String>> subscriber) {
onNextObservable.subscribe(new Observer<Void>() {
int latestPage = -1;
@Override
public void onCompleted() {
subscriber.onCompleted();
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Looper;
import rx.Observable;
import rx.Subscriber;
@pyadav
pyadav / RxAsyncUtils.java
Created August 8, 2016 04:22 — forked from yochiro/RxAsyncUtils.java
AsyncTask with rxJava
package org.ymkm.utils;
import rx.Observable;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public final class RxAsyncUtils {
@pyadav
pyadav / api.java
Last active August 8, 2016 04:23 — forked from cesarferreira/api.java
RxJava and Retrofit sample
public interface API {
@GET("/user/{username}/dogs")
Observable<Dog> getAllDogsOf(@Path("username") String username);
@GET("/dog/{id}")
Observable<Dog> getDogInfoById(@Path("id") int dogId);
}
@pyadav
pyadav / async rx.java
Created August 8, 2016 04:24 — forked from vuhung3990/async rx.java
asynchronous in Rxjava
// sample 2 asynchronous task
Observable<String> jsonTask = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext(getJsonFromInternet());
subscriber.onCompleted();
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
// SUBCRIBE
@pyadav
pyadav / OrderActivity.java
Created August 8, 2016 04:25 — forked from donnfelker/OrderActivity.java
RxJava Bound Service AIDL Abstraction
package com.donnfelker.rxexample;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
@pyadav
pyadav / HeavyExternalLibraryObservable.java
Created August 8, 2016 04:28 — forked from frogermcs/HeavyExternalLibraryObservable.java
Async injection with Dagger 2 and RxJava
@Singleton
@Provides
Observable<HeavyExternalLibrary> provideHeavyExternalLibraryObservable(final Provider<HeavyExternalLibrary> heavyExternalLibraryProvider) {
return Observable.create(new Observable.OnSubscribe<HeavyExternalLibrary>() {
@Override
public void call(Subscriber<? super HeavyExternalLibrary> subscriber) {
subscriber.onNext(heavyExternalLibraryProvider.get());
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
@pyadav
pyadav / NetworkHelper.java
Created August 8, 2016 04:30
Network Helper for RxJava, OkHttp, Gson
/**
makes a GET call through OkHttp
return an Observable of type defined by clazz
Usage:
NetworkHelper.get(baseUrl, String.class).compose(applySchedulers()).subscribe(s->{
Do Awesome Things Here
})
**/
public static <E> Observable<E> get(final String url, final Class<E> clazz) {
@pyadav
pyadav / AndroidAsync.java
Created August 8, 2016 04:31 — forked from alexfu/AndroidAsync.java
Helpful RxJava functions for daily use
/**
* Transforms an observable to run on a new thread
* and to be observed on Androids main thread.
*/
public static <T> Observable.Transformer<T, T> androidAsync() {
return new Observable.Transformer<T, T>() {
@Override
public Observable<T> call(Observable<T> observable) {
return observable
.subscribeOn(Schedulers.newThread())