Merge "Refactor CameraDataAdapter for other data types." into gb-ub-photos-bryce
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 874a7c9..1a7d200 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -360,15 +360,7 @@
ImageFilter.setActivityForMemoryToasts(this);
Resources res = getResources();
- // TODO: add a mechanism to set the resources in FiltersManagmer
- ImageFilterBorder filterBorder = (ImageFilterBorder) FiltersManager.getManager().getFilter(ImageFilterBorder.class);
- filterBorder.setResources(res);
- filterBorder = (ImageFilterBorder) FiltersManager.getPreviewManager().getFilter(ImageFilterBorder.class);
- filterBorder.setResources(res);
- ImageFilterFx filterFx = (ImageFilterFx) FiltersManager.getManager().getFilter(ImageFilterFx.class);
- filterFx.setResources(res);
- filterFx = (ImageFilterFx) FiltersManager.getPreviewManager().getFilter(ImageFilterFx.class);
- filterFx.setResources(res);
+ FiltersManager.setResources(res);
ImageShow.setDefaultBackgroundColor(res.getColor(R.color.background_screen));
// TODO: get those values from XML.
@@ -554,6 +546,7 @@
ImageFilter.resetStatics();
FiltersManager.getPreviewManager().freeRSFilterScripts();
FiltersManager.getManager().freeRSFilterScripts();
+ FiltersManager.getHighresManager().freeRSFilterScripts();
FiltersManager.reset();
CachingPipeline.destroyRenderScriptContext();
super.onDestroy();
diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
index a8c8d7b..e63323b 100644
--- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
@@ -34,12 +34,13 @@
private static final String LOGTAG = "FilteringPipeline";
private boolean DEBUG = false;
- private static long HIRES_DELAY = 100; // in ms
+ private static long HIRES_DELAY = 300; // in ms
private volatile boolean mPipelineIsOn = false;
private CachingPipeline mAccessoryPipeline = null;
private CachingPipeline mPreviewPipeline = null;
+ private CachingPipeline mHighresPreviewPipeline = null;
private HandlerThread mHandlerThread = null;
private final static int NEW_PRESET = 0;
@@ -111,7 +112,11 @@
}
RenderingRequest request = (RenderingRequest) msg.obj;
- mAccessoryPipeline.render(request);
+ if (msg.what == COMPUTE_HIGHRES_RENDERING_REQUEST) {
+ mHighresPreviewPipeline.render(request);
+ } else {
+ mAccessoryPipeline.render(request);
+ }
Message uimsg = mUIHandler.obtainMessage(NEW_RENDERING_REQUEST);
uimsg.obj = request;
mUIHandler.sendMessage(uimsg);
@@ -126,8 +131,12 @@
Process.THREAD_PRIORITY_FOREGROUND);
mHandlerThread.start();
mProcessingHandler = new Handler(mHandlerThread.getLooper(), this);
- mAccessoryPipeline = new CachingPipeline(FiltersManager.getManager(), "Accessory");
- mPreviewPipeline = new CachingPipeline(FiltersManager.getPreviewManager(), "Preview");
+ mAccessoryPipeline = new CachingPipeline(
+ FiltersManager.getManager(), "Accessory");
+ mPreviewPipeline = new CachingPipeline(
+ FiltersManager.getPreviewManager(), "Preview");
+ mHighresPreviewPipeline = new CachingPipeline(
+ FiltersManager.getHighresManager(), "Highres");
}
public synchronized static FilteringPipeline getPipeline() {
@@ -145,6 +154,7 @@
Log.v(LOGTAG,"setOriginal, size " + bitmap.getWidth() + " x " + bitmap.getHeight());
mAccessoryPipeline.setOriginal(bitmap);
mPreviewPipeline.setOriginal(bitmap);
+ mHighresPreviewPipeline.setOriginal(bitmap);
}
public void postRenderingRequest(RenderingRequest request) {
@@ -194,16 +204,19 @@
public void setPreviewScaleFactor(float previewScaleFactor) {
mAccessoryPipeline.setPreviewScaleFactor(previewScaleFactor);
mPreviewPipeline.setPreviewScaleFactor(previewScaleFactor);
+ mHighresPreviewPipeline.setPreviewScaleFactor(previewScaleFactor);
}
public void setHighResPreviewScaleFactor(float highResPreviewScaleFactor) {
mAccessoryPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor);
mPreviewPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor);
+ mHighresPreviewPipeline.setHighResPreviewScaleFactor(highResPreviewScaleFactor);
}
public static synchronized void reset() {
sPipeline.mAccessoryPipeline.reset();
sPipeline.mPreviewPipeline.reset();
+ sPipeline.mHighresPreviewPipeline.reset();
sPipeline.mHandlerThread.quit();
sPipeline = null;
}
@@ -213,6 +226,7 @@
if (mPipelineIsOn) {
assert(mPreviewPipeline.isInitialized());
assert(mAccessoryPipeline.isInitialized());
+ assert(mHighresPreviewPipeline.isInitialized());
updatePreviewBuffer();
}
}
diff --git a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
index 232de64..66ad106 100644
--- a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
+++ b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
@@ -15,6 +15,7 @@
*/
package com.android.gallery3d.filtershow.filters;
+import android.content.res.Resources;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import java.util.HashMap;
@@ -140,4 +141,10 @@
representations.add(getRepresentation(ImageFilterDraw.class));
}
+ public void setFilterResources(Resources resources) {
+ ImageFilterBorder filterBorder = (ImageFilterBorder) getFilter(ImageFilterBorder.class);
+ filterBorder.setResources(resources);
+ ImageFilterFx filterFx = (ImageFilterFx) getFilter(ImageFilterFx.class);
+ filterFx.setResources(resources);
+ }
}
diff --git a/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java b/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
index 4b6b1d3..9de9b7b 100644
--- a/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
+++ b/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
@@ -16,12 +16,15 @@
package com.android.gallery3d.filtershow.filters;
+import android.content.res.Resources;
+
import java.util.HashMap;
import java.util.Vector;
public class FiltersManager extends BaseFiltersManager {
private static FiltersManager sInstance = null;
private static FiltersManager sPreviewInstance = null;
+ private static FiltersManager sHighresInstance = null;
public FiltersManager() {
init();
@@ -41,9 +44,22 @@
return sInstance;
}
+ public static FiltersManager getHighresManager() {
+ if (sHighresInstance == null) {
+ sHighresInstance = new FiltersManager();
+ }
+ return sHighresInstance;
+ }
+
public static void reset() {
sInstance = null;
sPreviewInstance = null;
+ sHighresInstance = null;
}
+ public static void setResources(Resources resources) {
+ FiltersManager.getManager().setFilterResources(resources);
+ FiltersManager.getPreviewManager().setFilterResources(resources);
+ FiltersManager.getHighresManager().setFilterResources(resources);
+ }
}