summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-02-27 19:21:38 -0800
committerJohn Hoford <hoford@google.com>2013-02-27 20:36:50 -0800
commit0483c7cc6d321fd6e07dc602f6bac69bc365a401 (patch)
treed5a58a682e4911c7fe1698643e9389a1d1e091d3
parenta510868d10c0977acb232a9e0eba3284b3bd4250 (diff)
downloadandroid_packages_apps_Snap-0483c7cc6d321fd6e07dc602f6bac69bc365a401.tar.gz
android_packages_apps_Snap-0483c7cc6d321fd6e07dc602f6bac69bc365a401.tar.bz2
android_packages_apps_Snap-0483c7cc6d321fd6e07dc602f6bac69bc365a401.zip
crop fix
Change-Id: Ie2e79992bf45fffb0ae00c4a4fd879546fa1450f
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java42
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java9
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorCrop.java20
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java30
4 files changed, 76 insertions, 25 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 7401a1c8a..a1c301f7d 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -44,9 +44,15 @@ import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
-import android.widget.*;
+import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.ShareActionProvider;
import android.widget.ShareActionProvider.OnShareTargetSelectedListener;
+import android.widget.Toast;
import com.android.gallery3d.R;
import com.android.gallery3d.data.LocalAlbum;
@@ -61,15 +67,19 @@ import com.android.gallery3d.filtershow.editors.EditorManager;
import com.android.gallery3d.filtershow.editors.EditorRedEye;
import com.android.gallery3d.filtershow.editors.EditorRotate;
import com.android.gallery3d.filtershow.editors.EditorStraighten;
-import com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
import com.android.gallery3d.filtershow.editors.EditorTinyPlanet;
-import com.android.gallery3d.filtershow.filters.*;
+import com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
+import com.android.gallery3d.filtershow.filters.FilterColorBorderRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterFxRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterImageBorderRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
+import com.android.gallery3d.filtershow.filters.FiltersManager;
+import com.android.gallery3d.filtershow.filters.ImageFilter;
+import com.android.gallery3d.filtershow.filters.ImageFilterBorder;
+import com.android.gallery3d.filtershow.filters.ImageFilterRS;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.ImageCrop;
-import com.android.gallery3d.filtershow.imageshow.ImageFlip;
-import com.android.gallery3d.filtershow.imageshow.ImageRotate;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
-import com.android.gallery3d.filtershow.imageshow.ImageStraighten;
import com.android.gallery3d.filtershow.imageshow.ImageTinyPlanet;
import com.android.gallery3d.filtershow.imageshow.ImageZoom;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
@@ -305,10 +315,12 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
mImageShow.getImagePreset().mGeoData.setCropExtras(mCropExtras);
// FIXME: moving to editors breaks the crop action
-// mImageCrop.setExtras(mCropExtras);
+ EditorCrop crop = (EditorCrop) mEditorPlaceHolder.getEditor(EditorCrop.ID);
+
+ crop.setExtras(mCropExtras);
String s = getString(R.string.Fixed);
-// mImageCrop.setAspectString(s);
-// mImageCrop.setCropActionFlag(true);
+ crop.setAspectString(s);
+ crop.setCropActionFlag(true);
mPanelController.setFixedAspect(mCropExtras.getAspectX() > 0
&& mCropExtras.getAspectY() > 0);
}
@@ -467,13 +479,14 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
}
}
+ MasterImage.getImage().setOriginalGeometry(largeBitmap);
mLoadBitmapTask = null;
if (mAction == CROP_ACTION) {
- // FIXME: broken by the move to editors
- // mPanelController.showComponent(findViewById(R.id.cropButton));
+
+ mPanelController.showComponent(findViewById(EditorCrop.ID));
} else if (mAction == TINY_PLANET_ACTION) {
- mPanelController.showComponent(findViewById(R.id.tinyplanetButton));
+ mPanelController.showComponent(findViewById(EditorTinyPlanet.ID));
}
super.onPostExecute(result);
@@ -692,10 +705,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
String text = representation.getName();
icon.setup(text, mPanelController, panel);
icon.setFilterRepresentation(representation);
- if (representation instanceof FilterTinyPlanetRepresentation) {
- // needed to hide tinyplanet on startup
- icon.setId(R.id.tinyplanetButton);
- }
+ icon.setId(representation.getEditorId());
mPanelController.addComponent(button, icon);
panel.addView(icon);
return icon;
diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
index 1aeb6b578..d0796b57b 100644
--- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
+++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
@@ -134,15 +134,6 @@ public class ImageLoader {
return false;
}
updateBitmaps();
- // TODO: cleanup
- GeometryMetadata geo = MasterImage.getImage().getPreset().mGeoData;
- float w = mOriginalBitmapLarge.getWidth();
- float h = mOriginalBitmapLarge.getHeight();
- RectF r = new RectF(0, 0, w, h);
- geo.setPhotoBounds(r);
- geo.setCropBounds(r);
- MasterImage.getImage().getPreset().setGeometry(geo);
- MasterImage.getImage().notifyGeometryChange();
mLoadingLock.unlock();
return true;
}
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
index 53e07abaf..0fbf48313 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.widget.FrameLayout;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.CropExtras;
import com.android.gallery3d.filtershow.imageshow.ImageCrop;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
@@ -28,6 +29,9 @@ public class EditorCrop extends Editor implements EditorInfo {
private static final String LOGTAG = "EditorCrop";
ImageCrop mImageCrop;
+ private String mAspectString = null;
+ private boolean mCropActionFlag = false;
+ private CropExtras mCropExtras = null;
public EditorCrop() {
super(ID);
@@ -37,6 +41,9 @@ public class EditorCrop extends Editor implements EditorInfo {
public void createEditor(Context context, FrameLayout frameLayout) {
super.createEditor(context, frameLayout);
mView = mImageShow = mImageCrop = new ImageCrop(context);
+ mImageCrop.setExtras(mCropExtras);
+ mImageCrop.setAspectString(mAspectString);
+ mImageCrop.setCropActionFlag(mCropActionFlag);
mImageCrop.setImageLoader(MasterImage.getImage().getImageLoader());
mImageCrop.setEditor(this);
mImageCrop.syncLocalToMasterGeometry();
@@ -56,4 +63,17 @@ public class EditorCrop extends Editor implements EditorInfo {
public boolean getOverlayOnly() {
return true;
}
+
+ public void setExtras(CropExtras cropExtras) {
+ mCropExtras = cropExtras;
+ }
+
+ public void setAspectString(String s) {
+ mAspectString = s;
+ }
+
+ public void setCropActionFlag(boolean b) {
+ mCropActionFlag = b;
+ }
+
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index 4ca74300c..8a505fd4e 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -17,6 +17,8 @@
package com.android.gallery3d.filtershow.imageshow;
import android.graphics.*;
+import android.os.Handler;
+import android.os.Message;
import android.util.Log;
import com.android.gallery3d.filtershow.FilterShowActivity;
@@ -64,6 +66,20 @@ public class MasterImage implements RenderingRequestCaller {
private Point mImageShowSize = new Point();
+ final private static int NEW_GEOMETRY = 1;
+
+ private final Handler mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case NEW_GEOMETRY: {
+ hasNewGeometry();
+ break;
+ }
+ }
+ }
+ };
+
private MasterImage() {
}
@@ -183,6 +199,16 @@ public class MasterImage implements RenderingRequestCaller {
return mFilteredPreview;
}
+ public void setOriginalGeometry(Bitmap originalBitmapLarge) {
+ GeometryMetadata geo = getPreset().mGeoData;
+ float w = originalBitmapLarge.getWidth();
+ float h = originalBitmapLarge.getHeight();
+ RectF r = new RectF(0, 0, w, h);
+ geo.setPhotoBounds(r);
+ geo.setCropBounds(r);
+ getPreset().setGeometry(geo);
+ }
+
public Bitmap getFilteredImage() {
return mFilteredPreview.getConsumer();
}
@@ -333,6 +359,10 @@ public class MasterImage implements RenderingRequestCaller {
}
public void notifyGeometryChange() {
+ mHandler.sendEmptyMessage(NEW_GEOMETRY);
+ }
+
+ public void hasNewGeometry() {
updatePresets(true);
for (GeometryListener listener : mGeometryListeners) {
listener.geometryChanged();