package org.openlmis.core.presenter;
import com.google.inject.Inject;
import org.openlmis.core.exceptions.LMISException;
import org.openlmis.core.service.SyncService;
import rx.Observable;
import rx.Subscriber;
public abstract class BaseReportPresenter extends Presenter{
@Inject
SyncService syncService;
public abstract void deleteDraft();
public abstract boolean isDraft();
public Observable<Void> getOnSignObservable(final String signature) {
return Observable.create(new Observable.OnSubscribe<Void>() {
@Override
public void call(Subscriber<? super Void> subscriber) {
try {
addSignature(signature);
subscriber.onNext(null);
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
new LMISException(e).reportToFabric();
}
}
});
}
protected abstract void addSignature(String signature);
}