summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java64
-rw-r--r--src/com/android/gallery3d/filtershow/HistoryAdapter.java7
-rw-r--r--src/com/android/gallery3d/filtershow/PanelController.java20
-rw-r--r--src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java14
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java6
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java10
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageRedEyes.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java164
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java134
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageTinyPlanet.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java207
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java4
-rw-r--r--src/com/android/gallery3d/filtershow/ui/FilterIconButton.java17
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java13
16 files changed, 305 insertions, 363 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index b89ab81cd..e8e629a5a 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -54,7 +54,6 @@ import android.widget.SeekBar;
import android.widget.ShareActionProvider;
import android.widget.ShareActionProvider.OnShareTargetSelectedListener;
import android.widget.Toast;
-import android.text.TextUtils;
import com.android.gallery3d.R;
import com.android.gallery3d.data.LocalAlbum;
@@ -75,11 +74,11 @@ import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.imageshow.ImageStraighten;
import com.android.gallery3d.filtershow.imageshow.ImageTinyPlanet;
import com.android.gallery3d.filtershow.imageshow.ImageZoom;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.provider.SharedImageProvider;
import com.android.gallery3d.filtershow.tools.SaveCopyTask;
import com.android.gallery3d.filtershow.ui.FilterIconButton;
-import com.android.gallery3d.filtershow.ui.IconButton;
import com.android.gallery3d.filtershow.ui.FramedTextButton;
import com.android.gallery3d.filtershow.ui.ImageCurves;
import com.android.gallery3d.filtershow.ui.Spline;
@@ -97,6 +96,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
// fields for supporting crop action
public static final String CROP_ACTION = "com.android.camera.action.CROP";
private CropExtras mCropExtras = null;
+ MasterImage mMasterImage = MasterImage.getImage();
public static final String TINY_PLANET_ACTION = "com.android.camera.action.TINY_PLANET";
public static final String LAUNCH_FULLSCREEN = "launch-fullscreen";
@@ -130,8 +130,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
private LinearLayout listFilters = null;
private LinearLayout listBorders = null;
- private ImageFilter mCurrentFilter = null;
-
private static final int SELECT_PICTURE = 1;
private static final String LOGTAG = "FilterShowActivity";
protected static final boolean ANIMATE_PANELS = true;
@@ -161,6 +159,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setupMasterImage();
ImageFilterRS.setRenderScriptContext(this);
ImageShow.setDefaultBackgroundColor(getResources().getColor(R.color.background_screen));
@@ -250,24 +249,14 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
mImageShow.setImageLoader(mImageLoader);
mImageCurves.setImageLoader(mImageLoader);
- mImageCurves.setMaster(mImageShow);
mImageStraighten.setImageLoader(mImageLoader);
- mImageStraighten.setMaster(mImageShow);
mImageZoom.setImageLoader(mImageLoader);
- mImageZoom.setMaster(mImageShow);
mImageCrop.setImageLoader(mImageLoader);
- mImageCrop.setMaster(mImageShow);
mImageRotate.setImageLoader(mImageLoader);
- mImageRotate.setMaster(mImageShow);
mImageFlip.setImageLoader(mImageLoader);
- mImageFlip.setMaster(mImageShow);
mImageTinyPlanet.setImageLoader(mImageLoader);
- mImageTinyPlanet.setMaster(mImageShow);
mImageRedEyes.setImageLoader(mImageLoader);
- mImageRedEyes.setMaster(mImageShow);
-
mImageDraw.setImageLoader(mImageLoader);
- mImageDraw.setMaster(mImageShow);
mPanelController.setActivity(this);
@@ -309,11 +298,11 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
createOnClickResetOperationsButton());
ListView operationsList = (ListView) findViewById(R.id.operationsList);
- operationsList.setAdapter(mImageShow.getHistory());
+ operationsList.setAdapter(mMasterImage.getHistory());
operationsList.setOnItemClickListener(this);
ListView imageStateList = (ListView) findViewById(R.id.imageStateList);
- imageStateList.setAdapter(mImageShow.getImageStateAdapter());
- mImageLoader.setAdapter(mImageShow.getHistory());
+ imageStateList.setAdapter(mMasterImage.getState());
+ mImageLoader.setAdapter(mMasterImage.getHistory());
fillListImages(listFilters);
fillListBorders(listBorders);
@@ -328,7 +317,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
mPanelController.setUtilityPanel(this, findViewById(R.id.filterButtonsList),
findViewById(R.id.panelAccessoryViewList),
findViewById(R.id.applyEffect));
- mPanelController.setMasterImage(mImageShow);
+
mPanelController.setCurrentPanel(mFxButton);
Intent intent = getIntent();
if (intent.getBooleanExtra(LAUNCH_FULLSCREEN, false)) {
@@ -433,7 +422,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
cannotLoadImage();
}
- mImageShow.requestFilteredImages();
Bitmap bmap = mImageShow.getFilteredImage();
if (bmap != null && bmap.getWidth() > 0 && bmap.getHeight() > 0) {
float w = bmap.getWidth();
@@ -599,7 +587,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
MenuItem undoItem = menu.findItem(R.id.undoButton);
MenuItem redoItem = menu.findItem(R.id.redoButton);
MenuItem resetItem = menu.findItem(R.id.resetHistoryButton);
- mImageShow.getHistory().setMenuItems(undoItem, redoItem, resetItem);
+ mMasterImage.getHistory().setMenuItems(undoItem, redoItem, resetItem);
return true;
}
@@ -623,17 +611,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.undoButton: {
- HistoryAdapter adapter = mImageShow.getHistory();
+ HistoryAdapter adapter = mMasterImage.getHistory();
int position = adapter.undo();
- mImageShow.onItemClick(position);
+ mMasterImage.onHistoryItemClick(position);
mImageShow.showToast("Undo");
invalidateViews();
return true;
}
case R.id.redoButton: {
- HistoryAdapter adapter = mImageShow.getHistory();
+ HistoryAdapter adapter = mMasterImage.getHistory();
int position = adapter.redo();
- mImageShow.onItemClick(position);
+ mMasterImage.onHistoryItemClick(position);
mImageShow.showToast("Redo");
invalidateViews();
return true;
@@ -731,7 +719,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
}
// Default preset (original)
- mImageShow.setImagePreset(preset);
+ mMasterImage.setPreset(preset, true);
}
private void fillListBorders(LinearLayout listBorders) {
@@ -877,6 +865,18 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
}
}
+ public void setupMasterImage() {
+ HistoryAdapter mHistoryAdapter = new HistoryAdapter(
+ this, R.layout.filtershow_history_operation_row,
+ R.id.rowTextView);
+ ImageStateAdapter mImageStateAdapter = new ImageStateAdapter(this,
+ R.layout.filtershow_imagestate_row);
+
+ mMasterImage.setHistoryAdapter(mHistoryAdapter);
+ mMasterImage.setStateAdapter(mImageStateAdapter);
+ mMasterImage.setActivity(this);
+ }
+
// //////////////////////////////////////////////////////////////////////////////
// history panel...
@@ -918,10 +918,10 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
void resetHistory() {
dispatchNullFilterClick();
- HistoryAdapter adapter = mImageShow.getHistory();
+ HistoryAdapter adapter = mMasterImage.getHistory();
adapter.reset();
ImagePreset original = new ImagePreset(adapter.getItem(0));
- mImageShow.setImagePreset(original);
+ mMasterImage.setPreset(original, true);
mPanelController.resetParameters();
invalidateViews();
}
@@ -931,7 +931,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
return new View.OnClickListener() {
@Override
public void onClick(View v) {
-
resetHistory();
}
};
@@ -960,24 +959,24 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
}
public void useFilter(ImageFilter filter) {
- if (mCurrentFilter == filter) {
+ if (mMasterImage.getCurrentFilter() == filter) {
return;
}
- mCurrentFilter = filter;
+ mMasterImage.setCurrentFilter(filter);
ImagePreset oldPreset = mImageShow.getImagePreset();
ImagePreset copy = new ImagePreset(oldPreset);
// TODO: use a numerical constant instead.
copy.add(filter);
- mImageShow.setImagePreset(copy);
+ mMasterImage.setPreset(copy, true);
invalidateViews();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
- mImageShow.onItemClick(position);
+ mMasterImage.onHistoryItemClick(position);
invalidateViews();
}
@@ -991,7 +990,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- Log.v(LOGTAG, "onActivityResult");
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
index 471999292..057ab382e 100644
--- a/src/com/android/gallery3d/filtershow/HistoryAdapter.java
+++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.filtershow;
import android.content.Context;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
@@ -115,6 +116,10 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
return getItem(0);
}
+ public ImagePreset getCurrent() {
+ return getItem(mCurrentPresetPosition);
+ }
+
public void addHistoryItem(ImagePreset preset) {
if (canAddHistoryItem(preset)) {
insert(preset, 0);
@@ -123,7 +128,7 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
}
public boolean canAddHistoryItem(ImagePreset preset) {
- if (getCount() > 0 && getLast().same(preset)) {
+ if (getCount() > 0 && getCurrent().same(preset)) {
// we may still want to insert if the previous
// history element isn't the same
if (getLast().historyName().equalsIgnoreCase(preset.historyName())) {
diff --git a/src/com/android/gallery3d/filtershow/PanelController.java b/src/com/android/gallery3d/filtershow/PanelController.java
index 12fe5faea..9f49e89f5 100644
--- a/src/com/android/gallery3d/filtershow/PanelController.java
+++ b/src/com/android/gallery3d/filtershow/PanelController.java
@@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow;
import android.content.Context;
import android.text.Html;
+import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewPropertyAnimator;
@@ -29,6 +30,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.filters.ImageFilterTinyPlanet;
import com.android.gallery3d.filtershow.imageshow.ImageCrop;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.ui.FilterIconButton;
import com.android.gallery3d.filtershow.ui.FramedTextButton;
@@ -230,7 +232,7 @@ public class PanelController implements OnClickListener {
private View mCurrentPanel = null;
private View mRowPanel = null;
private UtilityPanel mUtilityPanel = null;
- private ImageShow mMasterImage = null;
+ private MasterImage mMasterImage = MasterImage.getImage();
private ImageShow mCurrentImage = null;
private FilterShowActivity mActivity = null;
@@ -287,7 +289,7 @@ public class PanelController implements OnClickListener {
}
HistoryAdapter adapter = mMasterImage.getHistory();
int position = adapter.undo();
- mMasterImage.onItemClick(position);
+ mMasterImage.onHistoryItemClick(position);
showPanel(mCurrentPanel);
mCurrentImage.select();
if (mDisableFilterButtons) {
@@ -320,10 +322,6 @@ public class PanelController implements OnClickListener {
accessoryViewList, textView);
}
- public void setMasterImage(ImageShow imageShow) {
- mMasterImage = imageShow;
- }
-
@Override
public void onClick(View view) {
ViewType type = mViews.get(view);
@@ -392,7 +390,7 @@ public class PanelController implements OnClickListener {
}
public ImagePreset getImagePreset() {
- return mMasterImage.getImagePreset();
+ return mMasterImage.getPreset();
}
public ImageFilter setImagePreset(ImageFilter filter, String name) {
@@ -400,7 +398,7 @@ public class PanelController implements OnClickListener {
copy.add(filter);
copy.setHistoryName(name);
copy.setIsFx(false);
- mMasterImage.setImagePreset(copy);
+ mMasterImage.setPreset(copy, true);
return filter;
}
@@ -413,7 +411,7 @@ public class PanelController implements OnClickListener {
// to push it onto the history stack.
ImagePreset copy = new ImagePreset(getImagePreset());
copy.setHistoryName(name);
- mMasterImage.setImagePreset(copy);
+ mMasterImage.setPreset(copy, true);
filter = copy.getFilter(name);
}
@@ -469,9 +467,7 @@ public class PanelController implements OnClickListener {
mCurrentImage.openUtilityPanel(mUtilityPanel.mAccessoryViewList);
}
mUtilityPanel.setShowParameter(filter.showParameterValue());
- if (filter != null) {
- mMasterImage.setCurrentFilter(filter);
- }
+ mMasterImage.setCurrentFilter(filter);
mCurrentImage.select();
}
return;
diff --git a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java
index adbb5daf7..d58e953c2 100644
--- a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java
+++ b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java
@@ -19,6 +19,7 @@ package com.android.gallery3d.filtershow.cache;
import android.graphics.Bitmap;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
+import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import java.util.Vector;
@@ -69,8 +70,13 @@ public class DirectPresetCache implements Cache {
public void run() {
for (int i = 0; i < mObservers.size(); i++) {
ImageShow imageShow = mObservers.elementAt(i);
- imageShow.invalidate();
- imageShow.updateImage();
+ // FIXME: need to replace the observer from ImageShow to
+ // MasterImage
+ if (imageShow != null) {
+ imageShow.invalidate();
+ imageShow.updateImage();
+ }
+ MasterImage.getImage().updatedCache();
}
}
};
@@ -94,13 +100,10 @@ public class DirectPresetCache implements Cache {
@Override
public Bitmap get(ImagePreset preset) {
- // Log.v(LOGTAG, "get preset " + preset.name() + " : " + preset);
CachedPreset cache = getCachedPreset(preset);
if (cache != null && !cache.mBusy) {
return cache.mBitmap;
}
- // Log.v(LOGTAG, "didn't find preset " + preset.name() + " : " + preset
- // + " we have " + mCache.size() + " elts / " + mCacheSize);
return null;
}
@@ -159,7 +162,6 @@ public class DirectPresetCache implements Cache {
@Override
public void prepare(ImagePreset preset) {
- // Log.v(LOGTAG, "prepare preset " + preset.name() + " : " + preset);
CachedPreset cache = getCachedPreset(preset);
if (cache == null || (cache.mBitmap == null && !cache.mBusy)) {
if (cache == null) {
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
index cb2bae722..6f7c36e28 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java
@@ -31,6 +31,12 @@ public class ImageFilterRS extends ImageFilter {
private static android.content.res.Resources mResources = null;
public void prepare(Bitmap bitmap) {
+ if (mInPixelsAllocation != null) {
+ mInPixelsAllocation.destroy();
+ }
+ if (mOutPixelsAllocation != null) {
+ mOutPixelsAllocation.destroy();
+ }
mInPixelsAllocation = Allocation.createFromBitmap(mRS, bitmap,
Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
index b43cc1d4f..cca06e4d7 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
@@ -15,7 +15,7 @@ import android.view.MotionEvent;
import com.android.gallery3d.filtershow.filters.ImageFilterDraw;
import com.android.gallery3d.filtershow.filters.RedEyeCandidate;
-public class ImageDraw extends ImageSlave {
+public class ImageDraw extends ImageShow {
private static final String LOGTAG = "ImageDraw";
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
index c8ae444da..588fa9aa9 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
@@ -32,7 +32,7 @@ import android.view.View;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata.FLIP;
import com.android.gallery3d.filtershow.presets.ImagePreset;
-public abstract class ImageGeometry extends ImageSlave {
+public abstract class ImageGeometry extends ImageShow {
protected boolean mVisibilityGained = false;
private boolean mHasDrawn = false;
@@ -138,7 +138,7 @@ public abstract class ImageGeometry extends ImageSlave {
// Overwrites local with master
protected void syncLocalToMasterGeometry() {
- mLocalGeometry = getMaster().getGeometry();
+ mLocalGeometry = getGeometry();
calculateLocalScalingFactorAndOffset();
}
@@ -326,7 +326,7 @@ public abstract class ImageGeometry extends ImageSlave {
}
public void saveAndSetPreset() {
- ImagePreset lastHistoryItem = getHistory().getLast();
+ ImagePreset lastHistoryItem = mMasterImage.getHistory().getLast();
if (lastHistoryItem != null && lastHistoryItem.historyName().equalsIgnoreCase(getName())) {
getImagePreset().setGeometry(mLocalGeometry);
resetImageCaches(this);
@@ -336,7 +336,7 @@ public abstract class ImageGeometry extends ImageSlave {
copy.setGeometry(mLocalGeometry);
copy.setHistoryName(getName());
copy.setIsFx(false);
- setImagePreset(copy, true);
+ mMasterImage.setPreset(copy, true);
}
}
invalidate();
@@ -416,7 +416,7 @@ public abstract class ImageGeometry extends ImageSlave {
clearDirtyGeometryFlag();
}
requestFilteredImages();
- Bitmap image = getMaster().getFiltersOnlyImage();
+ Bitmap image = getFiltersOnlyImage();
if (image == null) {
invalidate();
return;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageRedEyes.java b/src/com/android/gallery3d/filtershow/imageshow/ImageRedEyes.java
index 5119dff3c..c012ff1cc 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageRedEyes.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageRedEyes.java
@@ -14,7 +14,7 @@ import android.view.MotionEvent;
import com.android.gallery3d.filtershow.filters.ImageFilterRedEye;
import com.android.gallery3d.filtershow.filters.RedEyeCandidate;
-public class ImageRedEyes extends ImageSlave {
+public class ImageRedEyes extends ImageShow {
private static final String LOGTAG = "ImageRedEyes";
private RectF mCurrentRect = null;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 69214bd11..55bdb6e8e 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -31,20 +31,15 @@ import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
-import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
-import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.FilterShowActivity;
-import com.android.gallery3d.filtershow.HistoryAdapter;
-import com.android.gallery3d.filtershow.ImageStateAdapter;
import com.android.gallery3d.filtershow.PanelController;
import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.presets.ImagePreset;
-import com.android.gallery3d.filtershow.ui.SliderController;
import com.android.gallery3d.filtershow.ui.SliderListener;
import java.io.File;
@@ -54,33 +49,22 @@ public class ImageShow extends View implements OnGestureListener,
SliderListener,
OnSeekBarChangeListener {
+ protected MasterImage mMasterImage = MasterImage.getImage();
private static final String LOGTAG = "ImageShow";
protected Paint mPaint = new Paint();
protected static int mTextSize = 24;
protected static int mTextPadding = 20;
- protected ImagePreset mImagePreset = null;
- protected ImagePreset mImageGeometryOnlyPreset = null;
- protected ImagePreset mImageFiltersOnlyPreset = null;
-
protected ImageLoader mImageLoader = null;
- private ImageFilter mCurrentFilter = null;
private boolean mDirtyGeometry = false;
private Bitmap mBackgroundImage = null;
private final boolean USE_BACKGROUND_IMAGE = false;
private static int mBackgroundColor = Color.RED;
- private Bitmap mGeometryOnlyImage = null;
- private Bitmap mFiltersOnlyImage = null;
- private Bitmap mFilteredImage = null;
-
private GestureDetector mGestureDetector = null;
- private HistoryAdapter mHistoryAdapter = null;
- private ImageStateAdapter mImageStateAdapter = null;
-
protected Rect mImageBounds = new Rect();
private boolean mTouchShowOriginal = false;
@@ -109,7 +93,6 @@ public class ImageShow extends View implements OnGestureListener,
}
private boolean mShowControls = false;
- private boolean mShowOriginal = false;
private String mToast = null;
private boolean mShowToast = false;
private boolean mImportantToast = false;
@@ -220,7 +203,7 @@ public class ImageShow extends View implements OnGestureListener,
}
if (getImagePreset() != null) {
mImageLoader.resetImageForPreset(getImagePreset(), this);
- getImagePreset().fillImageStateAdapter(mImageStateAdapter);
+ getImagePreset().fillImageStateAdapter(mMasterImage.getState());
}
if (getPanelController() != null) {
getPanelController().onNewValue(parameter);
@@ -242,20 +225,18 @@ public class ImageShow extends View implements OnGestureListener,
public ImageShow(Context context, AttributeSet attrs) {
super(context, attrs);
- mHistoryAdapter = new HistoryAdapter(context, R.layout.filtershow_history_operation_row,
- R.id.rowTextView);
- mImageStateAdapter = new ImageStateAdapter(context,
- R.layout.filtershow_imagestate_row);
+
setupGestureDetector(context);
mActivity = (FilterShowActivity) context;
+ mMasterImage.addObserver(this);
}
public ImageShow(Context context) {
super(context);
- mHistoryAdapter = new HistoryAdapter(context, R.layout.filtershow_history_operation_row,
- R.id.rowTextView);
+
setupGestureDetector(context);
mActivity = (FilterShowActivity) context;
+ mMasterImage.addObserver(this);
}
public void setupGestureDetector(Context context) {
@@ -274,15 +255,11 @@ public class ImageShow extends View implements OnGestureListener,
}
public void setCurrentFilter(ImageFilter filter) {
- mCurrentFilter = filter;
+ mMasterImage.setCurrentFilter(filter);
}
public ImageFilter getCurrentFilter() {
- return mCurrentFilter;
- }
-
- public void setAdapter(HistoryAdapter adapter) {
- mHistoryAdapter = adapter;
+ return mMasterImage.getCurrentFilter();
}
public void showToast(String text) {
@@ -319,7 +296,7 @@ public class ImageShow extends View implements OnGestureListener,
}
public ImagePreset getImagePreset() {
- return mImagePreset;
+ return mMasterImage.getPreset();
}
public void drawToast(Canvas canvas) {
@@ -354,7 +331,6 @@ public class ImageShow extends View implements OnGestureListener,
@Override
public void onDraw(Canvas canvas) {
drawBackground(canvas);
- requestFilteredImages();
defaultDrawImage(canvas);
if (showTitle() && getImagePreset() != null) {
@@ -375,83 +351,27 @@ public class ImageShow extends View implements OnGestureListener,
if (mImageLoader == null) {
return;
}
- updateImagePresets(true);
+ mMasterImage.updatePresets(true);
}
public void updateImagePresets(boolean force) {
- ImagePreset preset = getImagePreset();
- if (preset == null) {
- mActivity.enableSave(false);
- return;
- }
- if (force) {
- mImageLoader.resetImageForPreset(getImagePreset(), this);
- }
- if (force || mImageGeometryOnlyPreset == null) {
- ImagePreset newPreset = new ImagePreset(preset);
- newPreset.setDoApplyFilters(false);
- if (mImageGeometryOnlyPreset == null
- || !newPreset.same(mImageGeometryOnlyPreset)) {
- mImageGeometryOnlyPreset = newPreset;
- mGeometryOnlyImage = null;
- }
- }
- if (force || mImageFiltersOnlyPreset == null) {
- ImagePreset newPreset = new ImagePreset(preset);
- newPreset.setDoApplyGeometry(false);
- if (mImageFiltersOnlyPreset == null
- || !newPreset.same(mImageFiltersOnlyPreset)) {
- mImageFiltersOnlyPreset = newPreset;
- mFiltersOnlyImage = null;
- }
- }
- mActivity.enableSave(hasModifications());
+ mMasterImage.updatePresets(force);
}
public void requestFilteredImages() {
- if (mImageLoader != null) {
- Bitmap bitmap = mImageLoader.getImageForPreset(this,
- getImagePreset(), showHires());
-
- if (bitmap != null) {
- if (mFilteredImage == null) {
- invalidate();
- }
- mFilteredImage = bitmap;
- }
-
- updateImagePresets(false);
- if (mImageGeometryOnlyPreset != null) {
- bitmap = mImageLoader.getImageForPreset(this, mImageGeometryOnlyPreset,
- showHires());
- if (bitmap != null) {
- mGeometryOnlyImage = bitmap;
- }
- }
- if (mImageFiltersOnlyPreset != null) {
- bitmap = mImageLoader.getImageForPreset(this, mImageFiltersOnlyPreset,
- showHires());
- if (bitmap != null) {
- mFiltersOnlyImage = bitmap;
- }
- }
- }
-
- if (mShowOriginal) {
- mFilteredImage = mGeometryOnlyImage;
- }
+ mMasterImage.requestImages();
}
public Bitmap getFiltersOnlyImage() {
- return mFiltersOnlyImage;
+ return mMasterImage.getFiltersOnlyImage();
}
public Bitmap getGeometryOnlyImage() {
- return mGeometryOnlyImage;
+ return mMasterImage.getGeometryOnlyImage();
}
public Bitmap getFilteredImage() {
- return mFilteredImage;
+ return mMasterImage.getFilteredImage();
}
public void drawImage(Canvas canvas, Bitmap image) {
@@ -567,33 +487,13 @@ public class ImageShow extends View implements OnGestureListener,
return false;
}
- public void setImagePreset(ImagePreset preset) {
- setImagePreset(preset, true);
- }
- public void setImagePreset(ImagePreset preset, boolean addToHistory) {
- if (preset == null) {
- return;
- }
- mImagePreset = preset;
- getImagePreset().setImageLoader(mImageLoader);
- updateImagePresets(true);
- if (addToHistory) {
- mHistoryAdapter.addHistoryItem(getImagePreset());
- }
- getImagePreset().setEndpoint(this);
- updateImage();
- mImagePreset.fillImageStateAdapter(mImageStateAdapter);
- invalidate();
- }
public void setImageLoader(ImageLoader loader) {
mImageLoader = loader;
if (mImageLoader != null) {
mImageLoader.addListener(this);
- if (mImagePreset != null) {
- mImagePreset.setImageLoader(mImageLoader);
- }
+ mMasterImage.setImageLoader(mImageLoader);
}
}
@@ -622,7 +522,7 @@ public class ImageShow extends View implements OnGestureListener,
RectF r = new RectF(0, 0, w, h);
getImagePreset().mGeoData.setPhotoBounds(r);
getImagePreset().mGeoData.setCropBounds(r);
- setDirtyGeometryFlag();
+
}
public boolean updateGeometryFlags() {
@@ -645,10 +545,6 @@ public class ImageShow extends View implements OnGestureListener,
invalidate();
}
- public void updateFilteredImage(Bitmap bitmap) {
- mFilteredImage = bitmap;
- }
-
public void saveImage(FilterShowActivity filterShowActivity, File file) {
mImageLoader.saveImage(getImagePreset(), filterShowActivity, file);
}
@@ -680,7 +576,7 @@ public class ImageShow extends View implements OnGestureListener,
mTouchY = ey;
if (!mActivity.isShowingHistoryPanel()
&& (System.currentTimeMillis() - mTouchShowOriginalDate
- > mTouchShowOriginalDelayMin)) {
+ > mTouchShowOriginalDelayMin)) {
mTouchShowOriginal = true;
}
}
@@ -696,23 +592,7 @@ public class ImageShow extends View implements OnGestureListener,
}
// listview stuff
-
- public HistoryAdapter getHistory() {
- return mHistoryAdapter;
- }
-
- public ArrayAdapter getImageStateAdapter() {
- return mImageStateAdapter;
- }
-
- public void onItemClick(int position) {
- setImagePreset(new ImagePreset(mHistoryAdapter.getItem(position)), false);
- // we need a copy from the history
- mHistoryAdapter.setCurrentPreset(position);
- }
-
public void showOriginal(boolean show) {
- mShowOriginal = show;
invalidate();
}
@@ -757,13 +637,11 @@ public class ImageShow extends View implements OnGestureListener,
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
-
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
-
}
@Override
@@ -796,8 +674,8 @@ public class ImageShow extends View implements OnGestureListener,
|| (mActivity.isShowingHistoryPanel() && endEvent.getX() > startEvent.getX())) {
if (!mTouchShowOriginal
|| (mTouchShowOriginal &&
- (System.currentTimeMillis() - mTouchShowOriginalDate
- < mTouchShowOriginalDelayMax))) {
+ (System.currentTimeMillis() - mTouchShowOriginalDate
+ < mTouchShowOriginalDelayMax))) {
mActivity.toggleHistoryPanel();
}
}
@@ -807,7 +685,6 @@ public class ImageShow extends View implements OnGestureListener,
@Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
-
}
@Override
@@ -819,7 +696,6 @@ public class ImageShow extends View implements OnGestureListener,
@Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
-
}
@Override
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java
deleted file mode 100644
index 3d79ae0d7..000000000
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.gallery3d.filtershow.imageshow;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.util.AttributeSet;
-
-import com.android.gallery3d.filtershow.HistoryAdapter;
-import com.android.gallery3d.filtershow.PanelController;
-import com.android.gallery3d.filtershow.filters.ImageFilter;
-import com.android.gallery3d.filtershow.presets.ImagePreset;
-
-public class ImageSlave extends ImageShow {
- private ImageShow mMasterImageShow = null;
-
- public ImageSlave(Context context) {
- super(context);
- }
-
- public ImageSlave(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public ImageShow getMaster() {
- return mMasterImageShow;
- }
-
- public void setMaster(ImageShow master) {
- mMasterImageShow = master;
- }
-
- @Override
- public HistoryAdapter getHistory() {
- return mMasterImageShow.getHistory();
- }
-
- @Override
- public void resetImageCaches(ImageShow caller) {
- mMasterImageShow.resetImageCaches(caller);
- }
-
- @Override
- public ImagePreset getImagePreset() {
- return mMasterImageShow.getImagePreset();
- }
-
- @Override
- public Rect getDisplayedImageBounds() {
- return mMasterImageShow.getDisplayedImageBounds();
- }
-
- @Override
- public void setImagePreset(ImagePreset preset, boolean addToHistory) {
- mMasterImageShow.setImagePreset(preset, addToHistory);
- }
-
- @Override
- public void setCurrentFilter(ImageFilter filter) {
- mMasterImageShow.setCurrentFilter(filter);
- }
-
- @Override
- public ImageFilter getCurrentFilter() {
- return mMasterImageShow.getCurrentFilter();
- }
-
- @Override
- public Bitmap getFilteredImage() {
- return mMasterImageShow.getFilteredImage();
- }
-
- @Override
- public void updateImage() {
- mMasterImageShow.updateImage();
- }
-
- @Override
- public void updateImagePresets(boolean force) {
- mMasterImageShow.updateImagePresets(force);
- }
-
- @Override
- public void requestFilteredImages() {
- mMasterImageShow.requestFilteredImages();
- }
-
- @Override
- public boolean showTitle() {
- return false;
- }
-
- @Override
- public float getImageRotation() {
- return mMasterImageShow.getImageRotation();
- }
-
- @Override
- public float getImageRotationZoomFactor() {
- return mMasterImageShow.getImageRotationZoomFactor();
- }
-
- @Override
- public void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- }
-
- @Override
- public void setPanelController(PanelController controller) {
- mMasterImageShow.setPanelController(controller);
- }
-
- @Override
- public PanelController getPanelController() {
- return mMasterImageShow.getPanelController();
- }
-
-}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageTinyPlanet.java b/src/com/android/gallery3d/filtershow/imageshow/ImageTinyPlanet.java
index 31bfe432c..82d87214f 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageTinyPlanet.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageTinyPlanet.java
@@ -22,7 +22,7 @@ import android.view.MotionEvent;
import com.android.gallery3d.filtershow.filters.ImageFilterTinyPlanet;
-public class ImageTinyPlanet extends ImageSlave {
+public class ImageTinyPlanet extends ImageShow {
private float mTouchCenterX = 0;
private float mTouchCenterY = 0;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
index b66da0128..e45b7b4dc 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageZoom.java
@@ -27,7 +27,7 @@ import android.view.MotionEvent;
import com.android.gallery3d.filtershow.cache.ImageLoader;
-public class ImageZoom extends ImageSlave {
+public class ImageZoom extends ImageShow {
private static final String LOGTAG = "ImageZoom";
private boolean mTouchDown = false;
private boolean mZoomedIn = false;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
new file mode 100644
index 000000000..5dc7b172d
--- /dev/null
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -0,0 +1,207 @@
+package com.android.gallery3d.filtershow.imageshow;
+
+import android.graphics.Bitmap;
+import android.graphics.RectF;
+import android.util.Log;
+import android.widget.ArrayAdapter;
+
+import com.android.gallery3d.filtershow.FilterShowActivity;
+import com.android.gallery3d.filtershow.HistoryAdapter;
+import com.android.gallery3d.filtershow.ImageStateAdapter;
+import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.filters.ImageFilter;
+import com.android.gallery3d.filtershow.presets.ImagePreset;
+
+import java.util.Vector;
+
+public class MasterImage {
+
+ private static final String LOGTAG = "MasterImage";
+
+ private static MasterImage sMasterImage = new MasterImage();
+
+ private ImageFilter mCurrentFilter = null;
+ private ImagePreset mPreset = null;
+ private ImagePreset mGeometryOnlyPreset = null;
+ private ImagePreset mFiltersOnlyPreset = null;
+
+ private Bitmap mGeometryOnlyImage = null;
+ private Bitmap mFiltersOnlyImage = null;
+ private Bitmap mFilteredImage = null;
+
+ private ImageLoader mLoader = null;
+ private HistoryAdapter mHistory = null;
+ private ImageStateAdapter mState = null;
+
+ private FilterShowActivity mActivity = null;
+
+ private Vector<ImageShow> mObservers = new Vector<ImageShow>();
+
+ private MasterImage() {
+ }
+
+ public static MasterImage getImage() {
+ return sMasterImage;
+ }
+
+ public void addObserver(ImageShow observer) {
+ mObservers.add(observer);
+ }
+
+ public void setActivity(FilterShowActivity activity) {
+ mActivity = activity;
+ }
+
+ public ImagePreset getPreset() {
+ return mPreset;
+ }
+
+ public void setPreset(ImagePreset preset, boolean addToHistory) {
+ mPreset = preset;
+ mPreset.setImageLoader(mLoader);
+ setGeometry();
+ mPreset.fillImageStateAdapter(mState);
+ if (addToHistory) {
+ mHistory.addHistoryItem(mPreset);
+ }
+ updatePresets(true);
+ requestImages();
+ }
+
+ private void setGeometry() {
+ Bitmap image = mLoader.getOriginalBitmapLarge();
+ if (image == null) {
+ return;
+ }
+ float w = image.getWidth();
+ float h = image.getHeight();
+ GeometryMetadata geo = mPreset.mGeoData;
+ RectF pb = geo.getPhotoBounds();
+ if (w == pb.width() && h == pb.height()) {
+ return;
+ }
+ RectF r = new RectF(0, 0, w, h);
+ geo.setPhotoBounds(r);
+ geo.setCropBounds(r);
+ }
+
+ public void onHistoryItemClick(int position) {
+ setPreset(new ImagePreset(mHistory.getItem(position)), false);
+ // We need a copy from the history
+ mHistory.setCurrentPreset(position);
+ }
+ public HistoryAdapter getHistory() {
+ return mHistory;
+ }
+
+ public ImageStateAdapter getState() {
+ return mState;
+ }
+
+ public void setHistoryAdapter(HistoryAdapter adapter) {
+ mHistory = adapter;
+ }
+
+ public void setStateAdapter(ImageStateAdapter adapter) {
+ mState = adapter;
+ }
+
+ public void setImageLoader(ImageLoader loader) {
+ mLoader = loader;
+ }
+
+ public void setCurrentFilter(ImageFilter filter) {
+ mCurrentFilter = filter;
+ }
+
+ public ImageFilter getCurrentFilter() {
+ return mCurrentFilter;
+ }
+
+ public boolean hasModifications() {
+ if (mPreset == null) {
+ return false;
+ }
+ return mPreset.hasModifications();
+ }
+
+ public Bitmap getFilteredImage() {
+ requestImages();
+ return mFilteredImage;
+ }
+
+ public Bitmap getFiltersOnlyImage() {
+ requestImages();
+ return mFiltersOnlyImage;
+ }
+
+ public Bitmap getGeometryOnlyImage() {
+ requestImages();
+ return mGeometryOnlyImage;
+ }
+
+ private void notifyObservers() {
+ for (ImageShow observer : mObservers) {
+ observer.invalidate();
+ }
+ }
+
+ public void updatedCache() {
+ requestImages();
+ notifyObservers();
+ }
+
+ public void updatePresets(boolean force) {
+ if (force) {
+ mLoader.resetImageForPreset(mPreset, null);
+ }
+ if (force || mGeometryOnlyPreset == null) {
+ ImagePreset newPreset = new ImagePreset(mPreset);
+ newPreset.setDoApplyFilters(false);
+ if (mGeometryOnlyPreset == null
+ || !newPreset.same(mGeometryOnlyPreset)) {
+ mGeometryOnlyPreset = newPreset;
+ mGeometryOnlyImage = null;
+ }
+ }
+ if (force || mFiltersOnlyPreset == null) {
+ ImagePreset newPreset = new ImagePreset(mPreset);
+ newPreset.setDoApplyGeometry(false);
+ if (mFiltersOnlyPreset == null
+ || !newPreset.same(mFiltersOnlyPreset)) {
+ mFiltersOnlyPreset = newPreset;
+ mFiltersOnlyImage = null;
+ }
+ }
+ mActivity.enableSave(hasModifications());
+ }
+
+ public void requestImages() {
+ if (mLoader == null) {
+ return;
+ }
+
+ // FIXME getImageForPreset caller
+ Bitmap bitmap = mLoader.getImageForPreset(null, mPreset, true);
+
+ if (bitmap != null) {
+ mFilteredImage = bitmap;
+ notifyObservers();
+ }
+ updatePresets(false);
+ if (mGeometryOnlyPreset != null) {
+ bitmap = mLoader.getImageForPreset(null, mGeometryOnlyPreset,
+ true);
+ if (bitmap != null) {
+ mGeometryOnlyImage = bitmap;
+ }
+ }
+ if (mFiltersOnlyPreset != null) {
+ bitmap = mLoader.getImageForPreset(null, mFiltersOnlyPreset,
+ true);
+ if (bitmap != null) {
+ mFiltersOnlyImage = bitmap;
+ }
+ }
+ }
+}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 2522c8966..8f3938406 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -296,10 +296,6 @@ public class ImagePreset {
bitmap = mImageBorder.apply(bitmap, mScaleFactor, mIsHighQuality);
}
- if (mEndPoint != null) {
- mEndPoint.updateFilteredImage(bitmap);
- }
-
return bitmap;
}
diff --git a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java b/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
index c2be85809..089b24118 100644
--- a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
+++ b/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
@@ -16,25 +16,16 @@
package com.android.gallery3d.filtershow.ui;
-import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Color;
import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
-import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.FilterShowActivity;
import com.android.gallery3d.filtershow.filters.ImageFilter;
-import com.android.gallery3d.filtershow.filters.ImageFilterBorder;
-import com.android.gallery3d.filtershow.filters.ImageFilterDownsample;
-import com.android.gallery3d.filtershow.filters.ImageFilterParametricBorder;
public class FilterIconButton extends IconButton implements View.OnClickListener {
private Bitmap mOverlayBitmap = null;
@@ -89,11 +80,9 @@ public class FilterIconButton extends IconButton implements View.OnClickListener
@Override
public void onClick(View v) {
if (mController != null && mImageFilter != null) {
- if (!isSelected()) {
- mController.useFilter(mImageFilter);
- mParentContainer.dispatchSetSelected(false);
- setSelected(true);
- }
+ mController.useFilter(mImageFilter);
+ mParentContainer.dispatchSetSelected(false);
+ setSelected(true);
}
if (mListener != null && mListener != this) {
mListener.onClick(v);
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index 5fbfc900f..80c893562 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -36,10 +36,10 @@ import android.widget.PopupMenu;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
-import com.android.gallery3d.filtershow.imageshow.ImageSlave;
+import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.presets.ImagePreset;
-public class ImageCurves extends ImageSlave {
+public class ImageCurves extends ImageShow {
private static final String LOGTAG = "ImageCurves";
Paint gPaint = new Paint();
@@ -124,9 +124,10 @@ public class ImageCurves extends ImageSlave {
}
private ImageFilterCurves curves() {
- if (getMaster() != null) {
- String filterName = getFilterName();
- return (ImageFilterCurves) getImagePreset().getFilter(filterName);
+ String filterName = getFilterName();
+ ImagePreset p = getImagePreset();
+ if (p != null) {
+ return (ImageFilterCurves) p.getFilter(filterName);
}
return null;
}
@@ -144,7 +145,7 @@ public class ImageCurves extends ImageSlave {
}
public void resetCurve() {
- if (getMaster() != null && curves() != null) {
+ if (curves() != null) {
curves().reset();
updateCachedImage();
}