OSDN Git Service

Makes rotate and mirror direct operations
authornicolasroard <nicolasroard@google.com>
Mon, 12 Aug 2013 21:04:11 +0000 (14:04 -0700)
committernicolasroard <nicolasroard@google.com>
Mon, 12 Aug 2013 21:04:11 +0000 (14:04 -0700)
Change-Id: I10128c211ec6e269603e3b3f3cbafadbeabdaac5

src/com/android/gallery3d/filtershow/FilterShowActivity.java
src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
src/com/android/gallery3d/filtershow/filters/FilterMirrorRepresentation.java
src/com/android/gallery3d/filtershow/filters/FilterRotateRepresentation.java

index 2912f68..5ef5724 100644 (file)
@@ -80,7 +80,9 @@ import com.android.gallery3d.filtershow.editors.EditorRotate;
 import com.android.gallery3d.filtershow.editors.EditorStraighten;
 import com.android.gallery3d.filtershow.editors.EditorTinyPlanet;
 import com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
+import com.android.gallery3d.filtershow.filters.FilterMirrorRepresentation;
 import com.android.gallery3d.filtershow.filters.FilterRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterRotateRepresentation;
 import com.android.gallery3d.filtershow.filters.FilterUserPresetRepresentation;
 import com.android.gallery3d.filtershow.filters.FiltersManager;
 import com.android.gallery3d.filtershow.filters.ImageFilter;
@@ -570,7 +572,9 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
         if (filterRepresentation == null) {
             return;
         }
-        if (MasterImage.getImage().getCurrentFilterRepresentation() == filterRepresentation) {
+        if (!(filterRepresentation instanceof FilterRotateRepresentation)
+            && !(filterRepresentation instanceof FilterMirrorRepresentation)
+            && MasterImage.getImage().getCurrentFilterRepresentation() == filterRepresentation) {
             return;
         }
         ImagePreset oldPreset = MasterImage.getImage().getPreset();
@@ -579,6 +583,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
         if (representation == null) {
             copy.addFilter(filterRepresentation);
         } else if (filterRepresentation.getFilterType() == FilterRepresentation.TYPE_GEOMETRY) {
+            representation.useParametersFrom(filterRepresentation);
             filterRepresentation = representation;
         } else {
             if (filterRepresentation.allowsSingleInstanceOnly()) {
@@ -598,6 +603,14 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
             return;
         }
 
+        if (representation instanceof FilterRotateRepresentation) {
+            FilterRotateRepresentation r = (FilterRotateRepresentation) representation;
+            r.rotateCW();
+        }
+        if (representation instanceof FilterMirrorRepresentation) {
+            FilterMirrorRepresentation r = (FilterMirrorRepresentation) representation;
+            r.cycle();
+        }
         useFilterRepresentation(representation);
 
         // show representation
index 3fa9191..ce7b44b 100644 (file)
@@ -242,13 +242,6 @@ public abstract class BaseFiltersManager implements FiltersManagerInterface {
 
     public void addTools(Context context) {
 
-        int[] editorsId = {
-                EditorCrop.ID,
-                EditorStraighten.ID,
-                EditorRotate.ID,
-                EditorMirror.ID
-        };
-
         int[] textId = {
                 R.string.crop,
                 R.string.straighten,
@@ -270,10 +263,8 @@ public abstract class BaseFiltersManager implements FiltersManagerInterface {
                 new FilterMirrorRepresentation()
         };
 
-        for (int i = 0; i < editorsId.length; i++) {
-            int editorId = editorsId[i];
+        for (int i = 0; i < textId.length; i++) {
             FilterRepresentation geometry = geometryFilters[i];
-            geometry.setEditorId(editorId);
             geometry.setTextId(textId[i]);
             geometry.setOverlayId(overlayId[i]);
             geometry.setOverlayOnly(true);
index d8d0709..765796e 100644 (file)
@@ -22,6 +22,7 @@ import android.util.Log;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.editors.EditorMirror;
+import com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
 
 import java.io.IOException;
 
@@ -63,12 +64,12 @@ public class FilterMirrorRepresentation extends FilterRepresentation {
     public FilterMirrorRepresentation(Mirror mirror) {
         super(FilterMirrorRepresentation.class.getSimpleName());
         setSerializationName(SERIALIZATION_NAME);
-        setShowParameterValue(true);
+        setShowParameterValue(false);
         setFilterClass(FilterMirrorRepresentation.class);
         setFilterType(FilterRepresentation.TYPE_GEOMETRY);
         setSupportsPartialRendering(true);
         setTextId(R.string.mirror);
-        setEditorId(EditorMirror.ID);
+        setEditorId(ImageOnlyEditor.ID);
         setMirror(mirror);
     }
 
index b6f95d8..d7e0b58 100644 (file)
@@ -22,6 +22,7 @@ import android.util.Log;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.editors.EditorRotate;
+import com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
 
 import java.io.IOException;
 
@@ -63,12 +64,12 @@ public class FilterRotateRepresentation extends FilterRepresentation {
     public FilterRotateRepresentation(Rotation rotation) {
         super(FilterRotateRepresentation.class.getSimpleName());
         setSerializationName(SERIALIZATION_NAME);
-        setShowParameterValue(true);
+        setShowParameterValue(false);
         setFilterClass(FilterRotateRepresentation.class);
         setFilterType(FilterRepresentation.TYPE_GEOMETRY);
         setSupportsPartialRendering(true);
         setTextId(R.string.rotate);
-        setEditorId(EditorRotate.ID);
+        setEditorId(ImageOnlyEditor.ID);
         setRotation(rotation);
     }