package com.hannesdorfmann.mosby3.sample.mail.search; import android.os.Parcel; import com.hannesdorfmann.mosby3.sample.mail.base.view.viewstate.AuthCastedArrayListViewState; import com.hannesdorfmann.mosby3.sample.mail.model.mail.Mail; import java.util.List; /** * @author Hannes Dorfmann */ public class SearchViewState extends AuthCastedArrayListViewState<List<Mail>, SearchView> { public static final Creator<SearchViewState> CREATOR = new Creator<SearchViewState>() { @Override public SearchViewState createFromParcel(Parcel source) { return new SearchViewState(source); } @Override public SearchViewState[] newArray(int size) { return new SearchViewState[size]; } }; /** * This will be the initial state. Not searched for mails yet, therefore not show an error and * not * show loading and not show content */ public static final int STATE_SHOW_SEARCH_NOT_STARTED = 5; boolean loadingMore = false; public SearchViewState() { } protected SearchViewState(Parcel source) { super(source); } public void setLoadingMore(boolean loadingMore) { this.loadingMore = loadingMore; } public void setShowSearchNotStarted() { currentViewState = STATE_SHOW_SEARCH_NOT_STARTED; loadedData = null; exception = null; } @Override public void apply(SearchView view, boolean retained) { if (currentViewState == STATE_SHOW_SEARCH_NOT_STARTED) { view.showSearchNotStartedYet(); } else { super.apply(view, retained); if (currentViewState == STATE_SHOW_CONTENT) { view.showLoadMore(loadingMore); } } } }