summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-03-12 18:23:41 -0700
committernicolasroard <nicolasroard@google.com>2013-03-12 18:23:41 -0700
commit79a8733231a81dcd79e10f50ec142005b537269c (patch)
treea0a000af66fbde8a26e4e851f5f4b566fe58ac1a
parentb2fc6a4fb6519fd998d9691e244cdbab3587b54c (diff)
downloadandroid_packages_apps_Snap-79a8733231a81dcd79e10f50ec142005b537269c.tar.gz
android_packages_apps_Snap-79a8733231a81dcd79e10f50ec142005b537269c.tar.bz2
android_packages_apps_Snap-79a8733231a81dcd79e10f50ec142005b537269c.zip
Fix preview synchronization
Change-Id: Id6b5e5a140a3c366f2f5d4c29809e83ac1530d04
-rw-r--r--src/com/android/gallery3d/filtershow/ImageStateAdapter.java1
-rw-r--r--src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java7
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java3
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java1
4 files changed, 9 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/ImageStateAdapter.java b/src/com/android/gallery3d/filtershow/ImageStateAdapter.java
index 62633e26e..1cd5f86c8 100644
--- a/src/com/android/gallery3d/filtershow/ImageStateAdapter.java
+++ b/src/com/android/gallery3d/filtershow/ImageStateAdapter.java
@@ -45,6 +45,7 @@ public class ImageStateAdapter extends ArrayAdapter<FilterRepresentation> {
view = (MovableLinearLayout) inflater.inflate(R.layout.filtershow_imagestate_row, null);
}
FilterRepresentation filter = getItem(position);
+ filter.synchronizeRepresentation();
view.setFilterRepresentation(filter);
ImageView markView = (ImageView) view.findViewById(R.id.selectedMark);
if (filter == MasterImage.getImage().getCurrentFilterRepresentation()) {
diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
index 39b39695c..4aeb580e6 100644
--- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
@@ -49,6 +49,8 @@ public class FilteringPipeline implements Handler.Callback {
private final static int COMPUTE_RENDERING_REQUEST = 3;
private final static int COMPUTE_PARTIAL_RENDERING_REQUEST = 4;
+ private boolean mHasUnhandledPreviewRequest = false;
+
private Handler mProcessingHandler = null;
private final Handler mUIHandler = new Handler() {
@Override
@@ -58,6 +60,9 @@ public class FilteringPipeline implements Handler.Callback {
TripleBufferBitmap buffer = MasterImage.getImage().getDoubleBuffer();
buffer.swapConsumer();
MasterImage.getImage().notifyObservers();
+ if (mHasUnhandledPreviewRequest) {
+ updatePreviewBuffer();
+ }
break;
}
case NEW_RENDERING_REQUEST: {
@@ -194,6 +199,7 @@ public class FilteringPipeline implements Handler.Callback {
if (mOriginalAllocation == null) {
return;
}
+ mHasUnhandledPreviewRequest = true;
if (mProcessingHandler.hasMessages(COMPUTE_PRESET)) {
return;
}
@@ -205,6 +211,7 @@ public class FilteringPipeline implements Handler.Callback {
}
Message msg = mProcessingHandler.obtainMessage(COMPUTE_PRESET);
msg.obj = MasterImage.getImage().getPreset();
+ mHasUnhandledPreviewRequest = false;
mProcessingHandler.sendMessageAtFrontOfQueue(msg);
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 38d415633..0b2f96abb 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -156,9 +156,6 @@ public class ImageShow extends View implements OnGestureListener,
}
public void onNewValue(int parameter) {
- if (getImagePreset() != null) {
- getImagePreset().fillImageStateAdapter(MasterImage.getImage().getState());
- }
if (getPanelController() != null) {
getPanelController().onNewValue(parameter);
}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index e27afe580..b75ac64fb 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -147,6 +147,7 @@ public class ImagePreset {
}
}
MasterImage.getImage().invalidatePreview();
+ fillImageStateAdapter(MasterImage.getImage().getState());
}
public void setDoApplyGeometry(boolean value) {