Reconcile with jb-dev - do not merge
Change-Id: Icd05cc41786c59d592e51e5e0b7a4296a4a1cf57
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2a69ce1..15b0198 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -7,7 +7,7 @@
<original-package android:name="com.android.gallery3d" />
- <uses-sdk android:minSdkVersion="14" />
+ <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/src/com/android/gallery3d/app/AbstractGalleryActivity.java b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
index f674c0b..144485d 100644
--- a/src/com/android/gallery3d/app/AbstractGalleryActivity.java
+++ b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
@@ -142,7 +142,7 @@
}
};
mAlertDialog = new AlertDialog.Builder(this)
- .setIcon(android.R.drawable.ic_dialog_alert)
+ .setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle("No Storage")
.setMessage("No external storage available.")
.setNegativeButton(android.R.string.cancel, onClick)
diff --git a/src/com/android/gallery3d/photoeditor/EffectsBar.java b/src/com/android/gallery3d/photoeditor/EffectsBar.java
index fad0b90..88830be 100644
--- a/src/com/android/gallery3d/photoeditor/EffectsBar.java
+++ b/src/com/android/gallery3d/photoeditor/EffectsBar.java
@@ -71,8 +71,13 @@
effectsGallery = inflater.inflate(R.layout.photoeditor_effects_gallery, this, false);
ViewGroup scrollView = (ViewGroup) effectsGallery.findViewById(R.id.scroll_view);
ViewGroup effects = (ViewGroup) inflater.inflate(effectsId, scrollView, false);
- for (int i = 0; i < effects.getChildCount(); i++) {
- setupEffect((EffectAction) effects.getChildAt(i));
+ for (int i = effects.getChildCount()-1; i >= 0; i--) {
+ EffectAction effect = (EffectAction) effects.getChildAt(i);
+ if( !effect.isPresent() ){
+ effects.removeViewAt(i);
+ continue;
+ }
+ setupEffect(effect);
}
scrollView.addView(effects);
scrollView.scrollTo(0, 0);
diff --git a/src/com/android/gallery3d/photoeditor/actions/EffectAction.java b/src/com/android/gallery3d/photoeditor/actions/EffectAction.java
index 92bcee4..ce0ee63 100644
--- a/src/com/android/gallery3d/photoeditor/actions/EffectAction.java
+++ b/src/com/android/gallery3d/photoeditor/actions/EffectAction.java
@@ -144,6 +144,15 @@
}
/**
+ * Checks if the action effect is present in the system.
+ *
+ * @return boolean true if an action effect is present in the system and can be loaded
+ */
+ public boolean isPresent() {
+ return true;
+ }
+
+ /**
* Done callback for executing top filter changes.
*/
private class FilterChangedCallback implements OnDoneCallback {
diff --git a/src/com/android/gallery3d/photoeditor/actions/FaceTanAction.java b/src/com/android/gallery3d/photoeditor/actions/FaceTanAction.java
index 6b8f1d1..e66fc58 100644
--- a/src/com/android/gallery3d/photoeditor/actions/FaceTanAction.java
+++ b/src/com/android/gallery3d/photoeditor/actions/FaceTanAction.java
@@ -52,4 +52,9 @@
filter.setScale(DEFAULT_SCALE);
notifyChanged(filter);
}
+
+ @Override
+ public boolean isPresent() {
+ return FaceTanFilter.isPresent();
+ }
}
diff --git a/src/com/android/gallery3d/photoeditor/actions/FaceliftAction.java b/src/com/android/gallery3d/photoeditor/actions/FaceliftAction.java
index 4c1a918..6787d45 100644
--- a/src/com/android/gallery3d/photoeditor/actions/FaceliftAction.java
+++ b/src/com/android/gallery3d/photoeditor/actions/FaceliftAction.java
@@ -52,4 +52,9 @@
filter.setScale(DEFAULT_SCALE);
notifyChanged(filter);
}
+
+ @Override
+ public boolean isPresent() {
+ return FaceliftFilter.isPresent();
+ }
}
diff --git a/src/com/android/gallery3d/photoeditor/filters/FaceTanFilter.java b/src/com/android/gallery3d/photoeditor/filters/FaceTanFilter.java
index c52bb88..b7a1cf1 100644
--- a/src/com/android/gallery3d/photoeditor/filters/FaceTanFilter.java
+++ b/src/com/android/gallery3d/photoeditor/filters/FaceTanFilter.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.photoeditor.filters;
import android.media.effect.Effect;
+import android.media.effect.EffectFactory;
import com.android.gallery3d.photoeditor.Photo;
@@ -27,10 +28,22 @@
public static final Creator<FaceTanFilter> CREATOR = creatorOf(FaceTanFilter.class);
+ private static final String EFFECT_FACE_TANNING = "com.google.android.media.effect.effects.FaceTanningEffect";
+
@Override
public void process(Photo src, Photo dst) {
- Effect effect = getEffect("com.google.android.media.effect.effects.FaceTanningEffect");
+ Effect effect = getEffect(EFFECT_FACE_TANNING);
effect.setParameter("blend", scale);
effect.apply(src.texture(), src.width(), src.height(), dst.texture());
}
+
+ /**
+ * Checks if the effect is present in the system.
+ *
+ * @return boolean true if an effect is present in the system and can be loaded
+ */
+ public static boolean isPresent() {
+ return EffectFactory.isEffectSupported(EFFECT_FACE_TANNING);
+ }
+
}
diff --git a/src/com/android/gallery3d/photoeditor/filters/FaceliftFilter.java b/src/com/android/gallery3d/photoeditor/filters/FaceliftFilter.java
index c6ad84b..3e4fad2 100644
--- a/src/com/android/gallery3d/photoeditor/filters/FaceliftFilter.java
+++ b/src/com/android/gallery3d/photoeditor/filters/FaceliftFilter.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.photoeditor.filters;
import android.media.effect.Effect;
+import android.media.effect.EffectFactory;
import com.android.gallery3d.photoeditor.Photo;
@@ -27,10 +28,21 @@
public static final Creator<FaceliftFilter> CREATOR = creatorOf(FaceliftFilter.class);
+ private static final String EFFECT_FACELIFT = "com.google.android.media.effect.effects.FaceliftEffect";
+
@Override
public void process(Photo src, Photo dst) {
- Effect effect = getEffect("com.google.android.media.effect.effects.FaceliftEffect");
+ Effect effect = getEffect(EFFECT_FACELIFT);
effect.setParameter("blend", scale);
effect.apply(src.texture(), src.width(), src.height(), dst.texture());
}
+
+ /**
+ * Checks if the effect is present in the system.
+ *
+ * @return boolean true if an effect is present in the system and can be loaded
+ */
+ public static boolean isPresent() {
+ return EffectFactory.isEffectSupported(EFFECT_FACELIFT);
+ }
}
diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java
index 3619ca0..101d592 100644
--- a/src/com/android/gallery3d/ui/MenuExecutor.java
+++ b/src/com/android/gallery3d/ui/MenuExecutor.java
@@ -393,7 +393,7 @@
if (!execute(manager, jc, mOperation, id)) {
result = EXECUTION_RESULT_FAIL;
}
- onProgressUpdate(index++, mListener);
+ onProgressUpdate(++index, mListener);
}
} catch (Throwable th) {
Log.e(TAG, "failed to execute operation " + mOperation