summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/WallpaperChooser.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-09-14 15:18:12 -0700
committerRomain Guy <romainguy@android.com>2009-09-14 15:18:12 -0700
commit8c724f568c92f2a60c28fdbed8fa72715d270ad9 (patch)
tree1ec00bf0d4aced9adc3170deb4d8fb1b611cf675 /src/com/android/launcher2/WallpaperChooser.java
parente498ab9986cf0d3f2d7bc1511d80134427ad2303 (diff)
downloadandroid_packages_apps_Trebuchet-8c724f568c92f2a60c28fdbed8fa72715d270ad9.tar.gz
android_packages_apps_Trebuchet-8c724f568c92f2a60c28fdbed8fa72715d270ad9.tar.bz2
android_packages_apps_Trebuchet-8c724f568c92f2a60c28fdbed8fa72715d270ad9.zip
Port wallpaper chooser change from Launcher to Launcher2.
Change-Id: I8af4dd737ab0533ed0994d81440c06b54d7118d9
Diffstat (limited to 'src/com/android/launcher2/WallpaperChooser.java')
-rw-r--r--src/com/android/launcher2/WallpaperChooser.java55
1 files changed, 36 insertions, 19 deletions
diff --git a/src/com/android/launcher2/WallpaperChooser.java b/src/com/android/launcher2/WallpaperChooser.java
index 8919ecef3..46f770fc4 100644
--- a/src/com/android/launcher2/WallpaperChooser.java
+++ b/src/com/android/launcher2/WallpaperChooser.java
@@ -23,6 +23,7 @@ import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.os.AsyncTask;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -31,7 +32,6 @@ import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
-import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
@@ -50,6 +50,7 @@ public class WallpaperChooser extends Activity implements AdapterView.OnItemSele
private ArrayList<Integer> mThumbs;
private ArrayList<Integer> mImages;
+ private AsyncTask<Integer,Void,Bitmap> mLoader;
@Override
public void onCreate(Bundle icicle) {
@@ -60,17 +61,12 @@ public class WallpaperChooser extends Activity implements AdapterView.OnItemSele
setContentView(R.layout.wallpaper_chooser);
- mOptions = new BitmapFactory.Options();
- mOptions.inDither = false;
- mOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
-
mGallery = (Gallery) findViewById(R.id.gallery);
mGallery.setAdapter(new ImageAdapter(this));
mGallery.setOnItemSelectedListener(this);
mGallery.setCallbackDuringFling(false);
- Button b = (Button) findViewById(R.id.set);
- b.setOnClickListener(this);
+ findViewById(R.id.set).setOnClickListener(this);
mImageView = (ImageView) findViewById(R.id.wallpaper);
}
@@ -109,19 +105,10 @@ public class WallpaperChooser extends Activity implements AdapterView.OnItemSele
}
public void onItemSelected(AdapterView parent, View v, int position, long id) {
- final ImageView view = mImageView;
- Bitmap b = BitmapFactory.decodeResource(getResources(), mImages.get(position), mOptions);
- view.setImageBitmap(b);
-
- // Help the GC
- if (mBitmap != null) {
- mBitmap.recycle();
+ if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) {
+ mLoader.cancel(true);
}
- mBitmap = b;
-
- final Drawable drawable = view.getDrawable();
- drawable.setFilterBitmap(true);
- drawable.setDither(true);
+ mLoader = new WallpaperLoader().execute(position);
}
/*
@@ -185,4 +172,34 @@ public class WallpaperChooser extends Activity implements AdapterView.OnItemSele
public void onClick(View v) {
selectWallpaper(mGallery.getSelectedItemPosition());
}
+
+ class WallpaperLoader extends AsyncTask<Integer, Void, Bitmap> {
+ protected Bitmap doInBackground(Integer... params) {
+ if (isCancelled()) return null;
+ return BitmapFactory.decodeResource(getResources(), mImages.get(params[0]), null);
+ }
+
+ @Override
+ protected void onPostExecute(Bitmap b) {
+ if (b == null) return;
+
+ if (!isCancelled()) {
+ // Help the GC
+ if (mBitmap != null) {
+ mBitmap.recycle();
+ }
+
+ final ImageView view = mImageView;
+ view.setImageBitmap(b);
+
+ mBitmap = b;
+
+ final Drawable drawable = view.getDrawable();
+ drawable.setFilterBitmap(true);
+ drawable.setDither(true);
+
+ view.postInvalidate();
+ }
+ }
+ }
}