From ac1e8231b96042b3fdfef504dd03ba04c71c5fd0 Mon Sep 17 00:00:00 2001 From: John Hoford Date: Wed, 24 Apr 2013 13:15:47 -0700 Subject: Fix Curves bug:8710572 Change-Id: I49a8ea124be59de6d246ae0f9fb16f04fe447af7 --- .../filters/FilterCurvesRepresentation.java | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'src/com') 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() { -- cgit v1.2.3