OSDN Git Service

035725840e77d4ec8dc72370ffbfe21be6bc328a
[android-x86/packages-apps-Eleven.git] / src / com / andrew / apollo / tasks / ViewHolderQueueTask.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 \r
9 import android.content.Context;\r
10 import android.graphics.Bitmap;\r
11 import android.os.AsyncTask;\r
12 import android.widget.ImageView;\r
13 \r
14 import com.andrew.apollo.utils.ApolloUtils;\r
15 import com.andrew.apollo.views.ViewHolderQueue;\r
16 import com.androidquery.AQuery;\r
17 \r
18 import static com.andrew.apollo.Constants.ALBUM_IMAGE;\r
19 import static com.andrew.apollo.Constants.ARTIST_IMAGE;\r
20 \r
21 /**\r
22  * @author Andrew Neal\r
23  */\r
24 public class ViewHolderQueueTask extends AsyncTask<String, Integer, Bitmap> {\r
25 \r
26     private final ViewHolderQueue mViewHolderQueue;\r
27 \r
28     private final WeakReference<ImageView> imageViewReference;\r
29 \r
30     private final Context mContext;\r
31 \r
32     private final int mPosition;\r
33 \r
34     private final int choice;\r
35 \r
36     private final int holderChoice;\r
37 \r
38     private final AQuery aquery;\r
39 \r
40     private final ImageView mImageView;\r
41 \r
42     private String url;\r
43 \r
44     private WeakReference<Bitmap> bitmapReference;\r
45 \r
46     private final WeakReference<Context> contextReference;\r
47 \r
48     public ViewHolderQueueTask(ViewHolderQueue vh, int position, Context c, int opt, int holderOpt,\r
49             ImageView iv) {\r
50         mViewHolderQueue = vh;\r
51         mPosition = position;\r
52         contextReference = new WeakReference<Context>(c);\r
53         mContext = contextReference.get();\r
54         choice = opt;\r
55         holderChoice = holderOpt;\r
56         imageViewReference = new WeakReference<ImageView>(iv);\r
57         mImageView = imageViewReference.get();\r
58 \r
59         // AQuery\r
60         aquery = new AQuery(mContext);\r
61     }\r
62 \r
63     @Override\r
64     protected Bitmap doInBackground(String... args) {\r
65         if (choice == 0)\r
66             url = ApolloUtils.getImageURL(args[0], ARTIST_IMAGE, mContext);\r
67         if (choice == 1)\r
68             url = ApolloUtils.getImageURL(args[0], ALBUM_IMAGE, mContext);\r
69         bitmapReference = new WeakReference<Bitmap>(aquery.getCachedImage(url));\r
70         return bitmapReference.get();\r
71     }\r
72 \r
73     @Override\r
74     protected void onPostExecute(Bitmap result) {\r
75         if (imageViewReference != null && holderChoice == 0\r
76                 && mViewHolderQueue.position == mPosition && mViewHolderQueue != null)\r
77             aquery.id(mImageView).image(result);\r
78         if (imageViewReference != null && holderChoice == 1\r
79                 && mViewHolderQueue.position == mPosition && mViewHolderQueue != null)\r
80             aquery.id(mImageView).image(result);\r
81         super.onPostExecute(result);\r
82     }\r
83 }\r