summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
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 /src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
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
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java26
1 files changed, 26 insertions, 0 deletions
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() {