package com.wigwamlabs.spotify.ui; import android.content.Context; import android.graphics.Bitmap; import android.util.AttributeSet; import com.wigwamlabs.spotify.ImageProvider; public class SpotifyImageView extends android.widget.ImageView implements ImageProvider.Callback { private ImageProvider mImageProvider; private String mImageLink; public SpotifyImageView(Context context, AttributeSet attrs) { super(context, attrs); setVisibility(GONE); } public void setImageProvider(ImageProvider imageProvider) { if (mImageProvider == null) { mImageProvider = imageProvider; loadImage(); } mImageProvider = imageProvider; } public void setImageLink(String imageLink) { mImageLink = imageLink; loadImage(); } private void loadImage() { if (mImageProvider == null || mImageLink == null) { setVisibility(GONE); return; } final Bitmap image = mImageProvider.get(mImageLink); if (image != null) { setImageBitmap(image); setVisibility(VISIBLE); } else { mImageProvider.load(mImageLink, this, true); setVisibility(GONE); } } @Override public void onImageImageLoaded(String imageLink, Bitmap image) { if (imageLink.equals(mImageLink)) { setImageBitmap(image); setVisibility(VISIBLE); } } }