summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2013-02-28 06:00:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-02-28 06:00:05 +0000
commit1a07da3cd8060d49afabd11df33044ff9d05b48e (patch)
treed5a58a682e4911c7fe1698643e9389a1d1e091d3
parentec5da88505d9b3c1562b13ce8448bc1a6b02ed27 (diff)
downloadandroid_packages_apps_Snap-1a07da3cd8060d49afabd11df33044ff9d05b48e.tar.gz
android_packages_apps_Snap-1a07da3cd8060d49afabd11df33044ff9d05b48e.tar.bz2
android_packages_apps_Snap-1a07da3cd8060d49afabd11df33044ff9d05b48e.zip
Revert "Cleanup ImagePreset"
This reverts commit 0f0765676e5be73c7187a44ee88e500ab691bf01 Change-Id: Id5a7eec61cdac3d57c8c4c790d24adf258410545
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java3
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java7
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java122
-rw-r--r--src/com/android/gallery3d/filtershow/ui/FilterIconButton.java2
4 files changed, 74 insertions, 60 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index adb6922ea..647b101a1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -107,9 +107,6 @@ public class GeometryMetadata extends FilterRepresentation {
}
public void set(GeometryMetadata g) {
- if (g == null) {
- return;
- }
mScaleFactor = g.mScaleFactor;
mRotation = g.mRotation;
mStraightenRotation = g.mStraightenRotation;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index f3ac2e472..8a505fd4e 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -234,7 +234,8 @@ public class MasterImage implements RenderingRequestCaller {
public void updatePresets(boolean force) {
if (force || mGeometryOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
- newPreset.resetFilters();
+ newPreset.setDoApplyFilters(false);
+ newPreset.setDoApplyGeometry(true);
if (force || mGeometryOnlyPreset == null
|| !newPreset.same(mGeometryOnlyPreset)) {
mGeometryOnlyPreset = newPreset;
@@ -244,7 +245,8 @@ public class MasterImage implements RenderingRequestCaller {
}
if (force || mFiltersOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
- newPreset.resetGeometry();
+ newPreset.setDoApplyFilters(true);
+ newPreset.setDoApplyGeometry(false);
if (force || mFiltersOnlyPreset == null
|| !newPreset.same(mFiltersOnlyPreset)) {
mFiltersOnlyPreset = newPreset;
@@ -400,5 +402,4 @@ public class MasterImage implements RenderingRequestCaller {
mTranslation.y = 0;
needsUpdateFullResPreview();
}
-
}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 8c1f1c53c..14c671e9f 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -48,7 +48,10 @@ public class ImagePreset {
private String mHistoryName = "Original";
protected boolean mIsFxPreset = false;
- public GeometryMetadata mGeoData = new GeometryMetadata();
+ private boolean mDoApplyGeometry = true;
+ private boolean mDoApplyFilters = true;
+
+ public final GeometryMetadata mGeoData = new GeometryMetadata();
private boolean mPartialRendering = false;
private Rect mPartialRenderingBounds;
@@ -85,9 +88,7 @@ public class ImagePreset {
mIsFxPreset = source.isFx();
mImageLoader = source.getImageLoader();
- if (mGeoData != null) {
- mGeoData.set(source.mGeoData);
- }
+ mGeoData.set(source.mGeoData);
}
public FilterRepresentation getFilterRepresentation(int position) {
@@ -140,6 +141,18 @@ public class ImagePreset {
MasterImage.getImage().invalidatePreview();
}
+ public void setDoApplyGeometry(boolean value) {
+ mDoApplyGeometry = value;
+ }
+
+ public void setDoApplyFilters(boolean value) {
+ mDoApplyFilters = value;
+ }
+
+ public boolean getDoApplyFilters() {
+ return mDoApplyFilters;
+ }
+
public synchronized GeometryMetadata getGeometry() {
return mGeoData;
}
@@ -148,7 +161,7 @@ public class ImagePreset {
if (mBorder != null && !mBorder.isNil()) {
return true;
}
- if (mGeoData != null && mGeoData.hasModifications()) {
+ if (mGeoData.hasModifications()) {
return true;
}
for (int i = 0; i < mFilters.size(); i++) {
@@ -164,7 +177,7 @@ public class ImagePreset {
if (mBorder != null && !mBorder.isNil()) {
return false;
}
- if (mGeoData != null && mGeoData.hasModifications()) {
+ if (mGeoData.hasModifications()) {
return false;
}
for (FilterRepresentation representation : mFilters) {
@@ -218,11 +231,13 @@ public class ImagePreset {
if (!same(preset)) {
return false;
}
- for (int i = 0; i < preset.mFilters.size(); i++) {
- FilterRepresentation a = preset.mFilters.elementAt(i);
- FilterRepresentation b = mFilters.elementAt(i);
- if (!a.equals(b)) {
- return false;
+ if (mDoApplyFilters && preset.mDoApplyFilters) {
+ for (int i = 0; i < preset.mFilters.size(); i++) {
+ FilterRepresentation a = preset.mFilters.elementAt(i);
+ FilterRepresentation b = mFilters.elementAt(i);
+ if (!a.equals(b)) {
+ return false;
+ }
}
}
return true;
@@ -241,30 +256,38 @@ public class ImagePreset {
return false;
}
- if (mGeoData != null && !mGeoData.equals(preset.mGeoData)) {
+ if (mDoApplyGeometry != preset.mDoApplyGeometry) {
return false;
}
- if (mBorder != preset.mBorder) {
+ if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) {
return false;
}
- if (mBorder != null && !mBorder.equals(preset.mBorder)) {
+ if (mDoApplyGeometry && mBorder != preset.mBorder) {
return false;
}
- if (mFilters.size() != preset.mFilters.size()) {
+ if (mBorder != null && !mBorder.equals(preset.mBorder)) {
return false;
}
- for (int i = 0; i < preset.mFilters.size(); i++) {
- FilterRepresentation a = preset.mFilters.elementAt(i);
- FilterRepresentation b = mFilters.elementAt(i);
- if (!a.same(b)) {
+ if (mDoApplyFilters != preset.mDoApplyFilters) {
+ if (mFilters.size() > 0 || preset.mFilters.size() > 0) {
return false;
}
}
+ if (mDoApplyFilters && preset.mDoApplyFilters) {
+ for (int i = 0; i < preset.mFilters.size(); i++) {
+ FilterRepresentation a = preset.mFilters.elementAt(i);
+ FilterRepresentation b = mFilters.elementAt(i);
+ if (!a.same(b)) {
+ return false;
+ }
+ }
+ }
+
return true;
}
@@ -372,19 +395,18 @@ public class ImagePreset {
public Bitmap applyGeometry(Bitmap bitmap) {
// Apply any transform -- 90 rotate, flip, straighten, crop
// Returns a new bitmap.
- if (mGeoData == null) {
- return bitmap;
- }
- ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mGeoData);
- mGeoData.synchronizeRepresentation();
- filter.useRepresentation(mGeoData);
- filter.setImagePreset(this);
- bitmap = filter.apply(bitmap, mScaleFactor, mQuality);
+ if (mDoApplyGeometry) {
+ ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mGeoData);
+ mGeoData.synchronizeRepresentation();
+ filter.useRepresentation(mGeoData);
+ filter.setImagePreset(this);
+ bitmap = filter.apply(bitmap, mScaleFactor, mQuality);
+ }
return bitmap;
}
public Bitmap applyBorder(Bitmap bitmap) {
- if (mBorder != null) {
+ if (mBorder != null && mDoApplyGeometry) {
ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder);
mBorder.synchronizeRepresentation();
filter.useRepresentation(mBorder);
@@ -395,29 +417,32 @@ public class ImagePreset {
}
public Bitmap applyFilters(Bitmap bitmap, int from, int to) {
- if (from < 0) {
- from = 0;
- }
- if (to == -1) {
- to = mFilters.size();
- }
- for (int i = from; i < to; i++) {
- FilterRepresentation representation = null;
- synchronized (mFilters) {
- representation = mFilters.elementAt(i);
- representation.synchronizeRepresentation();
+
+ if (mDoApplyFilters) {
+ if (from < 0) {
+ from = 0;
+ }
+ if (to == -1) {
+ to = mFilters.size();
+ }
+ for (int i = from; i < to; i++) {
+ FilterRepresentation representation = null;
+ synchronized (mFilters) {
+ representation = mFilters.elementAt(i);
+ representation.synchronizeRepresentation();
+ }
+ ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation);
+ filter.useRepresentation(representation);
+ filter.setImagePreset(this);
+ bitmap = filter.apply(bitmap, mScaleFactor, mQuality);
}
- ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation);
- filter.useRepresentation(representation);
- filter.setImagePreset(this);
- bitmap = filter.apply(bitmap, mScaleFactor, mQuality);
}
return bitmap;
}
public boolean canDoPartialRendering() {
- if (mGeoData != null && mGeoData.hasModifications()) {
+ if (mGeoData.hasModifications()) {
return false;
}
if (mBorder != null && !mBorder.supportsPartialRendering()) {
@@ -476,13 +501,4 @@ public class ImagePreset {
public Rect getPartialRenderingBounds() {
return mPartialRenderingBounds;
}
-
- public void resetGeometry() {
- mGeoData = null;
- }
-
- public void resetFilters() {
- mFilters.clear();
- mBorder = null;
- }
}
diff --git a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java b/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
index 0d3dfc0f1..746ad12eb 100644
--- a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
+++ b/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
@@ -83,7 +83,7 @@ public class FilterIconButton extends IconButton implements View.OnClickListener
dst = super.drawImage(dst, image, destination);
ImagePreset mPreset = new ImagePreset();
mPreset.addFilter(mFilterRepresentation);
- mPreset.resetGeometry();
+ mPreset.setDoApplyGeometry(false);
mDestination = destination;
RenderingRequest.post(dst.copy(Bitmap.Config.ARGB_8888, true), mPreset, RenderingRequest.ICON_RENDERING, this);
}