summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/filtershow/EditorPlaceHolder.java7
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java51
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java207
-rw-r--r--src/com/android/gallery3d/filtershow/editors/Editor.java4
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorCrop.java3
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorFlip.java3
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorRotate.java3
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorStraighten.java3
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilter.java5
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java3
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java5
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java4
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java18
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageVignette.java4
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java121
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java12
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/FilteringPipeline.java3
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java13
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/RenderingRequest.java1
20 files changed, 203 insertions, 269 deletions
diff --git a/src/com/android/gallery3d/filtershow/EditorPlaceHolder.java b/src/com/android/gallery3d/filtershow/EditorPlaceHolder.java
index 30d4ddefa..7faa3d3ad 100644
--- a/src/com/android/gallery3d/filtershow/EditorPlaceHolder.java
+++ b/src/com/android/gallery3d/filtershow/EditorPlaceHolder.java
@@ -18,7 +18,6 @@ public class EditorPlaceHolder {
private FrameLayout mContainer = null;
private HashMap<Integer, Editor> mEditors = new HashMap<Integer, Editor>();
private Vector<ImageShow> mOldViews = new Vector<ImageShow>();
- private ImageLoader mImageLoader = null;
public EditorPlaceHolder(FilterShowActivity activity) {
mActivity = activity;
@@ -47,7 +46,7 @@ public class EditorPlaceHolder {
try {
editor.createEditor(mActivity, mContainer);
- editor.setImageLoader(mImageLoader);
+ editor.getImageShow().bindAsImageLoadListener();
mContainer.setVisibility(View.VISIBLE);
mContainer.removeAllViews();
View eview = editor.getTopLevelView();
@@ -81,10 +80,6 @@ public class EditorPlaceHolder {
}
}
- public void setImageLoader(ImageLoader imageLoader) {
- mImageLoader = imageLoader;
- }
-
public Editor getEditor(int editorId) {
return mEditors.get(editorId);
}
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 4394cdee5..c29709b91 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -20,6 +20,7 @@ import android.app.ActionBar;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentValues;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@@ -27,6 +28,7 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Point;
+import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
@@ -111,7 +113,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
public static final String TINY_PLANET_ACTION = "com.android.camera.action.TINY_PLANET";
public static final String LAUNCH_FULLSCREEN = "launch-fullscreen";
- private ImageLoader mImageLoader = null;
private ImageShow mImageShow = null;
private View mSaveButton = null;
@@ -251,7 +252,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
mEditorPlaceHolder.hide();
- mImageShow.setImageLoader(mImageLoader);
+ mImageShow.bindAsImageLoadListener();
fillFx();
fillBorders();
@@ -262,7 +263,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
}
public void setupStatePanel() {
- mImageLoader.setHistoryManager(mMasterImage.getHistory());
+ MasterImage.getImage().setHistoryManager(mMasterImage.getHistory());
}
private void fillFilters() {
@@ -330,7 +331,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
mEditorPlaceHolder.setContainer((FrameLayout) findViewById(R.id.editorContainer));
EditorManager.addEditors(mEditorPlaceHolder);
mEditorPlaceHolder.setOldViews(mImageViews);
- mEditorPlaceHolder.setImageLoader(mImageLoader);
+
}
private void fillEditors() {
@@ -498,16 +499,29 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
private class LoadHighresBitmapTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
- mImageLoader.loadHighResBitmap();
+ MasterImage master = MasterImage.getImage();
+ Rect originalBounds = master.getOriginalBounds();
+ if (master.supportsHighRes()) {
+ int highresPreviewSize = master.getOriginalBitmapLarge().getWidth() * 2;
+ if (highresPreviewSize > originalBounds.width()) {
+ highresPreviewSize = originalBounds.width();
+ }
+ Bitmap originalHires = ImageLoader.loadOrientedScaledBitmap(master,
+ master.getActivity(), master.getUri(), highresPreviewSize, false,
+ master.getOrientation());
+ master.setOriginalBitmapHighres(originalHires);
+ master.warnListeners();
+ }
return true;
}
@Override
protected void onPostExecute(Boolean result) {
- Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres();
+ Bitmap highresBitmap = MasterImage.getImage().getOriginalBitmapHighres();
if (highresBitmap != null) {
FilteringPipeline pipeline = FilteringPipeline.getPipeline();
- float highResPreviewScale = (float) highresBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width();
+ float highResPreviewScale = (float) highresBitmap.getWidth()
+ / (float) MasterImage.getImage().getOriginalBounds().width();
pipeline.setHighResPreviewScaleFactor(highResPreviewScale);
}
}
@@ -522,10 +536,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
@Override
protected Boolean doInBackground(Uri... params) {
- if (!mImageLoader.loadBitmap(params[0], mBitmapSize)) {
+ if (!MasterImage.getImage().loadBitmap(params[0], mBitmapSize)) {
return false;
}
- publishProgress(mImageLoader.queryLightCycle360());
+ publishProgress(ImageLoader.queryLightCycle360(MasterImage.getImage().getActivity()));
return true;
}
@@ -560,10 +574,11 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
final View imageShow = findViewById(R.id.imageShow);
imageShow.setVisibility(View.VISIBLE);
- Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge();
+ Bitmap largeBitmap = MasterImage.getImage().getOriginalBitmapLarge();
FilteringPipeline pipeline = FilteringPipeline.getPipeline();
pipeline.setOriginal(largeBitmap);
- float previewScale = (float) largeBitmap.getWidth() / (float) mImageLoader.getOriginalBounds().width();
+ float previewScale = (float) largeBitmap.getWidth()
+ / (float) MasterImage.getImage().getOriginalBounds().width();
pipeline.setPreviewScaleFactor(previewScale);
if (!mShowingTinyPlanet) {
mCategoryFiltersAdapter.removeTinyPlanet();
@@ -698,7 +713,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType(SharedImageProvider.MIME_TYPE);
- mSharedOutputFile = SaveCopyTask.getNewFile(this, mImageLoader.getUri());
+ mSharedOutputFile = SaveCopyTask.getNewFile(this, MasterImage.getImage().getUri());
Uri uri = Uri.withAppendedPath(SharedImageProvider.CONTENT_URI,
Uri.encode(mSharedOutputFile.getAbsolutePath()));
intent.putExtra(Intent.EXTRA_STREAM, uri);
@@ -752,16 +767,16 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
}
FiltersManager.setResources(getResources());
if (!mLoading) {
- Bitmap largeBitmap = mImageLoader.getOriginalBitmapLarge();
+ Bitmap largeBitmap = MasterImage.getImage().getOriginalBitmapLarge();
FilteringPipeline pipeline = FilteringPipeline.getPipeline();
pipeline.setOriginal(largeBitmap);
float previewScale = (float) largeBitmap.getWidth() /
- (float) mImageLoader.getOriginalBounds().width();
+ (float) MasterImage.getImage().getOriginalBounds().width();
pipeline.setPreviewScaleFactor(previewScale);
- Bitmap highresBitmap = mImageLoader.getOriginalBitmapHighres();
+ Bitmap highresBitmap = MasterImage.getImage().getOriginalBitmapHighres();
if (highresBitmap != null) {
float highResPreviewScale = (float) highresBitmap.getWidth() /
- (float) mImageLoader.getOriginalBounds().width();
+ (float) MasterImage.getImage().getOriginalBounds().width();
pipeline.setHighResPreviewScaleFactor(highResPreviewScale);
}
pipeline.turnOnPipeline(true);
@@ -847,8 +862,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
public void setDefaultPreset() {
// Default preset (original)
ImagePreset preset = new ImagePreset(); // empty
- preset.setImageLoader(mImageLoader);
-
mMasterImage.setPreset(preset, preset.getLastRepresentation(), true);
}
@@ -905,7 +918,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
}
public void setupMasterImage() {
- mImageLoader = new ImageLoader(this, getApplicationContext());
HistoryManager historyManager = new HistoryManager();
StateAdapter imageStateAdapter = new StateAdapter(this, 0);
@@ -914,7 +926,6 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
mMasterImage.setHistoryManager(historyManager);
mMasterImage.setStateAdapter(imageStateAdapter);
mMasterImage.setActivity(this);
- mMasterImage.setImageLoader(mImageLoader);
if (Runtime.getRuntime().maxMemory() > LIMIT_SUPPORTS_HIGHRES) {
mMasterImage.setSupportsHighRes(true);
diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
index 85cebab4d..ca8c7a392 100644
--- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
+++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
@@ -32,12 +32,9 @@ import android.util.Log;
import com.adobe.xmp.XMPException;
import com.adobe.xmp.XMPMeta;
-import com.android.gallery3d.R;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.exif.ExifInterface;
import com.android.gallery3d.filtershow.FilterShowActivity;
-import com.android.gallery3d.filtershow.history.HistoryManager;
-import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.pipeline.ImagePreset;
import com.android.gallery3d.filtershow.tools.SaveCopyTask;
@@ -47,24 +44,10 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Vector;
-import java.util.concurrent.locks.ReentrantLock;
-
-// TODO: this class has waaaay to much bitmap copying. Cleanup.
-public class ImageLoader {
+public final class ImageLoader {
private static final String LOGTAG = "ImageLoader";
- private final Vector<ImageShow> mListeners = new Vector<ImageShow>();
- private Bitmap mOriginalBitmapSmall = null;
- private Bitmap mOriginalBitmapLarge = null;
- private Bitmap mOriginalBitmapHighres = null;
- private Bitmap mBackgroundBitmap = null;
-
- private int mOrientation = 0;
- private HistoryManager mHistoryManager = null;
-
- private FilterShowActivity mActivity = null;
public static final String JPEG_MIME_TYPE = "image/jpeg";
@@ -81,65 +64,11 @@ public class ImageLoader {
public static final int ORI_TRANSVERSE = ExifInterface.Orientation.LEFT_BOTTOM;
private static final int BITMAP_LOAD_BACKOUT_ATTEMPTS = 5;
- private Context mContext = null;
- private Uri mUri = null;
-
- private Rect mOriginalBounds = null;
- private static int mZoomOrientation = ORI_NORMAL;
-
- static final int MAX_BITMAP_DIM = 900;
- static final int SMALL_BITMAP_DIM = 160;
-
- private ReentrantLock mLoadingLock = new ReentrantLock();
-
- public ImageLoader(FilterShowActivity activity, Context context) {
- mActivity = activity;
- mContext = context;
- }
- public static int getZoomOrientation() {
- return mZoomOrientation;
- }
+ public static final int MAX_BITMAP_DIM = 900;
+ public static final int SMALL_BITMAP_DIM = 160;
- public FilterShowActivity getActivity() {
- return mActivity;
- }
-
- public void loadHighResBitmap() {
- if (MasterImage.getImage().supportsHighRes()) {
- int highresPreviewSize = mOriginalBitmapLarge.getWidth() * 2;
- if (highresPreviewSize > mOriginalBounds.width()) {
- highresPreviewSize = mOriginalBounds.width();
- }
- mOriginalBitmapHighres = loadScaledBitmap(mUri, highresPreviewSize, false);
- if (mOrientation > 1 && mOriginalBitmapHighres != null) {
- mOriginalBitmapHighres = rotateToPortrait(mOriginalBitmapHighres, mOrientation);
- }
- warnListeners();
- }
- }
-
- public boolean loadBitmap(Uri uri, int size) {
- mLoadingLock.lock();
- mUri = uri;
- mOrientation = getOrientation(mContext, uri);
- mOriginalBitmapLarge = loadScaledBitmap(uri, size);
- if (mOriginalBitmapLarge == null) {
- mLoadingLock.unlock();
- return false;
- }
- updateBitmaps();
- mLoadingLock.unlock();
- return true;
- }
-
- public Uri getUri() {
- return mUri;
- }
-
- public Rect getOriginalBounds() {
- return mOriginalBounds;
- }
+ private ImageLoader() {}
public static int getOrientation(Context context, Uri uri) {
if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {
@@ -149,7 +78,6 @@ public class ImageLoader {
}
String path = uri.getPath();
int orientation = -1;
- InputStream is = null;
ExifInterface exif = new ExifInterface();
try {
exif.readExif(path);
@@ -194,22 +122,11 @@ public class ImageLoader {
}
}
- private void updateBitmaps() {
- if (mOrientation > 1) {
- mOriginalBitmapLarge = rotateToPortrait(mOriginalBitmapLarge, mOrientation);
- }
- int sw = SMALL_BITMAP_DIM;
- int sh = (int) (sw * (float) mOriginalBitmapLarge.getHeight() / (float) mOriginalBitmapLarge.getWidth());
- mOriginalBitmapSmall = Bitmap.createScaledBitmap(mOriginalBitmapLarge, sw, sh, true);
- mZoomOrientation = mOrientation;
- warnListeners();
- }
-
- public Bitmap decodeImage(int id, BitmapFactory.Options options) {
- return BitmapFactory.decodeResource(mContext.getResources(), id, options);
+ public static Bitmap decodeImage(Context context, int id, BitmapFactory.Options options) {
+ return BitmapFactory.decodeResource(context.getResources(), id, options);
}
- public static Bitmap rotateToPortrait(Bitmap bitmap, int ori) {
+ public static Bitmap orientBitmap(Bitmap bitmap, int ori) {
Matrix matrix = new Matrix();
int w = bitmap.getWidth();
int h = bitmap.getHeight();
@@ -254,10 +171,11 @@ public class ImageLoader {
bitmap.getHeight(), matrix, true);
}
- private Bitmap loadRegionBitmap(Uri uri, BitmapFactory.Options options, Rect bounds) {
+ private static Bitmap loadRegionBitmap(Context context, Uri uri, BitmapFactory.Options options,
+ Rect bounds) {
InputStream is = null;
try {
- is = mContext.getContentResolver().openInputStream(uri);
+ is = context.getContentResolver().openInputStream(uri);
BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(is, false);
Rect r = new Rect(0, 0, decoder.getWidth(), decoder.getHeight());
// return null if bounds are not entirely within the bitmap
@@ -275,14 +193,20 @@ public class ImageLoader {
return null;
}
- private Bitmap loadScaledBitmap(Uri uri, int size) {
- return loadScaledBitmap(uri, size, true);
+ public static Bitmap loadOrientedScaledBitmap(MasterImage master, Context context, Uri uri,
+ int size, boolean enforceSize, int orientation) {
+ Bitmap bmap = loadScaledBitmap(master, context, uri, size, enforceSize);
+ if (bmap != null) {
+ bmap = orientBitmap(bmap, orientation);
+ }
+ return bmap;
}
- private Bitmap loadScaledBitmap(Uri uri, int size, boolean enforceSize) {
+ public static Bitmap loadScaledBitmap(MasterImage master, Context context, Uri uri, int size,
+ boolean enforceSize) {
InputStream is = null;
try {
- is = mContext.getContentResolver().openInputStream(uri);
+ is = context.getContentResolver().openInputStream(uri);
Log.v(LOGTAG, "loading uri " + uri.getPath() + " input stream: "
+ is);
BitmapFactory.Options o = new BitmapFactory.Options();
@@ -292,7 +216,7 @@ public class ImageLoader {
int width_tmp = o.outWidth;
int height_tmp = o.outHeight;
- mOriginalBounds = new Rect(0, 0, width_tmp, height_tmp);
+ master.setOriginalBounds(new Rect(0, 0, width_tmp, height_tmp));
int scale = 1;
while (true) {
@@ -317,7 +241,7 @@ public class ImageLoader {
o2.inMutable = true;
Utils.closeSilently(is);
- is = mContext.getContentResolver().openInputStream(uri);
+ is = context.getContentResolver().openInputStream(uri);
return BitmapFactory.decodeStream(is, null, o2);
} catch (FileNotFoundException e) {
Log.e(LOGTAG, "FileNotFoundException: " + uri);
@@ -329,53 +253,8 @@ public class ImageLoader {
return null;
}
- public Bitmap getBackgroundBitmap(Resources resources) {
- if (mBackgroundBitmap == null) {
- mBackgroundBitmap = BitmapFactory.decodeResource(resources,
- R.drawable.filtershow_background);
- }
- return mBackgroundBitmap;
-
- }
-
- public Bitmap getOriginalBitmapSmall() {
- return mOriginalBitmapSmall;
- }
-
- public Bitmap getOriginalBitmapLarge() {
- return mOriginalBitmapLarge;
- }
-
- public Bitmap getOriginalBitmapHighres() {
- return mOriginalBitmapHighres;
- }
-
- public void addListener(ImageShow imageShow) {
- mLoadingLock.lock();
- if (!mListeners.contains(imageShow)) {
- mListeners.add(imageShow);
- }
- mLoadingLock.unlock();
- }
-
- private void warnListeners() {
- mActivity.runOnUiThread(mWarnListenersRunnable);
- }
-
- private Runnable mWarnListenersRunnable = new Runnable() {
-
- @Override
- public void run() {
- for (int i = 0; i < mListeners.size(); i++) {
- ImageShow imageShow = mListeners.elementAt(i);
- imageShow.imageLoaded();
- }
- MasterImage.getImage().invalidatePreview();
- }
- };
-
- public Bitmap getScaleOneImageForPreset(Rect bounds, Rect destination) {
- mLoadingLock.lock();
+ public static Bitmap getScaleOneImageForPreset(Context context, Uri uri, Rect bounds,
+ Rect destination) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = true;
if (destination != null) {
@@ -389,23 +268,23 @@ public class ImageLoader {
options.inSampleSize = sampleSize;
}
}
- Bitmap bmp = loadRegionBitmap(mUri, options, bounds);
- mLoadingLock.unlock();
+ Bitmap bmp = loadRegionBitmap(context, uri, options, bounds);
return bmp;
}
- public void saveImage(ImagePreset preset, final FilterShowActivity filterShowActivity,
+ public static void saveImage(ImagePreset preset, final FilterShowActivity filterShowActivity,
File destination) {
Uri selectedImageUri = filterShowActivity.getSelectedImageUri();
- new SaveCopyTask(mContext, mUri, selectedImageUri, destination,
+ new SaveCopyTask(filterShowActivity, MasterImage.getImage().getUri(), selectedImageUri,
+ destination,
new SaveCopyTask.Callback() {
- @Override
- public void onComplete(Uri result) {
- filterShowActivity.completeSaveImage(result);
- }
+ @Override
+ public void onComplete(Uri result) {
+ filterShowActivity.completeSaveImage(result);
+ }
- }).execute(preset);
+ }).execute(preset);
}
public static Bitmap loadMutableBitmap(Context context, Uri sourceUri) {
@@ -424,7 +303,7 @@ public class ImageLoader {
return null;
}
int orientation = ImageLoader.getOrientation(context, sourceUri);
- bitmap = ImageLoader.rotateToPortrait(bitmap, orientation);
+ bitmap = ImageLoader.orientBitmap(bitmap, orientation);
return bitmap;
}
@@ -503,17 +382,10 @@ public class ImageLoader {
return bmap;
}
- public void setHistoryManager(HistoryManager historyManager) {
- mHistoryManager = historyManager;
- }
-
- public HistoryManager getHistory() {
- return mHistoryManager;
- }
-
- public XMPMeta getXmpObject() {
+ public static XMPMeta getXmpObject(Context context) {
try {
- InputStream is = mContext.getContentResolver().openInputStream(getUri());
+ InputStream is = context.getContentResolver().openInputStream(
+ MasterImage.getImage().getUri());
return XmpUtilHelper.extractXMPMeta(is);
} catch (FileNotFoundException e) {
return null;
@@ -525,15 +397,14 @@ public class ImageLoader {
*
* @return true if it is a light Cycle image that is full 360
*/
- public boolean queryLightCycle360() {
+ public static boolean queryLightCycle360(Context context) {
InputStream is = null;
try {
- is = mContext.getContentResolver().openInputStream(getUri());
+ is = context.getContentResolver().openInputStream(MasterImage.getImage().getUri());
XMPMeta meta = XmpUtilHelper.extractXMPMeta(is);
if (meta == null) {
return false;
}
- String name = meta.getPacketHeader();
String namespace = "http://ns.google.com/photos/1.0/panorama/";
String cropWidthName = "GPano:CroppedAreaImageWidthPixels";
String fullWidthName = "GPano:FullPanoWidthPixels";
diff --git a/src/com/android/gallery3d/filtershow/editors/Editor.java b/src/com/android/gallery3d/filtershow/editors/Editor.java
index 7d395ef37..9539d651b 100644
--- a/src/com/android/gallery3d/filtershow/editors/Editor.java
+++ b/src/com/android/gallery3d/filtershow/editors/Editor.java
@@ -188,10 +188,6 @@ public class Editor implements OnSeekBarChangeListener, SwapButton.SwapButtonLis
return mImageShow;
}
- public void setImageLoader(ImageLoader imageLoader) {
- mImageShow.setImageLoader(imageLoader);
- }
-
public void setVisibility(int visible) {
mView.setVisibility(visible);
}
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
index 24a83cd46..ec6e30b7e 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
@@ -28,7 +28,6 @@ import android.widget.PopupMenu;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.crop.CropExtras;
import com.android.gallery3d.filtershow.imageshow.ImageCrop;
-import com.android.gallery3d.filtershow.imageshow.MasterImage;
public class EditorCrop extends Editor implements EditorInfo {
public static final int ID = R.id.editorCrop;
@@ -53,7 +52,7 @@ public class EditorCrop extends Editor implements EditorInfo {
mImageCrop = new ImageCrop(context);
}
mView = mImageShow = mImageCrop;
- mImageCrop.setImageLoader(MasterImage.getImage().getImageLoader());
+ mImageCrop.bindAsImageLoadListener();
mImageCrop.setEditor(this);
mImageCrop.syncLocalToMasterGeometry();
mImageCrop.setCropActionFlag(mCropActionFlag);
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorFlip.java b/src/com/android/gallery3d/filtershow/editors/EditorFlip.java
index de6240c7a..67070045b 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorFlip.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorFlip.java
@@ -25,7 +25,6 @@ import android.widget.LinearLayout;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.imageshow.ImageFlip;
-import com.android.gallery3d.filtershow.imageshow.MasterImage;
public class EditorFlip extends Editor implements EditorInfo {
public static final String LOGTAG = "EditorFlip";
@@ -43,7 +42,7 @@ public class EditorFlip extends Editor implements EditorInfo {
mImageFlip = new ImageFlip(context);
}
mView = mImageShow = mImageFlip;
- mImageFlip.setImageLoader(MasterImage.getImage().getImageLoader());
+ mImageFlip.bindAsImageLoadListener();
mImageFlip.setEditor(this);
mImageFlip.syncLocalToMasterGeometry();
}
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorRotate.java b/src/com/android/gallery3d/filtershow/editors/EditorRotate.java
index a637c08ff..e66be2cc1 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorRotate.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorRotate.java
@@ -25,7 +25,6 @@ import android.widget.LinearLayout;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.imageshow.ImageRotate;
-import com.android.gallery3d.filtershow.imageshow.MasterImage;
public class EditorRotate extends Editor implements EditorInfo {
public static final String LOGTAG = "EditorRotate";
@@ -43,7 +42,7 @@ public class EditorRotate extends Editor implements EditorInfo {
mImageRotate = new ImageRotate(context);
}
mView = mImageShow = mImageRotate;
- mImageRotate.setImageLoader(MasterImage.getImage().getImageLoader());
+ mImageRotate.bindAsImageLoadListener();
mImageRotate.setEditor(this);
mImageRotate.syncLocalToMasterGeometry();
}
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorStraighten.java b/src/com/android/gallery3d/filtershow/editors/EditorStraighten.java
index dbc6ca05d..40333aa00 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorStraighten.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorStraighten.java
@@ -23,7 +23,6 @@ import android.widget.FrameLayout;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.ImageStraighten;
-import com.android.gallery3d.filtershow.imageshow.MasterImage;
public class EditorStraighten extends Editor implements EditorInfo {
public static final int ID = R.id.editorStraighten;
@@ -50,7 +49,7 @@ public class EditorStraighten extends Editor implements EditorInfo {
mImageStraighten = new ImageStraighten(context);
}
mView = mImageShow = mImageStraighten;
- mImageStraighten.setImageLoader(MasterImage.getImage().getImageLoader());
+ mImageStraighten.bindAsImageLoadListener();
mImageStraighten.setEditor(this);
mImageStraighten.syncLocalToMasterGeometry();
}
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
index 05fdffbf7..050dc436b 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
@@ -23,6 +23,7 @@ import android.support.v8.renderscript.Allocation;
import android.widget.Toast;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.pipeline.FilterEnvironment;
import com.android.gallery3d.filtershow.pipeline.ImagePreset;
@@ -91,8 +92,8 @@ public abstract class ImageFilter implements Cloneable {
ImagePreset preset = getEnvironment().getImagePreset();
GeometryMetadata geo = getEnvironment().getImagePreset().getGeometry();
Matrix originalToScreen = geo.getOriginalToScreen(true,
- preset.getImageLoader().getOriginalBounds().width(),
- preset.getImageLoader().getOriginalBounds().height(),
+ MasterImage.getImage().getOriginalBounds().width(),
+ MasterImage.getImage().getOriginalBounds().height(),
w, h);
return originalToScreen;
}
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java
index 20ed96cfd..efb9cde71 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java
@@ -22,6 +22,7 @@ import android.graphics.Rect;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
public class ImageFilterDownsample extends SimpleImageFilter {
private static final String SERIALIZATION_NAME = "DOWNSAMPLE";
@@ -58,7 +59,7 @@ public class ImageFilterDownsample extends SimpleImageFilter {
int p = getParameters().getValue();
// size of original precached image
- Rect size = mImageLoader.getOriginalBounds();
+ Rect size = MasterImage.getImage().getOriginalBounds();
int orig_w = size.width();
int orig_h = size.height();
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
index 2f1bbb0c7..0458a2221 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
@@ -29,6 +29,7 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.FilterDrawRepresentation.StrokeData;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.pipeline.FilterEnvironment;
@@ -127,11 +128,13 @@ public class ImageFilterDraw extends ImageFilter {
public Brush(int brushID) {
mBrushID = brushID;
}
+
public Bitmap getBrush() {
if (mBrush == null) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.ALPHA_8;
- mBrush = MasterImage.getImage().getImageLoader().decodeImage(mBrushID, opt);
+ mBrush = ImageLoader.decodeImage(MasterImage.getImage().getActivity(), mBrushID,
+ opt);
mBrush = mBrush.extractAlpha();
}
return mBrush;
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
index 6022ddac2..77250bd7a 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
@@ -23,6 +23,8 @@ import android.graphics.RectF;
import com.adobe.xmp.XMPException;
import com.adobe.xmp.XMPMeta;
import com.android.gallery3d.app.Log;
+import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.pipeline.ImagePreset;
/**
@@ -77,7 +79,7 @@ public class ImageFilterTinyPlanet extends SimpleImageFilter {
ImagePreset preset = getEnvironment().getImagePreset();
Bitmap mBitmapOut = null;
if (preset != null) {
- XMPMeta xmp = preset.getImageLoader().getXmpObject();
+ XMPMeta xmp = ImageLoader.getXmpObject(MasterImage.getImage().getActivity());
// Do nothing, just use bitmapIn as is if we don't have XMP.
if(xmp != null) {
bitmapIn = applyXmp(bitmapIn, xmp, w);
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index af18372eb..0d0ed5f46 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -339,7 +339,7 @@ public class GeometryMetadata extends FilterRepresentation {
float imageWidth = cropBounds.width();
float imageHeight = cropBounds.height();
- int orientation = ImageLoader.getZoomOrientation();
+ int orientation = MasterImage.getImage().getZoomOrientation();
Matrix imageRotation = getMatrixOriginalOrientation(orientation, originalWidth,
originalHeight);
if (orientation == ImageLoader.ORI_ROTATE_90 ||
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 73a1ebf7d..8b9d57cb9 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -175,12 +175,12 @@ public class ImageShow extends View implements OnGestureListener,
protected Matrix getImageToScreenMatrix(boolean reflectRotation) {
GeometryMetadata geo = getImagePreset().getGeometry();
if (geo == null || mImageLoader == null
- || mImageLoader.getOriginalBounds() == null) {
+ || MasterImage.getImage().getOriginalBounds() == null) {
return new Matrix();
}
Matrix m = geo.getOriginalToScreen(reflectRotation,
- mImageLoader.getOriginalBounds().width(),
- mImageLoader.getOriginalBounds().height(), getWidth(), getHeight());
+ MasterImage.getImage().getOriginalBounds().width(),
+ MasterImage.getImage().getOriginalBounds().height(), getWidth(), getHeight());
Point translate = MasterImage.getImage().getTranslation();
float scaleFactor = MasterImage.getImage().getScaleFactor();
m.postTranslate(translate.x, translate.y);
@@ -360,12 +360,8 @@ public class ImageShow extends View implements OnGestureListener,
canvas.restore();
}
- public void setImageLoader(ImageLoader loader) {
- mImageLoader = loader;
- if (mImageLoader != null) {
- mImageLoader.addListener(this);
- MasterImage.getImage().setImageLoader(mImageLoader);
- }
+ public void bindAsImageLoadListener() {
+ MasterImage.getImage().addListener(this);
}
private void imageSizeChanged(Bitmap image) {
@@ -386,7 +382,7 @@ public class ImageShow extends View implements OnGestureListener,
public void updateImage() {
invalidate();
- Bitmap bitmap = mImageLoader.getOriginalBitmapLarge();
+ Bitmap bitmap = MasterImage.getImage().getOriginalBitmapLarge();
if (bitmap != null) {
imageSizeChanged(bitmap);
}
@@ -398,7 +394,7 @@ public class ImageShow extends View implements OnGestureListener,
}
public void saveImage(FilterShowActivity filterShowActivity, File file) {
- mImageLoader.saveImage(getImagePreset(), filterShowActivity, file);
+ ImageLoader.saveImage(getImagePreset(), filterShowActivity, file);
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageVignette.java b/src/com/android/gallery3d/filtershow/imageshow/ImageVignette.java
index 7ce9e5186..518969ee1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageVignette.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageVignette.java
@@ -108,8 +108,8 @@ public class ImageVignette extends ImageShow {
float[] c = new float[] {
mVignetteRep.getCenterX(), mVignetteRep.getCenterY() };
if (Float.isNaN(c[0])) {
- float cx = mImageLoader.getOriginalBounds().width() / 2;
- float cy = mImageLoader.getOriginalBounds().height() / 2;
+ float cx = MasterImage.getImage().getOriginalBounds().width() / 2;
+ float cy = MasterImage.getImage().getOriginalBounds().height() / 2;
float rx = Math.min(cx, cy) * .8f;
float ry = rx;
mVignetteRep.setCenter(cx, cy);
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index 0890b7cd0..7b11cf35e 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -21,6 +21,7 @@ import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.RectF;
+import android.net.Uri;
import android.os.Handler;
import android.os.Message;
@@ -43,6 +44,8 @@ import java.util.Vector;
public class MasterImage implements RenderingRequestCaller {
+
+
private static final String LOGTAG = "MasterImage";
private boolean DEBUG = false;
private static final boolean DISABLEZOOM = false;
@@ -59,12 +62,20 @@ public class MasterImage implements RenderingRequestCaller {
private SharedBuffer mPreviewBuffer = new SharedBuffer();
private SharedPreset mPreviewPreset = new SharedPreset();
+ private Bitmap mOriginalBitmapSmall = null;
+ private Bitmap mOriginalBitmapLarge = null;
+ private Bitmap mOriginalBitmapHighres = null;
+ private int mOrientation;
+ private Rect mOriginalBounds;
+ private final Vector<ImageShow> mLoadListeners = new Vector<ImageShow>();
+ private Uri mUri = null;
+ private int mZoomOrientation = ImageLoader.ORI_NORMAL;
+
private Bitmap mGeometryOnlyBitmap = null;
private Bitmap mFiltersOnlyBitmap = null;
private Bitmap mPartialBitmap = null;
private Bitmap mHighresBitmap = null;
- private ImageLoader mLoader = null;
private HistoryManager mHistory = null;
private StateAdapter mState = null;
@@ -114,6 +125,84 @@ public class MasterImage implements RenderingRequestCaller {
return sMasterImage;
}
+ public Bitmap getOriginalBitmapSmall() {
+ return mOriginalBitmapSmall;
+ }
+
+ public Bitmap getOriginalBitmapLarge() {
+ return mOriginalBitmapLarge;
+ }
+
+ public Bitmap getOriginalBitmapHighres() {
+ return mOriginalBitmapHighres;
+ }
+
+ public void setOriginalBitmapHighres(Bitmap mOriginalBitmapHighres) {
+ this.mOriginalBitmapHighres = mOriginalBitmapHighres;
+ }
+
+ public int getOrientation() {
+ return mOrientation;
+ }
+
+ public Rect getOriginalBounds() {
+ return mOriginalBounds;
+ }
+
+ public void setOriginalBounds(Rect r) {
+ mOriginalBounds = r;
+ }
+
+ public Uri getUri() {
+ return mUri;
+ }
+
+ public void setUri(Uri uri) {
+ mUri = uri;
+ }
+
+ public int getZoomOrientation() {
+ return mZoomOrientation;
+ }
+
+ public void addListener(ImageShow imageShow) {
+ if (!mLoadListeners.contains(imageShow)) {
+ mLoadListeners.add(imageShow);
+ }
+ }
+
+ public void warnListeners() {
+ mActivity.runOnUiThread(mWarnListenersRunnable);
+ }
+
+ private Runnable mWarnListenersRunnable = new Runnable() {
+ @Override
+ public void run() {
+ for (int i = 0; i < mLoadListeners.size(); i++) {
+ ImageShow imageShow = mLoadListeners.elementAt(i);
+ imageShow.imageLoaded();
+ }
+ invalidatePreview();
+ }
+ };
+
+ public boolean loadBitmap(Uri uri, int size) {
+ setUri(uri);
+ mOrientation = ImageLoader.getOrientation(mActivity, uri);
+ mOriginalBitmapLarge = ImageLoader.loadOrientedScaledBitmap(this, mActivity, uri, size,
+ true, mOrientation);
+ if (mOriginalBitmapLarge == null) {
+ return false;
+ }
+ int sw = ImageLoader.SMALL_BITMAP_DIM;
+ int sh = (int) (sw * (float) mOriginalBitmapLarge.getHeight() / (float) mOriginalBitmapLarge
+ .getWidth());
+ mOriginalBitmapSmall = Bitmap.createScaledBitmap(mOriginalBitmapLarge, sw, sh, true);
+ mZoomOrientation = mOrientation;
+ warnListeners();
+ return true;
+ }
+
public void setSupportsHighRes(boolean value) {
mSupportsHighRes = value;
}
@@ -129,8 +218,8 @@ public class MasterImage implements RenderingRequestCaller {
mActivity = activity;
}
- public ImageLoader getLoader() {
- return mLoader;
+ public FilterShowActivity getActivity() {
+ return mActivity;
}
public synchronized ImagePreset getPreset() {
@@ -152,7 +241,6 @@ public class MasterImage implements RenderingRequestCaller {
preset.showFilters();
}
mPreset = preset;
- mPreset.setImageLoader(mLoader);
setGeometry();
mPreset.fillImageStateAdapter(mState);
if (addToHistory) {
@@ -169,7 +257,7 @@ public class MasterImage implements RenderingRequestCaller {
}
private void setGeometry() {
- Bitmap image = mLoader.getOriginalBitmapLarge();
+ Bitmap image = getOriginalBitmapLarge();
if (image == null) {
return;
}
@@ -211,14 +299,6 @@ public class MasterImage implements RenderingRequestCaller {
mState = adapter;
}
- public void setImageLoader(ImageLoader loader) {
- mLoader = loader;
- }
-
- public ImageLoader getImageLoader() {
- return mLoader;
- }
-
public void setCurrentFilter(ImageFilter filter) {
mCurrentFilter = filter;
}
@@ -304,7 +384,7 @@ public class MasterImage implements RenderingRequestCaller {
if (force || mGeometryOnlyPreset == null
|| !newPreset.same(mGeometryOnlyPreset)) {
mGeometryOnlyPreset = newPreset;
- RenderingRequest.post(mLoader.getOriginalBitmapLarge(),
+ RenderingRequest.post(getOriginalBitmapLarge(),
mGeometryOnlyPreset, RenderingRequest.GEOMETRY_RENDERING, this);
}
}
@@ -315,7 +395,7 @@ public class MasterImage implements RenderingRequestCaller {
if (force || mFiltersOnlyPreset == null
|| !newPreset.same(mFiltersOnlyPreset)) {
mFiltersOnlyPreset = newPreset;
- RenderingRequest.post(mLoader.getOriginalBitmapLarge(),
+ RenderingRequest.post(MasterImage.getImage().getOriginalBitmapLarge(),
mFiltersOnlyPreset, RenderingRequest.FILTERS_RENDERING, this);
}
}
@@ -369,14 +449,13 @@ public class MasterImage implements RenderingRequestCaller {
private Matrix getImageToScreenMatrix(boolean reflectRotation) {
GeometryMetadata geo = mPreset.getGeometry();
- if (geo == null || mLoader == null
- || mLoader.getOriginalBounds() == null
+ if (geo == null || getOriginalBounds() == null
|| mImageShowSize.x == 0) {
return new Matrix();
}
Matrix m = geo.getOriginalToScreen(reflectRotation,
- mLoader.getOriginalBounds().width(),
- mLoader.getOriginalBounds().height(), mImageShowSize.x, mImageShowSize.y);
+ getOriginalBounds().width(),
+ getOriginalBounds().height(), mImageShowSize.x, mImageShowSize.y);
Point translate = getTranslation();
float scaleFactor = getScaleFactor();
m.postTranslate(translate.x, translate.y);
@@ -518,11 +597,11 @@ public class MasterImage implements RenderingRequestCaller {
}
public Bitmap getThumbnailBitmap() {
- return mLoader.getOriginalBitmapSmall();
+ return getOriginalBitmapSmall();
}
public Bitmap getLargeThumbnailBitmap() {
- return mLoader.getOriginalBitmapLarge();
+ return getOriginalBitmapLarge();
}
public float getMaxScaleFactor() {
diff --git a/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java b/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java
index 88cf8ede2..a7580a835 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/CachingPipeline.java
@@ -238,12 +238,9 @@ public class CachingPipeline implements PipelineInterface {
mFiltersManager.freeFilterResources(preset);
if (request.getType() == RenderingRequest.PARTIAL_RENDERING) {
- ImageLoader loader = MasterImage.getImage().getImageLoader();
- if (loader == null) {
- Log.w(LOGTAG, "loader not yet setup, cannot handle: " + getType(request));
- return;
- }
- bitmap = loader.getScaleOneImageForPreset(request.getBounds(),
+ MasterImage master = MasterImage.getImage();
+ bitmap = ImageLoader.getScaleOneImageForPreset(master.getActivity(),
+ master.getUri(), request.getBounds(),
request.getDestination());
if (bitmap == null) {
Log.w(LOGTAG, "could not get bitmap for: " + getType(request));
@@ -252,8 +249,7 @@ public class CachingPipeline implements PipelineInterface {
}
if (request.getType() == RenderingRequest.HIGHRES_RENDERING) {
- ImageLoader loader = MasterImage.getImage().getImageLoader();
- bitmap = loader.getOriginalBitmapHighres();
+ bitmap = MasterImage.getImage().getOriginalBitmapHighres();
if (bitmap != null) {
bitmap = preset.applyGeometry(bitmap, mEnvironment);
}
diff --git a/src/com/android/gallery3d/filtershow/pipeline/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/pipeline/FilteringPipeline.java
index 1fec62197..a302b1907 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/FilteringPipeline.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/FilteringPipeline.java
@@ -169,8 +169,7 @@ public class FilteringPipeline implements Handler.Callback {
}
if (request.getType() == RenderingRequest.HIGHRES_RENDERING) {
type = COMPUTE_HIGHRES_RENDERING_REQUEST;
- ImageLoader imageLoader = MasterImage.getImage().getImageLoader();
- if (imageLoader.getOriginalBitmapHighres() == null) {
+ if (MasterImage.getImage().getOriginalBitmapHighres() == null) {
return;
}
}
diff --git a/src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java b/src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java
index c78bc1ef4..78a4d211d 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java
@@ -46,8 +46,6 @@ public class ImagePreset {
private static final String LOGTAG = "ImagePreset";
- private ImageLoader mImageLoader = null;
-
private Vector<FilterRepresentation> mFilters = new Vector<FilterRepresentation>();
protected boolean mIsFxPreset = false;
@@ -81,7 +79,6 @@ public class ImagePreset {
} catch (java.lang.CloneNotSupportedException e) {
Log.v(LOGTAG, "Exception trying to clone: " + e);
}
- mImageLoader = source.getImageLoader();
}
public FilterRepresentation getFilterRepresentation(int position) {
@@ -226,14 +223,6 @@ public class ImagePreset {
}
}
- public ImageLoader getImageLoader() {
- return mImageLoader;
- }
-
- public void setImageLoader(ImageLoader mImageLoader) {
- this.mImageLoader = mImageLoader;
- }
-
public boolean equals(ImagePreset preset) {
if (!same(preset)) {
return false;
@@ -525,7 +514,7 @@ public class ImagePreset {
}
public boolean canDoPartialRendering() {
- if (ImageLoader.getZoomOrientation() != ImageLoader.ORI_NORMAL) {
+ if (MasterImage.getImage().getZoomOrientation() != ImageLoader.ORI_NORMAL) {
return false;
}
for (int i = 0; i < mFilters.size(); i++) {
diff --git a/src/com/android/gallery3d/filtershow/pipeline/RenderingRequest.java b/src/com/android/gallery3d/filtershow/pipeline/RenderingRequest.java
index 8306f388c..c2d3f1b50 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/RenderingRequest.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/RenderingRequest.java
@@ -70,7 +70,6 @@ public class RenderingRequest {
request.setBitmap(bitmap);
ImagePreset passedPreset = new ImagePreset(preset);
- passedPreset.setImageLoader(MasterImage.getImage().getImageLoader());
request.setOriginalImagePreset(preset);
request.setScaleFactor(MasterImage.getImage().getScaleFactor());