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
public void doubleClickDetect(View view){
Observable<Void> observable = RxView.clicks(view).share();
observable.buffer(observable.debounce(200, TimeUnit.MILLISECONDS))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<List<Void>>() {
@Override
public void call(List<Void> voids) {
if(voids.size() >= 2){
//double click detected
}
@pyadav
pyadav / HttpClient.java
Created August 8, 2016 03:47 — forked from prabirshrestha/HttpClient.java
OkHttpClient+RxJava
package com.example.rx_okhttp;
import com.squareup.okhttp.OkHttpClient;
import org.apache.http.*;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import rx.Observable;
import rx.Observer;
import rx.Scheduler;
public class FacebookHomeProvider {
protected final PublishSubject<FbPost> behaviorSubject;
private Request request;
public FacebookHomeProvider() {
behaviorSubject = PublishSubject.create();
behaviorSubject.subscribeOn(Schedulers.io());
}
/**
@pyadav
pyadav / rxjavaEb.java
Created August 8, 2016 03:51 — forked from stream-iori/rxjavaEb.java
rxjava eb
//返回一个Obserable,侦听发给heat-sensor的信息
Observable<Double> observable = vertx.eventBus().
<Double>consumer("heat-sensor").
bodyStream().
toObservable();
//这个obserable持续1秒钟,并对数据进行map reduce操作
observable.
buffer(1, TimeUnit.SECONDS).
map(samples -> samples.
public class HomePresenterImpl implements HomePresenter {
private static final String TAG = HomePresenterImpl.class.getSimpleName();
private final HomeScreen screen;
private final DataProvider provider;
private Subscription subscription1;
public HomePresenterImpl(HomeScreenImpl screen, DataProvider dataProvider) {
this.screen = screen;
this.provider = dataProvider;
}
public class GcmRegistrationIntentService extends IntentService {
private static final String TAG = "RegIntentService";
private static final String[] TOPICS = {"global"};
private PushNotificationManager pushNotificationManager;
private GcmRequestManager gcmRequestManager;
private InstanceID instanceID;
public GcmRegistrationIntentService() {
@pyadav
pyadav / sample.java
Created August 8, 2016 03:55 — forked from mdrabic/sample.java
rxjava worker thread example
final Scheduler.Worker worker = Schedulers.newThread().createWorker();
worker.schedule(new Action0() {
@Override
public void call() {
if (!mAnimationSet.isStarted()) {
removeViewAt(0);
worker.unsubscribe();
} else {
worker.schedule(this, 500, TimeUnit.MILLISECONDS);
}
@pyadav
pyadav / proguard-rules.pro
Created August 8, 2016 03:56 — forked from kosiara/proguard-rules.pro
RxJava RxAndroid Proguard rules
#build.gradle
#
# compile 'io.reactivex:rxandroid:1.0.1'
# compile 'io.reactivex:rxjava:1.0.14'
# compile 'io.reactivex:rxjava-math:1.0.0'
# compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'
# rxjava
-keep class rx.schedulers.Schedulers {
public static <methods>;
@pyadav
pyadav / rxjava-retrywith.java
Created August 8, 2016 03:58 — forked from djensen47/rxjava-retrywith.java
RxJava retryWith example
// slide 75 of this: http://www.slideshare.net/Couchbase/reactive-programmingrxjavaefficientdata-benchristensenmichaelnitschinger
Observable.
.defer(() -> bucket.get("id")) //create new
.retryWhen(attempts -> attempts
.zipWith(Observable.range(1,3), (n, i) -> i) // retry maximum of 3 times
.flatMap(i -> {
System.out.println("Delaying retry by " + i + " second(s)");
return Observable.timer(i, TimeUnit.SECONDS); //delay the resubscribe
})