summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-02-27 20:45:05 -0800
committernicolasroard <nicolasroard@google.com>2013-02-27 21:06:42 -0800
commitec5da88505d9b3c1562b13ce8448bc1a6b02ed27 (patch)
tree0d14d7f80b47499f8c616af6dc359573114fdc21 /src
parent0483c7cc6d321fd6e07dc602f6bac69bc365a401 (diff)
downloadandroid_packages_apps_Snap-ec5da88505d9b3c1562b13ce8448bc1a6b02ed27.tar.gz
android_packages_apps_Snap-ec5da88505d9b3c1562b13ce8448bc1a6b02ed27.tar.bz2
android_packages_apps_Snap-ec5da88505d9b3c1562b13ce8448bc1a6b02ed27.zip
Cleanup ImagePreset
Change-Id: I89e180293a290adb76d4fc8a9a8965fa1445440e
Diffstat (limited to 'src')
-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, 60 insertions, 74 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index 647b101a1..adb6922ea 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -107,6 +107,9 @@ 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 8a505fd4e..f3ac2e472 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -234,8 +234,7 @@ public class MasterImage implements RenderingRequestCaller {
public void updatePresets(boolean force) {
if (force || mGeometryOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
- newPreset.setDoApplyFilters(false);
- newPreset.setDoApplyGeometry(true);
+ newPreset.resetFilters();
if (force || mGeometryOnlyPreset == null
|| !newPreset.same(mGeometryOnlyPreset)) {
mGeometryOnlyPreset = newPreset;
@@ -245,8 +244,7 @@ public class MasterImage implements RenderingRequestCaller {
}
if (force || mFiltersOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
- newPreset.setDoApplyFilters(true);
- newPreset.setDoApplyGeometry(false);
+ newPreset.resetGeometry();
if (force || mFiltersOnlyPreset == null
|| !newPreset.same(mFiltersOnlyPreset)) {
mFiltersOnlyPreset = newPreset;
@@ -402,4 +400,5 @@ 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 14c671e9f..8c1f1c53c 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -48,10 +48,7 @@ public class ImagePreset {
private String mHistoryName = "Original";
protected boolean mIsFxPreset = false;
- private boolean mDoApplyGeometry = true;
- private boolean mDoApplyFilters = true;
-
- public final GeometryMetadata mGeoData = new GeometryMetadata();
+ public GeometryMetadata mGeoData = new GeometryMetadata();
private boolean mPartialRendering = false;
private Rect mPartialRenderingBounds;
@@ -88,7 +85,9 @@ public class ImagePreset {
mIsFxPreset = source.isFx();
mImageLoader = source.getImageLoader();
- mGeoData.set(source.mGeoData);
+ if (mGeoData != null) {
+ mGeoData.set(source.mGeoData);
+ }
}
public FilterRepresentation getFilterRepresentation(int position) {
@@ -141,18 +140,6 @@ 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;
}
@@ -161,7 +148,7 @@ public class ImagePreset {
if (mBorder != null && !mBorder.isNil()) {
return true;
}
- if (mGeoData.hasModifications()) {
+ if (mGeoData != null && mGeoData.hasModifications()) {
return true;
}
for (int i = 0; i < mFilters.size(); i++) {
@@ -177,7 +164,7 @@ public class ImagePreset {
if (mBorder != null && !mBorder.isNil()) {
return false;
}
- if (mGeoData.hasModifications()) {
+ if (mGeoData != null && mGeoData.hasModifications()) {
return false;
}
for (FilterRepresentation representation : mFilters) {
@@ -231,13 +218,11 @@ public class ImagePreset {
if (!same(preset)) {
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;
- }
+ 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;
@@ -256,38 +241,30 @@ public class ImagePreset {
return false;
}
- if (mDoApplyGeometry != preset.mDoApplyGeometry) {
+ if (mGeoData != null && !mGeoData.equals(preset.mGeoData)) {
return false;
}
- if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) {
+ if (mBorder != preset.mBorder) {
return false;
}
- if (mDoApplyGeometry && mBorder != preset.mBorder) {
+ if (mBorder != null && !mBorder.equals(preset.mBorder)) {
return false;
}
- if (mBorder != null && !mBorder.equals(preset.mBorder)) {
+ if (mFilters.size() != preset.mFilters.size()) {
return false;
}
- if (mDoApplyFilters != preset.mDoApplyFilters) {
- if (mFilters.size() > 0 || preset.mFilters.size() > 0) {
+ 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;
}
}
- 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;
}
@@ -395,18 +372,19 @@ public class ImagePreset {
public Bitmap applyGeometry(Bitmap bitmap) {
// Apply any transform -- 90 rotate, flip, straighten, crop
// Returns a new bitmap.
- if (mDoApplyGeometry) {
- ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mGeoData);
- mGeoData.synchronizeRepresentation();
- filter.useRepresentation(mGeoData);
- filter.setImagePreset(this);
- bitmap = filter.apply(bitmap, mScaleFactor, mQuality);
- }
+ 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);
return bitmap;
}
public Bitmap applyBorder(Bitmap bitmap) {
- if (mBorder != null && mDoApplyGeometry) {
+ if (mBorder != null) {
ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder);
mBorder.synchronizeRepresentation();
filter.useRepresentation(mBorder);
@@ -417,32 +395,29 @@ public class ImagePreset {
}
public Bitmap applyFilters(Bitmap bitmap, int from, int to) {
-
- 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);
+ 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);
}
return bitmap;
}
public boolean canDoPartialRendering() {
- if (mGeoData.hasModifications()) {
+ if (mGeoData != null && mGeoData.hasModifications()) {
return false;
}
if (mBorder != null && !mBorder.supportsPartialRendering()) {
@@ -501,4 +476,13 @@ 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 746ad12eb..0d3dfc0f1 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.setDoApplyGeometry(false);
+ mPreset.resetGeometry();
mDestination = destination;
RenderingRequest.post(dst.copy(Bitmap.Config.ARGB_8888, true), mPreset, RenderingRequest.ICON_RENDERING, this);
}