Skip to content

Instantly share code, notes, and snippets.

View feresr's full-sized avatar

Fernando Raviola feresr

View GitHub Profile
@feresr
feresr / RxJavaSimpleExample.class
Created January 27, 2017 15:46
RxJava Simple example
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getData(new DataSubscriber());
}
});
public void getData(DataSubscriber subscriber) {
Subscription s = apiEndpoints.getData()
button.setOnClickListener(v -> getData(new DataSubscriber()));
public void getData(DataSubscriber subscriber) {
Subscription s = apiEndpoints.getData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
compositeSubscriptions.add(s);
}
@feresr
feresr / step2.java
Last active January 28, 2017 06:32
Observable<Data> dataStream = RxView.clicks(button)
.flatMap(new Func1<Void, Observable<Data>>() {
@Override
public Observable<Data> call(Void aVoid) {
return apiEndpoints.getData();
}
});
RxView.clicks(button)
.flatMap(new Func1<Void, Observable<Data>>() {
@Override
public Observable<Data> call(Void aVoid) {
return apiEndpoints
.getData()
.subscribeOn(Schedulers.io());
}
})
.observeOn(AndroidSchedulers.mainThread())
@feresr
feresr / sample4.java
Created January 28, 2017 18:19
sample.java
RxView.clicks(button)
.observeOn(Schedulers.io())
.debounce(2, TimeUnit.SECONDS)
.flatMap(aVoid -> apiEndpoints.getData())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...);
@feresr
feresr / multicast.java
Last active January 30, 2017 21:52
Multicast
Observable<Data> dataStream = RxView.clicks(button)... //create the stream as before
dataStream.subscribe(data -> Log.d(TAG, "View one received the data"));
dataStream.subscribe(data -> Log.d(TAG, "View two received the data"));
@feresr
feresr / multicast2.java
Last active January 30, 2017 21:53
multicast2
Observable<Data> dataStream = Observable.just(1)
.observeOn(Schedulers.io())
.debounce(2, TimeUnit.SECONDS)
.flatMap(new Func1<Integer, Observable<Data>>() {
@Override
public Observable<Data> call(Integer aVoid) {
Log.d(TAG, "Performing network request...");
return apiEndpoints.getData();
}
})
@feresr
feresr / multicasting3.java
Last active January 30, 2017 21:53
multicast3
Observable<Data> dataStream = RxView.clicks(button)
.observeOn(Schedulers.io())
.debounce(2, TimeUnit.SECONDS)
.flatMap(new Func1<Void, Observable<Data>>() {
@Override
public Observable<Data> call(Void aVoid) {
Log.d(TAG, "Performing network request...");
return apiEndpoints.getData();
}
})
@feresr
feresr / errorHandling.java
Created January 30, 2017 18:57
Error handling response
@Override public void onNext(DataResponse response) {
if (response.isSuccessful()) {
displayData(response.getData());
} else {
showError(response.getError());
}
}
@Override public void onNext(DataResponse response) {
if (response.isSuccessful()) {
displayData(response.getData());
} else {
showError(response.getError());
}
}