OSDN Git Service

overhaul
[android-x86/packages-apps-Eleven.git] / src / com / andrew / apollo / tasks / LastfmGetArtistImagesOriginal.java
1 /**\r
2  * \r
3  */\r
4 \r
5 package com.andrew.apollo.tasks;\r
6 \r
7 import java.lang.ref.WeakReference;\r
8 import java.util.Iterator;\r
9 \r
10 import android.content.Context;\r
11 import android.os.AsyncTask;\r
12 import android.widget.ImageView;\r
13 \r
14 import com.andrew.apollo.Constants;\r
15 import com.andrew.apollo.lastfm.api.Artist;\r
16 import com.andrew.apollo.lastfm.api.Image;\r
17 import com.andrew.apollo.lastfm.api.ImageSize;\r
18 import com.andrew.apollo.lastfm.api.PaginatedResult;\r
19 import com.andrew.apollo.utils.ApolloUtils;\r
20 import com.androidquery.AQuery;\r
21 \r
22 \r
23 /**\r
24  * @author Andrew Neal\r
25  * @Note This is used to display artist images in @TracksBrowser\r
26  */\r
27 public class LastfmGetArtistImagesOriginal extends AsyncTask<String, Integer, String> implements\r
28         Constants {\r
29 \r
30     // URL to cache\r
31     private String url = null;\r
32 \r
33     private final ImageView mImageView;\r
34 \r
35     private final WeakReference<ImageView> imageviewReference;\r
36 \r
37     // AQuery\r
38     private final AQuery aq;\r
39 \r
40     // Context\r
41     private final Context mContext;\r
42 \r
43     private final WeakReference<Context> contextReference;\r
44 \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
50 \r
51         // Initiate AQuery\r
52         aq = new AQuery(mContext);\r
53     }\r
54 \r
55     @Override\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
63             }\r
64             aq.cache(url, 0);\r
65             ApolloUtils.setImageURL(artistname[0], url, ARTIST_IMAGE_ORIGINAL, mContext);\r
66             return url;\r
67         } else {\r
68             url = ApolloUtils.getImageURL(artistname[0], ARTIST_IMAGE_ORIGINAL, mContext);\r
69         }\r
70         return url;\r
71     }\r
72 \r
73     @Override\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
77         }\r
78         super.onPostExecute(result);\r
79     }\r
80 }\r