package co.smartreceipts.android.widget.viper; import android.support.annotation.CallSuper; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; import io.reactivex.disposables.CompositeDisposable; public abstract class BasePresenter<ViewType, InteractorType> implements Presenter<ViewType, InteractorType> { protected final ViewType view; protected final InteractorType interactor; protected final CompositeDisposable compositeDisposable = new CompositeDisposable(); public BasePresenter(@NonNull ViewType view, @NonNull InteractorType interactor) { this.view = Preconditions.checkNotNull(view); this.interactor = Preconditions.checkNotNull(interactor); } @Override @CallSuper public void unsubscribe() { compositeDisposable.clear(); } }