package com.hannesdorfmann.mosby3.sample.mail.write;
import android.os.Bundle;
import com.hannesdorfmann.mosby3.mvp.viewstate.RestorableViewState;
/**
* @author Hannes Dorfmann
*/
public class WriteViewState implements RestorableViewState<WriteView> {
private final String KEY_STATE =
"com.hannesdorfmann.mosby.sample.mail.write.WriteViewState.current_State";
private final int STATE_SHOWING_FORM = 0;
private final int STATE_SHOWING_LOADING = 1;
private final int STATE_SHOWING_AUTH_REQUIRED = -1;
private int currentState = 0;
@Override public void saveInstanceState(Bundle out) {
out.putInt(KEY_STATE, currentState);
}
@Override public RestorableViewState<WriteView> restoreInstanceState(Bundle in) {
currentState = in.getInt(KEY_STATE);
return this;
}
@Override public void apply(WriteView view, boolean retained) {
if (currentState == STATE_SHOWING_FORM) {
view.showForm();
} else if (currentState == STATE_SHOWING_AUTH_REQUIRED) {
view.showAuthenticationRequired();
} else {
view.showLoading();
}
}
public void setStateShowForm() {
currentState = STATE_SHOWING_FORM;
}
public void setStateShowLoading() {
currentState = STATE_SHOWING_LOADING;
}
public void setStateAuthenticationRequired() {
currentState = STATE_SHOWING_AUTH_REQUIRED;
}
}