package com.dxjia.doubantop.datas.beans; import android.text.TextUtils; import com.dxjia.doubantop.datas.beans.entities.AvatarsEntity; import com.dxjia.doubantop.datas.beans.entities.CastsEntity; import com.dxjia.doubantop.datas.beans.entities.DirectorsEntity; import com.dxjia.doubantop.datas.beans.entities.ImagesEntity; import com.dxjia.doubantop.datas.beans.entities.RatingEntity; import com.dxjia.doubantop.datas.beans.entities.SubjectEntity; import com.dxjia.doubantop.net.DoubanApiUtils; import java.util.ArrayList; import java.util.List; /** * Created by djia on 15-6-24. */ public class MovieInfoBean { private SubjectEntity mMovieDetails; public MovieInfoBean(SubjectEntity mMovieDetails) { this.mMovieDetails = mMovieDetails; } public MovieInfoBean() { } /** * get formated generes * [动作, 科幻, 冒险] * @return */ public String getFormatedGenres() { return (mMovieDetails == null) ? null : mMovieDetails.formatGenres(); } /** * get the large image uri for this movie * @return uri */ public String getImageUri() { if (mMovieDetails == null) { return null; } ImagesEntity images = mMovieDetails.getImages(); if (images == null) { return null; } switch (BeansUtils.getImageSizePrefer()) { case BeansUtils.IMAGE_URI_USE_SMALL: return DoubanApiUtils.appendApiKey(images.getSmall(), true); case BeansUtils.IMAGE_URI_USE_MEDIUM: return DoubanApiUtils.appendApiKey(images.getMedium(), true); case BeansUtils.IMAGE_URI_USE_LARGE: return DoubanApiUtils.appendApiKey(images.getLarge(), true); default: return DoubanApiUtils.appendApiKey(images.getLarge(), true); } } /** * 获取ID * @return */ public String getId() { return (mMovieDetails == null) ? null : mMovieDetails.getId(); } /** * get title * @return */ public String getTitle() { return (mMovieDetails == null) ? null : mMovieDetails.getTitle(); } /** * 获取评分 * @return */ public String getAverage() { if (mMovieDetails == null) { return null; } RatingEntity rating = mMovieDetails.getRating(); if (rating == null) { return null; } return (mMovieDetails == null) ? null : rating.getAverageStr(); } /** * 获取主演个数 * @return */ public int getCastsCount() { if (mMovieDetails == null) { return 0; } String[] ids = getCastsIds(); if (ids == null) { return 0; } return ids.length; } /** * 获取到所有主演的id数组 * @return */ public String[] getCastsIds() { if (mMovieDetails == null) return null; List<CastsEntity> casts = mMovieDetails.getCasts(); if (casts == null || casts.size() == 0) return null; List<String> idArray = new ArrayList<String>(); CastsEntity castsEntity; int count = 0; for (int i = 0; i < casts.size(); i++) { castsEntity = casts.get(i); // skip invalid casts if (castsEntity == null) { continue; } String id = castsEntity.getId(); // skip invalid casts if (TextUtils.isEmpty(id)) { continue; } idArray.add(id); count++; } return idArray.toArray(new String[count]); } /** * 获取到所有的主演的头像图片uri数组 * @return */ public String[] getCastsAvatorUris() { if (mMovieDetails == null) return null; List<CastsEntity> casts = mMovieDetails.getCasts(); if (casts == null || casts.size() == 0) return null; List<String> urisList = new ArrayList<>(); CastsEntity castsEntity; int count = 0; for (int i = 0; i < casts.size(); i++) { castsEntity = casts.get(i); if (castsEntity == null) { continue; } AvatarsEntity avatars = castsEntity.getAvatars(); if (avatars == null) { continue; } // skip invalid casts if (TextUtils.isEmpty(castsEntity.getId())) { continue; } switch (BeansUtils.getImageSizePrefer()) { case BeansUtils.IMAGE_URI_USE_SMALL: urisList.add(DoubanApiUtils.appendApiKey(avatars.getSmall(), true)); break; case BeansUtils.IMAGE_URI_USE_MEDIUM: urisList.add(DoubanApiUtils.appendApiKey(avatars.getMedium(), true)); break; case BeansUtils.IMAGE_URI_USE_LARGE: urisList.add(DoubanApiUtils.appendApiKey(avatars.getLarge(), true)); break; default: urisList.add(DoubanApiUtils.appendApiKey(avatars.getLarge(), true)); } count++; } return urisList.toArray(new String[count]); } /** * 获取导演ID * @return */ public String getDirectorId() { DirectorsEntity director = getDirector(); if (director == null) { return null; } return (mMovieDetails == null) ? null : director.getId(); } /** * 获取导演 */ private DirectorsEntity getDirector() { if (mMovieDetails == null) { return null; } List<DirectorsEntity> directors = mMovieDetails.getDirectors(); if (directors == null || directors.size() == 0) { return null; } // just get the first for now DirectorsEntity director = directors.get(0); return director; } /** * 获取导演的图片地址 * @return */ public String getDirectorImageUri() { DirectorsEntity director = getDirector(); if (director == null) { return null; } AvatarsEntity avatars = director.getAvatars(); if (avatars == null) { return null; } switch (BeansUtils.getImageSizePrefer()) { case BeansUtils.IMAGE_URI_USE_SMALL: return DoubanApiUtils.appendApiKey(avatars.getSmall(), true); case BeansUtils.IMAGE_URI_USE_MEDIUM: return DoubanApiUtils.appendApiKey(avatars.getMedium(), true); case BeansUtils.IMAGE_URI_USE_LARGE: return DoubanApiUtils.appendApiKey(avatars.getLarge(), true); default: return DoubanApiUtils.appendApiKey(avatars.getLarge(), true); } } }