package com.manuelmaly.hn.model; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class HNFeed implements Serializable { private static final long serialVersionUID = -7957577448455303642L; private List<HNPost> mPosts; private String mNextPageURL; private String mUserAcquiredFor; // this dictates if the upvote URLs are correct private boolean mLoadedMore; // currently, we can perform only one "load-more" action reliably public HNFeed() { mPosts = new ArrayList<HNPost>(); } public HNFeed(List<HNPost> posts, String nextPageURL, String userAcquiredFor) { mPosts = posts; mNextPageURL = nextPageURL; mUserAcquiredFor = userAcquiredFor; } public void addPost(HNPost post) { mPosts.add(post); } public List<HNPost> getPosts() { return mPosts; } public void addPosts(Collection<HNPost> posts) { mPosts.addAll(posts); } public String getNextPageURL() { return mNextPageURL; } public void setNextPageURL(String mNextPageURL) { this.mNextPageURL = mNextPageURL; } public void appendLoadMoreFeed(HNFeed feed) { if (feed == null || feed.getPosts() == null) return; for (HNPost candidate : feed.getPosts()) if (!mPosts.contains(candidate)) mPosts.add(candidate); mNextPageURL = feed.getNextPageURL(); } public boolean isLoadedMore() { return mLoadedMore; } public void setLoadedMore(boolean loadedMore) { mLoadedMore = loadedMore; } public String getUserAcquiredFor() { return mUserAcquiredFor; } }