diff options
author | John Hoford <hoford@google.com> | 2013-04-24 20:51:19 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-24 20:51:19 +0000 |
commit | b341bb5ddda66c8df047cb5a7ad7a2f6bb9b2991 (patch) | |
tree | f20cf78a04f0be478ec2305aaa5e0b9d582793fb /src | |
parent | 7ff114927c5e02e296485df58966c0fb116376a0 (diff) | |
parent | 707be905bf998c98ac948bfc8e3b2c2abea8adff (diff) | |
download | android_packages_apps_Snap-b341bb5ddda66c8df047cb5a7ad7a2f6bb9b2991.tar.gz android_packages_apps_Snap-b341bb5ddda66c8df047cb5a7ad7a2f6bb9b2991.tar.bz2 android_packages_apps_Snap-b341bb5ddda66c8df047cb5a7ad7a2f6bb9b2991.zip |
Merge "Fix Curves" into gb-ub-photos-bryce
Diffstat (limited to 'src')
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); } |