summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
diff options
context:
space:
mode:
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() {