summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorztenghui <ztenghui@google.com>2013-07-01 23:42:03 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-07-01 23:42:04 +0000
commita18a161d3b46152b9114a5005efe8a043286c19d (patch)
treec2b9006706232c8c75daf665e4858bab45cf6736
parent03f97f549f8b27b770dee5c5199a819fa8603c53 (diff)
parent2185e9b81380f7e43608419743c983c5afee43c4 (diff)
downloadandroid_packages_apps_Snap-a18a161d3b46152b9114a5005efe8a043286c19d.tar.gz
android_packages_apps_Snap-a18a161d3b46152b9114a5005efe8a043286c19d.tar.bz2
android_packages_apps_Snap-a18a161d3b46152b9114a5005efe8a043286c19d.zip
Merge "Fix the save button issue." into gb-ub-photos-carlsbad
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java3
-rw-r--r--src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java3
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java1
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java28
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java14
5 files changed, 42 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index f87df7175..830289348 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -812,8 +812,9 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
}
public void enableSave(boolean enable) {
- if (mSaveButton != null)
+ if (mSaveButton != null) {
mSaveButton.setEnabled(enable);
+ }
}
private void fillFx() {
diff --git a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
index c046a6e7f..a60410d2b 100644
--- a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
+++ b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
@@ -174,6 +174,9 @@ public class FilterRepresentation implements Cloneable {
mFilterClass = filterClass;
}
+ // This same() function is different from equals(), basically it checks
+ // whether 2 FilterRepresentations are the same type. It doesn't care about
+ // the values.
public boolean same(FilterRepresentation b) {
if (b == null) {
return false;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 63de9ccbd..a95932d32 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -108,7 +108,6 @@ public class ImageShow extends View implements OnGestureListener,
public void onNewValue(int parameter) {
invalidate();
- mActivity.enableSave(hasModifications());
}
public ImageShow(Context context, AttributeSet attrs, int defStyle) {
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index 56c4a62b8..44b9d82bc 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -231,12 +231,22 @@ public class MasterImage implements RenderingRequestCaller {
}
public synchronized boolean hasModifications() {
+ // TODO: We need to have a better same effects check to see if two
+ // presets are functionally the same. Right now, we are relying on a
+ // stricter check as equals().
+ ImagePreset loadedPreset = getLoadedPreset();
if (mPreset == null) {
- return getLoadedPreset() != null;
+ if (loadedPreset == null) {
+ return false;
+ } else {
+ return loadedPreset.hasModifications();
+ }
} else {
- // TODO: same() is quite strict check here. We should be only
- // checking for functionality parity.
- return !mPreset.same(getLoadedPreset());
+ if (loadedPreset == null) {
+ return mPreset.hasModifications();
+ } else {
+ return !mPreset.equals(getLoadedPreset());
+ }
}
}
@@ -304,7 +314,6 @@ public class MasterImage implements RenderingRequestCaller {
}
}
invalidatePreview();
- mActivity.enableSave(hasModifications());
}
public FilterRepresentation getCurrentFilterRepresentation() {
@@ -404,20 +413,29 @@ public class MasterImage implements RenderingRequestCaller {
if (request.getBitmap() == null) {
return;
}
+
+ boolean needsCheckModification = false;
if (request.getType() == RenderingRequest.GEOMETRY_RENDERING) {
mGeometryOnlyBitmap = request.getBitmap();
+ needsCheckModification = true;
}
if (request.getType() == RenderingRequest.FILTERS_RENDERING) {
mFiltersOnlyBitmap = request.getBitmap();
+ needsCheckModification = true;
}
if (request.getType() == RenderingRequest.PARTIAL_RENDERING
&& request.getScaleFactor() == getScaleFactor()) {
mPartialBitmap = request.getBitmap();
notifyObservers();
+ needsCheckModification = true;
}
if (request.getType() == RenderingRequest.HIGHRES_RENDERING) {
mHighresBitmap = request.getBitmap();
notifyObservers();
+ needsCheckModification = true;
+ }
+ if (needsCheckModification) {
+ mActivity.enableSave(hasModifications());
}
}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 6f752d963..4ec39f765 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -186,6 +186,20 @@ public class ImagePreset {
return geo;
}
+ public boolean hasModifications() {
+ for (int i = 0; i < mFilters.size(); i++) {
+ FilterRepresentation filter = mFilters.elementAt(i);
+ if (filter instanceof GeometryMetadata) {
+ if (((GeometryMetadata) filter).hasModifications()) {
+ return true;
+ }
+ } else if (!filter.isNil()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public boolean isPanoramaSafe() {
for (FilterRepresentation representation : mFilters) {
if (representation instanceof GeometryMetadata) {