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 / AppInfo.java
Created August 8, 2016 04:31 — forked from haibuzou/AppInfo.java
Rxjava Operatoe and dispatcher/ Rxjava 操作符和调度器
package haibuzou.rxjavabook.bean;
import android.graphics.drawable.Drawable;
public class AppInfo implements Comparable<Object> {
// long mLastUpdateTime;
public String mName;
public Drawable mIcon;
@pyadav
pyadav / ApiManager.java
Created August 8, 2016 04:31 — forked from marcelpinto/ApiManager.java
Cache RxJava observables on Android approach to reuse and avoid multiple calls.
private ObservableManager obsManager = new ObservableManager(EventBus.getDefault());
@Override
public Subscription getStores() {
// Get the observable if exists and is not too old
Observable<StoresList> observable = obsManager.get(ObservableManager.Types.STORES);
if (observable == null) {
// If is null create it and us cache to keep it in memeroy
observable = api.getStoresList()
.compose(applySchedulers(api.getStoresList()))
@pyadav
pyadav / InventoryRetriever.java
Created August 8, 2016 04:32 — forked from parallelcross/InventoryRetriever.java
Using RxJava to load Inventory Date instead of a loader
package com.mozu.mozuandroidinstoreassistant.app.loaders;
import com.mozu.api.MozuApiContext;
import com.mozu.api.contracts.productadmin.LocationInventoryCollection;
import com.mozu.api.contracts.productruntime.Product;
import com.mozu.api.resources.commerce.catalog.admin.products.LocationInventoryResource;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
@pyadav
pyadav / BetterAccountManager.java
Created August 8, 2016 04:32 — forked from iffa/BetterAccountManager.java
AccountManager wrapper with an easier API and RxJava support
/**
* Wrapper for {@link AccountManager} with improved functionality and RxJava support.
*
* Originally found from <a href="https://github.com/novoda/spikes/tree/master/gertherb/android/src/main/java/com/gertherb/authentication">github.com/spikes/gertherb</a>,
* and modified to work with a newer RxJava version, using {@link Single} instead of {@link rx.Observable}.
*
* @author Ataul Munim
* @author Santeri Elo
*/
public class BetterAccountManager {
@pyadav
pyadav / OC-RxUnsubscribeActivity.java
Created August 8, 2016 04:32 — forked from noaht11/OC-RxUnsubscribeActivity.java
Unsubscribing from an RxJava subscription to handle orientation changes
private Subscription mDoSomethingSubscription;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
// Setup views
...
@pyadav
pyadav / SignUpActivity.java
Created August 8, 2016 04:33 — forked from mandybess/SignUpActivity.java
RxJava + MVP Sign up Form Validation Take Two
port android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import club.smartsavers.presenters.SignUpPresenter;
import club.smartsavers.presenters.SignUpPresenterImpl;
import com.jakewharton.rxbinding.widget.RxTextView;
import rx.Observable;
public class SignUpActivity extends Activity implements SignUpView {
@pyadav
pyadav / EventBus.java
Created August 8, 2016 04:34 — forked from vinaysshenoy/EventBus.java
EventBus using RxJava that allows delivering events to the right subscribers
package com.vinaysshenoy.utils;
import android.support.annotation.NonNull;
import android.support.v4.util.Pair;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface AvailabilityChecker {
Observable<ValidationResult<String>> isEmailAvailable(@NonNull String email);
Observable<ValidationResult<String>> isUsernameAvailable(@NonNull String email);
ValidationResult<String> isEmailAvailableSync(@NonNull String email);
ValidationResult<String> isUsernameAvailableSync(@NonNull String email);
}
import android.media.MediaRecorder;
import android.support.annotation.NonNull;
import com.f2prateek.rx.android.schedulers.AndroidSchedulers;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import rx.Observable;
import rx.subscriptions.Subscriptions;
public class RxMediaRecorder {
@pyadav
pyadav / FragmentRepos.java
Created August 8, 2016 04:35 — forked from fnk0/FragmentRepos.java
First code snippet using rxJava. Retrieves a list of repositories from Github and passes it to a CardsList
public class FragmentRepos extends DefaultListFragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
GithubClient client = new GithubClient(true);
RepoService repoService = client.createService(RepoService.class);
Observable<List<Repo>> repos = repoService.getRepos("fnk0");
AppObservable.bindFragment(this, repos);
repos.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())