package com.tevinjeffrey.rutgersct.ui.chooser; import android.os.Parcel; import android.os.Parcelable; import com.tevinjeffrey.rutgersct.rutgersapi.model.SystemMessage; import com.tevinjeffrey.rutgersct.rutgersapi.utils.SemesterUtils; import com.tevinjeffrey.rutgersct.ui.base.BaseViewState; public class ChooserViewState extends BaseViewState<ChooserView> implements Parcelable { public SystemMessage systemMessage; public String otherSemesterText; public SemesterUtils.Semester otherSemesterTag; @Override public void apply(ChooserView view, boolean retainedState) { view.initToolbar(); view.initPicker(); if (systemMessage != null) { view.showMessage(systemMessage); } if (otherSemesterTag != null && otherSemesterText != null) { view.restoreOtherSemester(otherSemesterText, otherSemesterTag); } } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(this.systemMessage, 0); dest.writeString(this.otherSemesterText); dest.writeParcelable(this.otherSemesterTag, 0); } public ChooserViewState() { } protected ChooserViewState(Parcel in) { this.systemMessage = in.readParcelable(SystemMessage.class.getClassLoader()); this.otherSemesterText = in.readString(); this.otherSemesterTag = in.readParcelable(SemesterUtils.Semester.class.getClassLoader()); } public static final Parcelable.Creator<ChooserViewState> CREATOR = new Parcelable.Creator<ChooserViewState>() { public ChooserViewState createFromParcel(Parcel source) { return new ChooserViewState(source); } public ChooserViewState[] newArray(int size) { return new ChooserViewState[size]; } }; }