Created
November 13, 2020 07:37
-
-
Save burakiren/1183f25c714b14670424e0034cebfcab to your computer and use it in GitHub Desktop.
MVI - ExampleFragment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ExampleFragment extends Fragment implements ExampleView { | |
@BindView(R.id.userData) TextView userData; | |
@BindView(R.id.loadingView) View loadingView; | |
@BindView(R.id.errorView) TextView errorView; | |
@BindView(R.id.emptyView) View emptyView; | |
@Override public Observable<String> showUserDataIntent() { | |
return ""; | |
} | |
@Override public void render(ExampleViewState viewState) { | |
if (viewState instanceof ExampleViewState.userData) { | |
renderResult(((ExampleViewState.userData) viewState).getResult()); | |
} else if (viewState instanceof ExampleViewState.Loading) { | |
renderLoading(); | |
} else if (viewState instanceof ExampleViewState.Error) { | |
renderError(); | |
} else if (viewState instanceof ExampleViewState.isPullToRefresh) { | |
renderPullToRefresh(); | |
}else { | |
throw new IllegalArgumentException("Don't know how to render viewState " + viewState); | |
} | |
} | |
private void renderResult(User user) { | |
// set user data here | |
loadingView.setVisibility(View.GONE); | |
emptyView.setVisibility(View.GONE); | |
errorView.setVisibility(View.GONE); | |
} | |
private void renderLoading() { | |
// set loading view here | |
loadingView.setVisibility(View.VISIBLE); | |
errorView.setVisibility(View.GONE); | |
emptyView.setVisibility(View.GONE); | |
} | |
private void renderError() { | |
// set error view here | |
loadingView.setVisibility(View.GONE); | |
errorView.setVisibility(View.VISIBLE); | |
emptyView.setVisibility(View.GONE); | |
} | |
private void renderEmptyResult() { | |
// set empty view here, it can be initialize state for init adapter or sth else. | |
loadingView.setVisibility(View.GONE); | |
errorView.setVisibility(View.GONE); | |
emptyView.setVisibility(View.VISIBLE); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment