package com.mozu.mozuandroidinstoreassistant.app.product.loaders; import com.mozu.api.MozuApiContext; import com.mozu.api.contracts.productadmin.Product; import com.mozu.api.resources.commerce.catalog.admin.ProductResource; import rx.Observable; import rx.Subscriber; import rx.schedulers.Schedulers; public class ProductAdminObservableManager { private static ProductAdminObservableManager instance; private static ProductResource adminProductResource; private ProductAdminObservableManager() { } public static ProductAdminObservableManager getInstance() { if (instance == null) { instance = new ProductAdminObservableManager(); } return instance; } public Observable<Product> getMAPPriceObservable(final Integer tenatId, final Integer siteId, final String productCode) { return Observable.create(new Observable.OnSubscribe<com.mozu.api.contracts.productadmin.Product>() { @Override public void call(Subscriber<? super Product> subscriber) { try { ProductResource productResource = new ProductResource(new MozuApiContext(tenatId, siteId)); com.mozu.api.contracts.productadmin.Product product = productResource.getProduct(productCode); subscriber.onNext(product); subscriber.onCompleted(); } catch (Exception e) { subscriber.onError(e); } } }) .subscribeOn(Schedulers.io()); } }