class SentenceListPresenter extends AbstractMvpPresenter<SentenceList.View, SentenceListViewModel> implements SentenceList.Presenter<SentenceList.View, SentenceListViewModel> {

    @Override
    public void loadSentences(final boolean firstLoad) {
        if (firstLoad) {
            mView.setLoadingIndicator(true);
            mLoadSentenceCallback = new LoadSentencesUC.LoadSentencesCallback() {
                @Override
                public void onSentencesGet(List<? extends Sentence> sentences) {
                    if (mView != null) {
                        if (sentences == null || sentences.isEmpty()) {
                            mView.showNoSentences(getViewModel().isFavoriteList());
                        } else {
                            mView.showSentenceList(sentences);
                            if (getViewModel().isNeedAutoFocused()) {
                                int needFocusedPosition = findNeedFocusedPosition(sentences);
                                if (needFocusedPosition >= 0) {
                                    mView.setSelection(needFocusedPosition);
                                }
                                setNeedAutoFocused(false);
                            }
                        }
                    }
                }
            };
        }
        mLoadSentencesUC.requestParams(new LoadSentencesUC.LoadSentencesRequestParms(firstLoad, getViewModel().isFavoriteList()))
                .callback(mLoadSentenceCallback)
                .execute(mLoadSentencesUseCaseHandler);
    }

    public  SentenceListPresenter();

}