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 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
})
@pyadav
pyadav / RxPermission.kt
Created August 8, 2016 04:05 — forked from eungju/RxPermission.kt
Android Permissions with RxJava
import rx.Observable
interface RxPermission {
val isGranted: Boolean
fun request(): Observable<Boolean>
}
@pyadav
pyadav / rx click event.java
Created August 8, 2016 04:06 — forked from vuhung3990/rx click event.java
Rxjava for handle event
// sample 3 UI event
mButton = (Button) findViewById(R.id.button);
Observable<View> clickEventObservable = Observable.create(new Observable.OnSubscribe<View>() {
@Override
public void call(final Subscriber<? super View> subscriber) {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
subscriber.onNext(v);
}
@pyadav
pyadav / Main.java
Created August 8, 2016 04:07 — forked from jooyunghan/Main.java
Retrofit + RxJava in Java
package com.company;
import retrofit.RestAdapter;
import retrofit.http.GET;
import retrofit.http.Path;
import rx.Observable;
import rx.Subscriber;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.functions.Func2;
@pyadav
pyadav / CachedRefreshable.java
Created August 8, 2016 04:07 — forked from austynmahoney/CachedRefreshable.java
RxJava Refreshable Pattern
public abstract class CachedRefreshable<P, T> extends Refreshable<P, T> {
protected abstract Observable<T> getSourceObservable(P parameters);
/**
* Return the Observable that gets data from a cached source.
*
* @return Observable from cache item, or null if the cache misses.
*/
protected abstract Observable<T> getCachedObservable(P parameters);
@pyadav
pyadav / AndroidScheduler.java
Created August 8, 2016 04:09 — forked from prabirshrestha/AndroidScheduler.java
RxJava Android scheduler
package rx.concurrency;
import android.os.Handler;
import android.os.Looper;
import rx.Scheduler;
import rx.Subscription;
import rx.concurrency.ExecutorScheduler;
import rx.util.AtomicObservableSubscription;
import rx.util.functions.Func2;