summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-03-04 21:43:49 -0800
committernicolasroard <nicolasroard@google.com>2013-03-05 00:16:17 -0800
commit6aa73e7615a165c185778c238a7d6c73b6b56eff (patch)
tree6d359d4b945359e5d11afea5d3c7d9d215210ff1
parent72db7ea0c18e5cc2f465252b53d9b6d2a8dcc6a0 (diff)
downloadandroid_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.tar.gz
android_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.tar.bz2
android_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.zip
Visual History
Change-Id: I3397c44b8c47985c97de5b82456c03469b2fb8db
-rw-r--r--src/com/android/gallery3d/filtershow/HistoryAdapter.java31
-rw-r--r--src/com/android/gallery3d/filtershow/cache/RenderingRequest.java10
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java7
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java26
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java9
5 files changed, 59 insertions, 24 deletions
diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
index c94a0075b..a10e66ba4 100644
--- a/src/com/android/gallery3d/filtershow/HistoryAdapter.java
+++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
@@ -17,6 +17,8 @@
package com.android.gallery3d.filtershow;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
@@ -195,30 +197,15 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
if (itemView != null) {
itemView.setText(item.historyName());
}
- ImageView markView = (ImageView) view.findViewById(R.id.selectedMark);
- if (position == mCurrentPresetPosition) {
- markView.setVisibility(View.VISIBLE);
- } else {
- markView.setVisibility(View.INVISIBLE);
+ ImageView preview = (ImageView) view.findViewById(R.id.preview);
+ Bitmap bmp = item.getPreviewImage();
+ if (bmp != null) {
+ preview.setImageBitmap(bmp);
}
- ImageView typeView = (ImageView) view.findViewById(R.id.typeMark);
- // TODO: use type of last filter, not a string, to discriminate.
- if (position == getCount() - 1) {
- typeView.setImageResource(R.drawable.ic_photoeditor_effects);
- } else if (item.historyName().equalsIgnoreCase(mBorders)) {
- typeView.setImageResource(R.drawable.ic_photoeditor_border);
- } else if (item.historyName().equalsIgnoreCase(mStraighten)) {
- typeView.setImageResource(R.drawable.ic_photoeditor_fix);
- } else if (item.historyName().equalsIgnoreCase(mCrop)) {
- typeView.setImageResource(R.drawable.ic_photoeditor_fix);
- } else if (item.historyName().equalsIgnoreCase(mRotate)) {
- typeView.setImageResource(R.drawable.ic_photoeditor_fix);
- } else if (item.historyName().equalsIgnoreCase(mMirror)) {
- typeView.setImageResource(R.drawable.ic_photoeditor_fix);
- } else if (item.isFx()) {
- typeView.setImageResource(R.drawable.ic_photoeditor_effects);
+ if (position == mCurrentPresetPosition) {
+ view.setBackgroundColor(Color.WHITE);
} else {
- typeView.setImageResource(R.drawable.ic_photoeditor_color);
+ view.setBackgroundResource(R.drawable.filtershow_button_background);
}
}
diff --git a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
index 3ec74e266..e81f47fe1 100644
--- a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
+++ b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
@@ -27,6 +27,7 @@ public class RenderingRequest {
private boolean mIsDirect = false;
private Bitmap mBitmap = null;
private ImagePreset mImagePreset = null;
+ private ImagePreset mOriginalImagePreset = null;
private RenderingRequestCaller mCaller = null;
private Rect mBounds = null;
private Rect mDestination = null;
@@ -61,6 +62,7 @@ public class RenderingRequest {
request.setBitmap(bitmap);
ImagePreset passedPreset = new ImagePreset(preset);
passedPreset.setImageLoader(MasterImage.getImage().getImageLoader());
+ request.setOriginalImagePreset(preset);
if (type == PARTIAL_RENDERING) {
request.setBounds(bounds);
@@ -137,4 +139,12 @@ public class RenderingRequest {
public void setDestination(Rect destination) {
mDestination = destination;
}
+
+ public ImagePreset getOriginalImagePreset() {
+ return mOriginalImagePreset;
+ }
+
+ public void setOriginalImagePreset(ImagePreset originalImagePreset) {
+ mOriginalImagePreset = originalImagePreset;
+ }
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 926f14ac0..1edfd79a1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -572,6 +572,7 @@ public class ImageShow extends View implements OnGestureListener,
translation.y = (int) (originalTranslation.y + translateY);
MasterImage.getImage().setTranslation(translation);
}
+ mTouchShowOriginal = false;
} else if (!mOriginalDisabled && !mActivity.isShowingHistoryPanel()
&& (System.currentTimeMillis() - mTouchShowOriginalDate
> mTouchShowOriginalDelayMin)
@@ -629,14 +630,16 @@ public class ImageShow extends View implements OnGestureListener,
if (mActivity == null) {
return false;
}
+ if (endEvent.getPointerCount() == 2) {
+ return false;
+ }
if ((!mActivity.isShowingHistoryPanel() && startEvent.getX() > endEvent.getX())
|| (mActivity.isShowingHistoryPanel() && endEvent.getX() > startEvent.getX())) {
if (!mTouchShowOriginal
|| (mTouchShowOriginal &&
(System.currentTimeMillis() - mTouchShowOriginalDate
< mTouchShowOriginalDelayMax))) {
- // TODO fix gesture.
- // mActivity.toggleHistoryPanel();
+ mActivity.toggleHistoryPanel();
}
}
return true;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index e93c3713f..209c3bdb9 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -39,6 +39,7 @@ public class MasterImage implements RenderingRequestCaller {
private static MasterImage sMasterImage = null;
private static int sIconSeedSize = 128;
+ private static float sHistoryPreviewSize = 128.0f;
private Bitmap mThumbnailBitmap;
private ImageFilter mCurrentFilter = null;
@@ -132,6 +133,7 @@ public class MasterImage implements RenderingRequestCaller {
mPreset.fillImageStateAdapter(mState);
if (addToHistory) {
mHistory.addHistoryItem(mPreset);
+ renderHistoryPreview();
}
updatePresets(true);
GeometryMetadata geo = mPreset.mGeoData;
@@ -141,6 +143,23 @@ public class MasterImage implements RenderingRequestCaller {
mPreviousGeometry = new GeometryMetadata(geo);
}
+ private void renderHistoryPreview() {
+ ImagePreset historyPreset = mPreset;
+ if (historyPreset != null) {
+ Bitmap preview = mLoader.getOriginalBitmapSmall();
+ if (preview != null) {
+ float s = Math.min(preview.getWidth(), preview.getHeight());
+ float f = sHistoryPreviewSize / s;
+ int w = (int) (preview.getWidth() * f);
+ int h = (int) (preview.getHeight() * f);
+ Bitmap historyPreview = Bitmap.createScaledBitmap(preview, w, h, true);
+ historyPreset.setPreviewImage(historyPreview);
+ RenderingRequest.post(historyPreview,
+ historyPreset, RenderingRequest.ICON_RENDERING, this);
+ }
+ }
+ }
+
private void setGeometry() {
Bitmap image = mLoader.getOriginalBitmapLarge();
if (image == null) {
@@ -292,6 +311,7 @@ public class MasterImage implements RenderingRequestCaller {
invalidatePartialPreview();
needsUpdateFullResPreview();
FilteringPipeline.getPipeline().updatePreviewBuffer();
+ renderHistoryPreview();
}
public void setImageShowSize(int w, int h) {
@@ -356,6 +376,12 @@ public class MasterImage implements RenderingRequestCaller {
mPartialBitmap = request.getBitmap();
notifyObservers();
}
+ if (request.getType() == RenderingRequest.ICON_RENDERING) {
+ // History preview images
+ ImagePreset preset = request.getOriginalImagePreset();
+ preset.setPreviewImage(request.getBitmap());
+ mHistory.notifyDataSetChanged();
+ }
}
public static void reset() {
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 82592a0f7..ca74a8729 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -54,6 +54,7 @@ public class ImagePreset {
public final GeometryMetadata mGeoData = new GeometryMetadata();
private boolean mPartialRendering = false;
private Rect mPartialRenderingBounds;
+ private Bitmap mPreviewImage;
public ImagePreset() {
setup();
@@ -522,4 +523,12 @@ public class ImagePreset {
return mPartialRenderingBounds;
}
+ public Bitmap getPreviewImage() {
+ return mPreviewImage;
+ }
+
+ public void setPreviewImage(Bitmap previewImage) {
+ mPreviewImage = previewImage;
+ }
+
}