package com.khmelenko.lab.varis.presenter;
import com.khmelenko.lab.varis.event.travis.FindReposEvent;
import com.khmelenko.lab.varis.event.travis.LoadingFailedEvent;
import com.khmelenko.lab.varis.mvp.MvpPresenter;
import com.khmelenko.lab.varis.task.TaskManager;
import com.khmelenko.lab.varis.view.SearchResultsView;
import javax.inject.Inject;
import de.greenrobot.event.EventBus;
/**
* Search results presenter
*
* @author Dmytro Khmelenko (d.khmelenko@gmail.com)
*/
public class SearchResultsPresenter extends MvpPresenter<SearchResultsView> {
private final TaskManager mTaskManager;
private final EventBus mEventBus;
@Inject
public SearchResultsPresenter(TaskManager taskManager, EventBus eventBus) {
mTaskManager = taskManager;
mEventBus = eventBus;
}
@Override
public void onAttach() {
mEventBus.register(this);
}
@Override
public void onDetach() {
mEventBus.unregister(this);
getView().hideProgress();
}
/**
* Raised on loaded repositories
*
* @param event Event data
*/
public void onEvent(FindReposEvent event) {
getView().hideProgress();
getView().setSearchResults(event.getRepos());
}
/**
* Raised on failed loading data
*
* @param event Event data
*/
public void onEvent(LoadingFailedEvent event) {
getView().hideProgress();
getView().showLoadingError(event.getTaskError().getMessage());
}
/**
* Starts repository search
*
* @param query Query string for search
*/
public void startRepoSearch(String query) {
mTaskManager.findRepos(query);
}
}