Merge "Fix the save button issue." into gb-ub-photos-carlsbad
diff --git a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
index c046a6e..a60410d 100644
--- a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
+++ b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
@@ -174,6 +174,9 @@
         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/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 6f752d9..4ec39f7 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -186,6 +186,20 @@
         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) {