package com.dozuki.ifixit.ui; import android.content.Context; import android.text.Html; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.TextView; import com.dozuki.ifixit.R; import com.dozuki.ifixit.model.guide.GuideInfo; import com.dozuki.ifixit.util.ImageSizes; import com.dozuki.ifixit.util.PicassoUtils; import com.dozuki.ifixit.util.Utils; import com.dozuki.ifixit.util.transformations.RoundedTransformation; import com.squareup.picasso.Picasso; import com.squareup.picasso.Transformation; public class GuideItemView extends TouchableRelativeLayout { private Picasso mPicasso; private TextView mTitleView; private ImageView mThumbnail; private boolean mShortTitle; public GuideItemView(Context context, boolean shortTitle) { super(context); LayoutInflater.from(context).inflate(R.layout.guide_grid_item, this, true); mShortTitle = shortTitle; mTitleView = (TextView)findViewById(R.id.guide_grid_item_title); mThumbnail = (ImageView)findViewById(R.id.guide_grid_item_thumbnail); mPicasso = PicassoUtils.with(context); } public void setGuideItem(GuideInfo guide) { mTitleView.setText(mShortTitle && guide.hasSubject() ? guide.mSubject : guide.mTitle); Transformation transform = new RoundedTransformation(4, 0); if (guide.hasImage()) { // Clear image before setting it to make sure the old image isn't the background while the new one is loading Utils.safeStripImageView(mThumbnail); mPicasso.cancelRequest(mThumbnail); String url = guide.getImagePath(ImageSizes.guideList); mPicasso .load(url) .transform(transform) .error(R.drawable.no_image) .into(mThumbnail); } else { mPicasso .load(R.drawable.no_image) .fit() .transform(transform) .into(mThumbnail); } } }