package com.mozu.mozuandroidinstoreassistant.app.order.loaders; import android.util.Log; import com.mozu.api.MozuApiContext; import com.mozu.api.contracts.commerceruntime.fulfillment.Package; import com.mozu.api.resources.commerce.orders.PackageResource; import rx.Observable; import rx.Subscriber; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; public class PackageObservablesManager { private static PackageObservablesManager mPackageObservablesManager; private static PackageResource resource; private PackageObservablesManager() { } public static PackageObservablesManager getInstance(int tenantId, int siteId) { if (mPackageObservablesManager == null) { mPackageObservablesManager = new PackageObservablesManager(); } if (resource == null) { resource = new PackageResource(new MozuApiContext(tenantId, siteId)); } return mPackageObservablesManager; } public Observable<Package> createPackage(final Package pkg, final String orderId) { return Observable.create(new Observable.OnSubscribe<Package>() { @Override public void call(Subscriber<? super Package> subscriber) { try { subscriber.onNext(resource.createPackage(pkg, orderId)); subscriber.onCompleted(); } catch (Exception e) { Log.e("createPackage", e.toString()); subscriber.onError(e); } } }) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()); } public Observable<Package> updatePackage(final Package pkg, final String orderId, final String pkgId) { return Observable.create(new Observable.OnSubscribe<Package>() { @Override public void call(Subscriber<? super Package> subscriber) { try { subscriber.onNext(resource.createPackage(pkg, orderId, pkgId)); } catch (Exception e) { Log.e("updatePackage", e.toString()); subscriber.onError(e); } } }) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()); } }