package com.xda.one.model.augmented; import com.xda.one.api.model.interfaces.Post; import com.xda.one.api.model.interfaces.container.PostContainer; import com.xda.one.api.model.response.ResponseUnifiedThread; import com.xda.one.api.model.response.container.ResponsePostContainer; import android.content.Context; import android.os.Parcel; import java.util.ArrayList; import java.util.List; public class AugmentedPostContainer implements PostContainer { public static final Creator<AugmentedPostContainer> CREATOR = new Creator<AugmentedPostContainer>() { @Override public AugmentedPostContainer createFromParcel(Parcel source) { return new AugmentedPostContainer(source); } @Override public AugmentedPostContainer[] newArray(int size) { return new AugmentedPostContainer[size]; } }; private final PostContainer mContainer; private List<AugmentedPost> mPosts; public AugmentedPostContainer(final PostContainer container, final Context context) { mContainer = container; final List<? extends Post> posts = container.getPosts(); mPosts = new ArrayList<>(posts.size()); for (final Post post : posts) { final AugmentedPost formattedPost = new AugmentedPost(post, context); mPosts.add(formattedPost); } } private AugmentedPostContainer(final Parcel in) { mContainer = new ResponsePostContainer(in); } @Override public List<AugmentedPost> getPosts() { return mPosts; } @Override public int getTotalPages() { return mContainer.getTotalPages(); } @Override public int getPerPage() { return mContainer.getPerPage(); } @Override public int getCurrentPage() { return mContainer.getCurrentPage(); } @Override public int getIndex() { return mContainer.getIndex(); } @Override public ResponseUnifiedThread getThread() { return mContainer.getThread(); } @Override public int describeContents() { return mContainer.describeContents(); } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mContainer, flags); } }