summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2012-10-19 16:26:19 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-19 16:26:19 -0700
commitc174217272576bcd085ca95f7b0d9958a9d3a125 (patch)
tree3e6456ad3d6b932f7cb7650544f5177ab8703216
parent5ec7da1a2bd0af33c6afb6a70372fafbefa9cdf8 (diff)
parentea4609e63cc3721912bc0381eaaa6b1800062bd5 (diff)
downloadandroid_packages_apps_Snap-c174217272576bcd085ca95f7b0d9958a9d3a125.tar.gz
android_packages_apps_Snap-c174217272576bcd085ca95f7b0d9958a9d3a125.tar.bz2
android_packages_apps_Snap-c174217272576bcd085ca95f7b0d9958a9d3a125.zip
am e9c55b28: Add the infrastructure to support Tiny Planet
* commit 'e9c55b28a4a155c2e1c1f5aec615a0c56e38ade4': Add the infrastructure to support Tiny Planet
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java3
-rw-r--r--src/com/android/gallery3d/filtershow/cache/ImageLoader.java10
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilter.java13
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java14
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java4
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java1
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java17
7 files changed, 58 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index b8d74ac33..760532a8b 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -263,7 +263,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
int pos = listColors.indexOfChild(v);
listColors.removeView(v);
- filters[i].setParameter(100);
+ filters[i].setParameter(filters[i].getMaxParameter());
if(v instanceof ImageButtonTitle)
filters[i].setName(((ImageButtonTitle) v).getText());
fView.setImageFilter(filters[i]);
@@ -546,6 +546,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
};
ImagePreset preset = new ImagePreset(); // empty
+ preset.setImageLoader(mImageLoader);
ImageSmallFilter filter = new ImageSmallFilter(this);
filter.setSelected(true);
diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
index d0cab767e..032c4f78d 100644
--- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
+++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java
@@ -38,6 +38,7 @@ import com.android.gallery3d.filtershow.HistoryAdapter;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.tools.SaveCopyTask;
+import com.android.gallery3d.util.XmpUtilHelper;
import java.io.Closeable;
import java.io.File;
@@ -382,4 +383,13 @@ public class ImageLoader {
cache.prepare(preset);
cache.addObserver(caller);
}
+
+ public Object getXmpObject() {
+ try {
+ InputStream is = mContext.getContentResolver().openInputStream(getUri());
+ return XmpUtilHelper.extractXMPMeta(is);
+ } catch (FileNotFoundException e) {
+ return null;
+ }
+ }
}
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
index 270eb9a46..f63286cd7 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
@@ -3,12 +3,16 @@ package com.android.gallery3d.filtershow.filters;
import android.graphics.Bitmap;
+import com.android.gallery3d.filtershow.presets.ImagePreset;
+
public class ImageFilter implements Cloneable {
protected int mMaxParameter = 100;
protected int mMinParameter = -100;
protected int mDefaultParameter = 0;
protected int mParameter = 0;
+ private ImagePreset mImagePreset;
+
protected String mName = "Original";
private final String LOGTAG = "ImageFilter";
public static final byte TYPE_BORDER =1;
@@ -35,6 +39,7 @@ public class ImageFilter implements Cloneable {
filter.setFilterType(filterType);
filter.mMaxParameter = mMaxParameter;
filter.mMinParameter = mMinParameter;
+ filter.mImagePreset = mImagePreset;
filter.mDefaultParameter = mDefaultParameter;
return filter;
}
@@ -91,6 +96,14 @@ public class ImageFilter implements Cloneable {
return mDefaultParameter;
}
+ public ImagePreset getImagePreset() {
+ return mImagePreset;
+ }
+
+ public void setImagePreset(ImagePreset mPreset) {
+ this.mImagePreset = mPreset;
+ }
+
public boolean same(ImageFilter filter) {
if (!filter.getName().equalsIgnoreCase(getName())) {
return false;
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
index 25751052c..e742bb2ea 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterTinyPlanet.java
@@ -8,6 +8,8 @@ import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.util.Log;
+import com.android.gallery3d.filtershow.presets.ImagePreset;
+
public class ImageFilterTinyPlanet extends ImageFilter {
private static final String TAG = ImageFilterTinyPlanet.class.getSimpleName();
@@ -19,7 +21,17 @@ public class ImageFilterTinyPlanet extends ImageFilter {
@Override
public Bitmap apply(Bitmap bitmap, float scaleFactor, boolean highQuality) {
Log.d(TAG, "Applying tiny planet.");
+ String str = "TinyPlanet";
+ ImagePreset preset = getImagePreset();
+ if (preset != null) {
+ if (!preset.isPanoramaSafe()) {
+ str = "NO TP";
+ } else {
+ Object xmp = preset.getImageLoader().getXmpObject();
+ str = "TP got Xmp";
+ }
+ }
int w = bitmap.getWidth();
int h = bitmap.getHeight();
@@ -30,7 +42,7 @@ public class ImageFilterTinyPlanet extends ImageFilter {
paint.setColor(Color.RED);
paint.setTextSize((int) (((mParameter + 100) / 200f) * 100));
paint.setTextAlign(Align.CENTER);
- canvas.drawText("TinyPlanet", w / 2, h / 2, paint);
+ canvas.drawText(str, w / 2, h / 2, paint);
return super.apply(bitmap, scaleFactor, highQuality);
}
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 73dc598b8..61f998d47 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -506,6 +506,7 @@ public class ImageShow extends View implements OnGestureListener,
public void setImagePreset(ImagePreset preset, boolean addToHistory) {
mImagePreset = preset;
if (getImagePreset() != null) {
+ getImagePreset().setImageLoader(mImageLoader);
if (addToHistory) {
mHistoryAdapter.addHistoryItem(getImagePreset());
}
@@ -520,6 +521,9 @@ public class ImageShow extends View implements OnGestureListener,
mImageLoader = loader;
if (mImageLoader != null) {
mImageLoader.addListener(this);
+ if (mImagePreset != null) {
+ mImagePreset.setImageLoader(mImageLoader);
+ }
}
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
index f4bd41c9b..698c4ea7a 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
@@ -53,6 +53,7 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener
mImageFilter = filter;
mImagePreset = new ImagePreset();
mImagePreset.setName(filter.getName());
+ filter.setImagePreset(mImagePreset);
mImagePreset.add(mImageFilter);
}
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 0d8fc317e..83e7c129a 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -5,6 +5,7 @@ import android.graphics.Bitmap;
import android.util.Log;
import com.android.gallery3d.filtershow.ImageStateAdapter;
+import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
@@ -19,6 +20,7 @@ public class ImagePreset {
private ImageFilter mImageBorder = null;
private float mScaleFactor = 1.0f;
private boolean mIsHighQuality = false;
+ private ImageLoader mImageLoader = null;
protected Vector<ImageFilter> mFilters = new Vector<ImageFilter>();
protected String mName = "Original";
@@ -48,7 +50,9 @@ public class ImagePreset {
mImageBorder = source.mImageBorder.clone();
}
for (int i = 0; i < source.mFilters.size(); i++) {
- add(source.mFilters.elementAt(i).clone());
+ ImageFilter filter = source.mFilters.elementAt(i).clone();
+ filter.setImagePreset(this);
+ add(filter);
}
} catch (java.lang.CloneNotSupportedException e) {
Log.v(LOGTAG, "Exception trying to clone: " + e);
@@ -56,6 +60,7 @@ public class ImagePreset {
mName = source.name();
mHistoryName = source.name();
mIsFxPreset = source.isFx();
+ mImageLoader = source.getImageLoader();
mGeoData.set(source.mGeoData);
}
@@ -118,6 +123,14 @@ public class ImagePreset {
mHistoryName = name;
}
+ public ImageLoader getImageLoader() {
+ return mImageLoader;
+ }
+
+ public void setImageLoader(ImageLoader mImageLoader) {
+ this.mImageLoader = mImageLoader;
+ }
+
public boolean same(ImagePreset preset) {
if (preset.mFilters.size() != mFilters.size()) {
return false;
@@ -186,7 +199,7 @@ public class ImagePreset {
mFilters.add(filter);
setHistoryName(filter.getName());
}
-
+ filter.setImagePreset(this);
}
public void remove(String filterName) {