summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-04-24 13:15:47 -0700
committerJohn Hoford <hoford@google.com>2013-04-24 13:29:04 -0700
commit707be905bf998c98ac948bfc8e3b2c2abea8adff (patch)
treef382858169623703a828bc710b488c8fe16cd5d4 /src/com
parenta98155693b15506d369fc6978b47202f72d040f8 (diff)
downloadandroid_packages_apps_Snap-707be905bf998c98ac948bfc8e3b2c2abea8adff.tar.gz
android_packages_apps_Snap-707be905bf998c98ac948bfc8e3b2c2abea8adff.tar.bz2
android_packages_apps_Snap-707be905bf998c98ac948bfc8e3b2c2abea8adff.zip
Fix Curves
bug:8710572 Change-Id: I49a8ea124be59de6d246ae0f9fb16f04fe447af7
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/FilterCurvesRepresentation.java33
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java7
-rw-r--r--src/com/android/gallery3d/filtershow/ui/Spline.java5
3 files changed, 38 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/FilterCurvesRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterCurvesRepresentation.java
index 3511c67af..cbcae4b37 100644
--- a/src/com/android/gallery3d/filtershow/filters/FilterCurvesRepresentation.java
+++ b/src/com/android/gallery3d/filtershow/filters/FilterCurvesRepresentation.java
@@ -1,5 +1,7 @@
package com.android.gallery3d.filtershow.filters;
+import android.util.Log;
+
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.ui.Spline;
@@ -7,6 +9,8 @@ import com.android.gallery3d.filtershow.ui.Spline;
* TODO: Insert description here. (generated by hoford)
*/
public class FilterCurvesRepresentation extends FilterRepresentation {
+ private static final String LOGTAG = "FilterCurvesRepresentation";
+
private Spline[] mSplines = new Spline[4];
public FilterCurvesRepresentation() {
@@ -20,10 +24,33 @@ public class FilterCurvesRepresentation extends FilterRepresentation {
setShowParameterValue(false);
setShowUtilityPanel(true);
setSupportsPartialRendering(true);
- for (int i = 0; i < mSplines.length; i++) {
- mSplines[i] = new Spline();
- mSplines[i].reset();
+ reset();
+ }
+
+ @Override
+ public FilterRepresentation clone() throws CloneNotSupportedException {
+ FilterCurvesRepresentation rep = new FilterCurvesRepresentation();
+ rep.useParametersFrom(this);
+ return rep;
+ }
+
+ @Override
+ public void useParametersFrom(FilterRepresentation a) {
+ if (!(a instanceof FilterCurvesRepresentation)) {
+ Log.v(LOGTAG, "cannot use parameters from " + a);
+ return;
+ }
+ FilterCurvesRepresentation representation = (FilterCurvesRepresentation) a;
+ Spline[] spline = new Spline[4];
+ for (int i = 0; i < spline.length; i++) {
+ Spline sp = representation.mSplines[i];
+ if (sp != null) {
+ spline[i] = new Spline(sp);
+ } else {
+ spline[i] = new Spline();
+ }
}
+ mSplines = spline;
}
public boolean isNil() {
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index 528746db1..be5df0aea 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -26,6 +26,7 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.os.AsyncTask;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
@@ -157,7 +158,7 @@ public class ImageCurves extends ImageShow {
}
private Spline getSpline(int index) {
- return curves().getSpline(index);
+ return mFilterCurvesRepresentation.getSpline(index);
}
@Override
@@ -169,8 +170,8 @@ public class ImageCurves extends ImageShow {
}
public void resetCurve() {
- if (curves() != null) {
- curves().reset();
+ if (mFilterCurvesRepresentation != null) {
+ mFilterCurvesRepresentation.reset();
updateCachedImage();
}
}
diff --git a/src/com/android/gallery3d/filtershow/ui/Spline.java b/src/com/android/gallery3d/filtershow/ui/Spline.java
index 2cfbd807f..cadf2fd9c 100644
--- a/src/com/android/gallery3d/filtershow/ui/Spline.java
+++ b/src/com/android/gallery3d/filtershow/ui/Spline.java
@@ -98,7 +98,7 @@ public class Spline {
}
public boolean isOriginal() {
- if (this.getNbPoints() > 2) {
+ if (this.getNbPoints() != 2) {
return false;
}
if (mPoints.elementAt(0).x != 0 || mPoints.elementAt(0).y != 1) {
@@ -378,6 +378,9 @@ public class Spline {
public void deletePoint(int n) {
mPoints.remove(n);
+ if (mPoints.size() < 2) {
+ reset();
+ }
Collections.sort(mPoints);
}