package com.kenny.openimgur.classes;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName;
import com.kenny.openimgur.api.ApiClient;
import java.util.ArrayList;
import java.util.List;
/**
* Created by kcampagna on 7/11/15.
*/
public class ImgurAlbum extends ImgurBaseObject {
public static final String ALBUM_COVER_URL = ApiClient.IMGUR_URL + "%s.jpg";
@SerializedName("cover")
private String mCoverId;
@SerializedName("images_count")
private int mAlbumImageCount;
private List<ImgurPhoto> mAlbumPhotos;
public ImgurAlbum(String id, String title, String link) {
super(id, title, link);
}
public ImgurAlbum(String id, String title, String link, String deleteHash) {
super(id, title, link, deleteHash);
}
ImgurAlbum(Parcel in) {
super(in);
mAlbumImageCount = in.readInt();
mCoverId = in.readString();
mAlbumPhotos = new ArrayList<>();
in.readTypedList(mAlbumPhotos, ImgurPhoto.CREATOR);
}
public void setCoverId(String id) {
mCoverId = id;
}
public String getCoverId() {
return mCoverId;
}
/**
* Returns the cover image url of an album
*
* @param size Optional parameter of size
* @return
*/
public String getCoverUrl(@Nullable String size) {
if (TextUtils.isEmpty(size)) {
return String.format(ALBUM_COVER_URL, mCoverId);
} else {
return String.format(ALBUM_COVER_URL, mCoverId + size);
}
}
public void addPhotosToAlbum(List<ImgurPhoto> photos) {
if (mAlbumPhotos == null) {
mAlbumPhotos = photos;
} else {
mAlbumPhotos.addAll(photos);
}
for (ImgurPhoto p : mAlbumPhotos) {
p.toHttps();
}
}
public List<ImgurPhoto> getAlbumPhotos() {
return mAlbumPhotos;
}
public int getAlbumImageCount() {
return mAlbumPhotos != null && !mAlbumPhotos.isEmpty() ? mAlbumPhotos.size() : mAlbumImageCount;
}
public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags);
out.writeInt(mAlbumImageCount);
out.writeString(mCoverId);
out.writeTypedList(mAlbumPhotos);
}
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<ImgurAlbum> CREATOR = new Parcelable.Creator<ImgurAlbum>() {
public ImgurAlbum createFromParcel(Parcel in) {
return new ImgurAlbum(in);
}
public ImgurAlbum[] newArray(int size) {
return new ImgurAlbum[size];
}
};
}