package fi.bitrite.android.ws.activity.model; import android.content.Intent; import android.os.Bundle; import fi.bitrite.android.ws.model.Feedback; import fi.bitrite.android.ws.model.Host; import fi.bitrite.android.ws.persistence.StarredHostDao; import java.util.ArrayList; import java.util.List; /** * This class is used by the HostInformationActivity to pass host information along. */ public class HostInformation { public static final int NO_ID = 0; private Host host; private boolean starred = false; private List<Feedback> feedback = new ArrayList<Feedback>(); private final int id; public HostInformation(Host host, ArrayList<Feedback> feedback, int id, boolean starred) { this.feedback = feedback; this.host = host; this.id = id; this.starred = starred; } public static HostInformation fromSavedInstanceState(Bundle savedInstanceState, StarredHostDao dao) { final Host host = savedInstanceState.getParcelable("host"); final ArrayList<Feedback> feedback = savedInstanceState.getParcelableArrayList("feedback"); final int id = savedInstanceState.getInt("id"); final boolean starred = dao.isHostStarred(id); return new HostInformation(host, feedback, id, starred); } public static HostInformation fromIntent(Intent i, StarredHostDao dao) { final Host host = (Host) i.getParcelableExtra("host"); final int id = i.getIntExtra("id", NO_ID); final ArrayList<Feedback> feedback = i.getParcelableArrayListExtra("feedback"); final boolean starred = dao.isHostStarred(id); return new HostInformation(host, feedback, id, starred); } public List<Feedback> getFeedback() { return (feedback == null) ? new ArrayList<Feedback>() : feedback; } public Host getHost() { return host; } public void setHost(Host host) { this.host = host; } public int getId() { return id; } public boolean isStarred() { return starred; } public void onSaveInstanceState(Bundle outState) { outState.putParcelable("host", host); outState.putInt("id", id); outState.putParcelableArrayList("feedback", (ArrayList<Feedback>) feedback); } public void toggleStarred() { starred = !starred; } public void setStarred(boolean newStatus) { starred = newStatus; } public void saveInIntent(Intent resultIntent) { resultIntent.putExtra("host", host); resultIntent.putExtra("id", id); resultIntent.putExtra("feedback", (ArrayList<Feedback>) feedback); } public void setFeedback(List<Feedback> feedback) { this.feedback = feedback; } public boolean getStarred() { return starred; } }