5 package com.andrew.apollo.tasks;
\r
7 import java.lang.ref.WeakReference;
\r
8 import java.util.Iterator;
\r
10 import android.content.Context;
\r
11 import android.os.AsyncTask;
\r
12 import android.widget.ImageView;
\r
14 import com.andrew.apollo.lastfm.api.Artist;
\r
15 import com.andrew.apollo.lastfm.api.Image;
\r
16 import com.andrew.apollo.lastfm.api.ImageSize;
\r
17 import com.andrew.apollo.lastfm.api.PaginatedResult;
\r
18 import com.andrew.apollo.utils.ApolloUtils;
\r
19 import com.androidquery.AQuery;
\r
21 import static com.andrew.apollo.Constants.ARTIST_IMAGE_ORIGINAL;
\r
22 import static com.andrew.apollo.Constants.LASTFM_API_KEY;
\r
25 * @author Andrew Neal
\r
26 * @Note This is used to display artist images in @TracksBrowser
\r
28 public class LastfmGetArtistImagesOriginal extends AsyncTask<String, Integer, String> {
\r
31 private String url = null;
\r
33 private final ImageView mImageView;
\r
35 private final WeakReference<ImageView> imageviewReference;
\r
38 private final AQuery aq;
\r
41 private final Context mContext;
\r
43 private final WeakReference<Context> contextReference;
\r
45 public LastfmGetArtistImagesOriginal(Context context, ImageView iv) {
\r
46 contextReference = new WeakReference<Context>(context);
\r
47 mContext = contextReference.get();
\r
48 imageviewReference = new WeakReference<ImageView>(iv);
\r
49 mImageView = imageviewReference.get();
\r
52 aq = new AQuery(mContext);
\r
56 protected String doInBackground(String... artistname) {
\r
57 if (ApolloUtils.isOnline(mContext)) {
\r
58 PaginatedResult<Image> artist = Artist.getImages(artistname[0], 1, 1, LASTFM_API_KEY);
\r
59 Iterator<Image> iterator = artist.getPageResults().iterator();
\r
60 while (iterator.hasNext()) {
\r
61 Image mTemp = iterator.next();
\r
62 url = mTemp.getImageURL(ImageSize.ORIGINAL);
\r
65 ApolloUtils.setImageURL(artistname[0], url, ARTIST_IMAGE_ORIGINAL, mContext);
\r
68 url = ApolloUtils.getImageURL(artistname[0], ARTIST_IMAGE_ORIGINAL, mContext);
\r
74 protected void onPostExecute(String result) {
\r
75 if (result != null && mImageView != null) {
\r
76 new BitmapFromURL(mImageView).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, result);
\r
78 super.onPostExecute(result);
\r