OSDN Git Service

overhaul
[android-x86/packages-apps-Eleven.git] / src / com / andrew / apollo / tasks / LastfmGetArtistImages.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 \r
13 import com.andrew.apollo.Constants;\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
20 \r
21 /**\r
22  * @author Andrew Neal\r
23  * @returns A convenient image size that's perfect for a GridView.\r
24  */\r
25 public class LastfmGetArtistImages extends AsyncTask<String, Integer, String> implements Constants {\r
26 \r
27     // URL to cache\r
28     private String url = null;\r
29 \r
30     private PaginatedResult<Image> artist;\r
31 \r
32     // AQuery\r
33     private final AQuery aq;\r
34 \r
35     private final WeakReference<Context> contextReference;\r
36 \r
37     public LastfmGetArtistImages(Context context) {\r
38         contextReference = new WeakReference<Context>(context);\r
39 \r
40         // Initiate AQuery\r
41         aq = new AQuery(contextReference.get());\r
42     }\r
43 \r
44     @Override\r
45     protected String doInBackground(String... artistname) {\r
46         if (ApolloUtils.isOnline(contextReference.get()) && artistname[0] != null) {\r
47             try {\r
48                 artist = Artist.getImages(artistname[0], 1, 1, LASTFM_API_KEY);\r
49                 Iterator<Image> iterator = artist.getPageResults().iterator();\r
50                 while (iterator.hasNext()) {\r
51                     Image mTemp = iterator.next();\r
52                     url = mTemp.getImageURL(ImageSize.LARGESQUARE);\r
53                 }\r
54                 aq.cache(url, 0);\r
55                 ApolloUtils.setImageURL(artistname[0], url, ARTIST_IMAGE, contextReference.get());\r
56                 return url;\r
57             } catch (Exception e) {\r
58                 return null;\r
59             }\r
60         } else {\r
61             url = ApolloUtils.getImageURL(artistname[0], ARTIST_IMAGE, contextReference.get());\r
62         }\r
63         return url;\r
64     }\r
65 }\r