OSDN Git Service

Move classes to pipeline package
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / imageshow / ImageGeometry.java
index e18f0d0..58225c8 100644 (file)
@@ -29,9 +29,10 @@ import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
 
-import com.android.gallery3d.app.Log;
+import com.android.gallery3d.filtershow.history.HistoryItem;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
 import com.android.gallery3d.filtershow.imageshow.GeometryMetadata.FLIP;
-import com.android.gallery3d.filtershow.presets.ImagePreset;
+import com.android.gallery3d.filtershow.pipeline.ImagePreset;
 
 public abstract class ImageGeometry extends ImageShow {
     protected boolean mVisibilityGained = false;
@@ -138,7 +139,7 @@ public abstract class ImageGeometry extends ImageShow {
     }
 
     // Overwrites local with master
-    protected void syncLocalToMasterGeometry() {
+    public void syncLocalToMasterGeometry() {
         mLocalGeometry = getGeometry();
         calculateLocalScalingFactorAndOffset();
     }
@@ -285,9 +286,6 @@ public abstract class ImageGeometry extends ImageShow {
             default:
                 setNoAction();
         }
-        if (getPanelController() != null) {
-            getPanelController().onNewValue(getLocalValue());
-        }
         invalidate();
         return true;
     }
@@ -318,29 +316,29 @@ public abstract class ImageGeometry extends ImageShow {
         mMode = MODES.NONE;
     }
 
-    @Override
-    public boolean showTitle() {
-        return false;
-    }
-
-    public String getName() {
-        return "Geometry";
-    }
-
     public void saveAndSetPreset() {
-        ImagePreset lastHistoryItem = MasterImage.getImage().getHistory().getLast();
-        if (lastHistoryItem != null && lastHistoryItem.historyName().equalsIgnoreCase(getName())) {
+        FilterRepresentation lastAction = null;
+        HistoryItem historyItem = MasterImage.getImage().getHistory().getLast();
+        if (historyItem != null) {
+            lastAction = historyItem.getFilterRepresentation();
+        }
+
+        if (lastAction != null
+                && lastAction.getSerializationName().equalsIgnoreCase(
+                        GeometryMetadata.SERIALIZATION_NAME)) {
             getImagePreset().setGeometry(mLocalGeometry);
             resetImageCaches(this);
         } else {
             if (mLocalGeometry.hasModifications()) {
                 ImagePreset copy = new ImagePreset(getImagePreset());
                 copy.setGeometry(mLocalGeometry);
-                copy.setHistoryName(getName());
-                copy.setIsFx(false);
-                MasterImage.getImage().setPreset(copy, true);
+                // TODO: we should have multiple filter representations for each
+                // of the different geometry operations we have, otherwise we cannot
+                // differentiate them in the history/state
+                MasterImage.getImage().setPreset(copy, copy.getGeometry(), true);
             }
         }
+        MasterImage.getImage().notifyGeometryChange();
         invalidate();
     }
 
@@ -413,16 +411,13 @@ public abstract class ImageGeometry extends ImageShow {
 
     @Override
     public void onDraw(Canvas canvas) {
-        if (getDirtyGeometryFlag()) {
-            syncLocalToMasterGeometry();
-            clearDirtyGeometryFlag();
-        }
         Bitmap image = getFiltersOnlyImage();
         if (image == null) {
             invalidate();
             return;
         }
         mHasDrawn = true;
+
         drawShape(canvas, image);
     }
 
@@ -483,7 +478,7 @@ public abstract class ImageGeometry extends ImageShow {
         p.setStrokeWidth(2);
         canvas.drawPath(path, p);
 
-        p.setColor(getDefaultBackgroundColor());
+        p.setColor(mBackgroundColor);
         p.setAlpha(128);
         p.setStyle(Paint.Style.FILL);
         drawShadows(canvas, p, scaledCrop);
@@ -521,7 +516,7 @@ public abstract class ImageGeometry extends ImageShow {
         canvas.drawBitmap(photo, m1, p);
         canvas.restore();
 
-        p.setColor(getDefaultBackgroundColor());
+        p.setColor(mBackgroundColor);
         p.setStyle(Paint.Style.FILL);
         scaledCrop.offset(displayCenter[0] - scaledCrop.centerX(), displayCenter[1]
                 - scaledCrop.centerY());