OSDN Git Service

Apollo: Add Greek translation
[android-x86/packages-apps-Eleven.git] / src / com / andrew / apollo / tasks / ViewHolderTask.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.R;\r
15 import com.andrew.apollo.utils.ApolloUtils;\r
16 import com.andrew.apollo.views.ViewHolderGrid;\r
17 import com.andrew.apollo.views.ViewHolderList;\r
18 import com.androidquery.AQuery;\r
19 \r
20 import static com.andrew.apollo.Constants.ALBUM_IMAGE;\r
21 import static com.andrew.apollo.Constants.ARTIST_IMAGE;\r
22 \r
23 /**\r
24  * @author Andrew Neal\r
25  */\r
26 public class ViewHolderTask extends AsyncTask<String, Integer, Bitmap> {\r
27 \r
28     private final ViewHolderList mViewHolderList;\r
29 \r
30     private final ViewHolderGrid mViewHolderGrid;\r
31 \r
32     private final WeakReference<ImageView> imageViewReference;\r
33 \r
34     private final Context mContext;\r
35 \r
36     private final int mPosition;\r
37 \r
38     private final int choice;\r
39 \r
40     private final int holderChoice;\r
41 \r
42     private final AQuery aquery;\r
43 \r
44     private final ImageView mImageView;\r
45 \r
46     private final int albumart;\r
47 \r
48     private final WeakReference<Context> contextReference;\r
49 \r
50     private String url;\r
51 \r
52     private WeakReference<Bitmap> bitmapReference;\r
53 \r
54     public ViewHolderTask(ViewHolderList vh, ViewHolderGrid vhg, int position, Context c, int opt,\r
55             int holderOpt, ImageView iv) {\r
56         mViewHolderList = vh;\r
57         mViewHolderGrid = vhg;\r
58         mPosition = position;\r
59         contextReference = new WeakReference<Context>(c);\r
60         mContext = contextReference.get();\r
61         choice = opt;\r
62         holderChoice = holderOpt;\r
63         imageViewReference = new WeakReference<ImageView>(iv);\r
64         mImageView = imageViewReference.get();\r
65         aquery = new AQuery(mContext);\r
66 \r
67         albumart = mContext.getResources().getInteger(R.integer.listview_album_art);\r
68     }\r
69 \r
70     @Override\r
71     protected Bitmap doInBackground(String... args) {\r
72         if (choice == 0)\r
73             url = ApolloUtils.getImageURL(args[0], ARTIST_IMAGE, mContext);\r
74         if (choice == 1)\r
75             url = ApolloUtils.getImageURL(args[0], ALBUM_IMAGE, mContext);\r
76         bitmapReference = new WeakReference<Bitmap>(aquery.getCachedImage(url));\r
77         if (holderChoice == 0) {\r
78             return ApolloUtils.getResizedBitmap(bitmapReference.get(), albumart, albumart);\r
79         } else if (holderChoice == 1) {\r
80             return bitmapReference.get();\r
81         }\r
82         return null;\r
83     }\r
84 \r
85     @Override\r
86     protected void onPostExecute(Bitmap result) {\r
87         if (result != null && imageViewReference != null && holderChoice == 0\r
88                 && mViewHolderList.position == mPosition && mViewHolderList != null)\r
89             mImageView.setImageBitmap(result);\r
90         if (result != null && imageViewReference != null && holderChoice == 1\r
91                 && mViewHolderGrid.position == mPosition && mViewHolderGrid != null)\r
92             mImageView.setImageBitmap(result);\r
93         super.onPostExecute(result);\r
94     }\r
95 }\r