blob: c0f7bf77c8d8c58d0e03740d6da1c66b7434cda0 [file] [log] [blame]
package org.apache.fineract.ui.offline;
import android.content.Context;
import org.apache.fineract.data.local.database.helpers.DatabaseHelperCustomer;
import org.apache.fineract.data.models.customer.Customer;
import org.apache.fineract.injection.ApplicationContext;
import org.apache.fineract.ui.base.BasePresenter;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;
public class CustomerPayloadPresenter extends BasePresenter<CustomerPayloadContract.View>
implements CustomerPayloadContract.Presenter {
private DatabaseHelperCustomer databaseHelperCustomer;
private CompositeDisposable compositeDisposable;
@Inject
protected CustomerPayloadPresenter(@ApplicationContext Context context,
DatabaseHelperCustomer databaseHelperCustomer) {
super(context);
this.databaseHelperCustomer = databaseHelperCustomer;
compositeDisposable = new CompositeDisposable();
}
@Override
public void fetchCustomers() {
compositeDisposable.add(databaseHelperCustomer.fetchCustomerPayload()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableObserver<List<Customer>>() {
@Override
public void onNext(List<Customer> customers) {
if (customers.size() > 0) {
getMvpView().showCustomers(customers);
} else {
getMvpView().showEmptyCustomers();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
}));
}
@Override
public void attachView(CustomerPayloadContract.View mvpView) {
super.attachView(mvpView);
}
@Override
public void detachView() {
super.detachView();
compositeDisposable.dispose();
}
}