diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2017-05-02 23:15:53 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2017-05-02 23:15:53 -0700 |
commit | 5692b7c86577870274dd2ce517b330a6fe761980 (patch) | |
tree | 941abb3e7fb21c9b21db0808f462e23cf4eebbb5 | |
parent | 3d085114604468ca739645e7b21ce3d2d3f07e62 (diff) | |
parent | 1d660c5c5c38e2b773844a0a6dc8dcc3ab8d5742 (diff) | |
download | android_packages_apps_Gallery2-5692b7c86577870274dd2ce517b330a6fe761980.tar.gz android_packages_apps_Gallery2-5692b7c86577870274dd2ce517b330a6fe761980.tar.bz2 android_packages_apps_Gallery2-5692b7c86577870274dd2ce517b330a6fe761980.zip |
Promotion of android_ui.lnx.2.1-00099.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
2036804 I171098d1339e73f745b556a2c0bd2efcbf25446c Fix crash of missing ts face libs
Change-Id: Ica06f05bd89a7d6329c1c845b507adec2f85a561
CRs-Fixed: 2036804
4 files changed, 40 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 96696b2db..9e22e9d22 100755 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -1859,10 +1859,14 @@ DialogInterface.OnDismissListener, PopupMenu.OnDismissListener{ if(src == null) { return false; } - FaceDetect fDetect = new FaceDetect(); - fDetect.initialize(); - FaceInfo[] faceInfos = fDetect.dectectFeatures(src); - fDetect.uninitialize(); + + FaceInfo[] faceInfos = null; + FaceDetect fDetect = FaceDetect.getInstance(); + if (fDetect.isLibLoaded()) { + fDetect.initialize(); + faceInfos = fDetect.dectectFeatures(src); + fDetect.uninitialize(); + } if(faceInfos != null && faceInfos.length > 0) { Rect[] faces = new Rect[faceInfos.length]; diff --git a/src/com/android/gallery3d/filtershow/filters/SimpleMakeupImageFilter.java b/src/com/android/gallery3d/filtershow/filters/SimpleMakeupImageFilter.java index 3a31b4bfa..7cfce3614 100644 --- a/src/com/android/gallery3d/filtershow/filters/SimpleMakeupImageFilter.java +++ b/src/com/android/gallery3d/filtershow/filters/SimpleMakeupImageFilter.java @@ -23,12 +23,13 @@ import android.util.Log; import com.android.gallery3d.common.ApiHelper.SystemProperties; import com.thundersoft.hz.selfportrait.detect.FaceDetect; import com.thundersoft.hz.selfportrait.detect.FaceInfo; +import com.thundersoft.hz.selfportrait.makeup.engine.MakeupEngine; public abstract class SimpleMakeupImageFilter extends SimpleImageFilter { private static final String LOGTAG = "SimpleMakeupImageFilter"; protected static final int MAKEUP_INTENSITY = 50; - public static final boolean HAS_TS_MAKEUP = SystemProperties.getBoolean("persist.ts.postmakeup", true); + public static final boolean HAS_TS_MAKEUP = MakeupEngine.getMakeupObj().isLibLoaded(); public SimpleMakeupImageFilter() { } @@ -41,10 +42,13 @@ public abstract class SimpleMakeupImageFilter extends SimpleImageFilter { } protected FaceInfo detectFaceInfo(Bitmap bitmap) { - FaceDetect faceDetect = new FaceDetect(); - faceDetect.initialize(); - FaceInfo[] faceInfos = faceDetect.dectectFeatures(bitmap); - faceDetect.uninitialize(); + FaceDetect faceDetect = FaceDetect.getInstance(); + FaceInfo[] faceInfos = null; + if (faceDetect.isLibLoaded()) { + faceDetect.initialize(); + faceInfos = faceDetect.dectectFeatures(bitmap); + faceDetect.uninitialize(); + } Log.v(LOGTAG, "SimpleMakeupImageFilter.detectFaceInfo(): detect faceNum is " + (faceInfos != null ? faceInfos.length : "NULL")); diff --git a/src/com/thundersoft/hz/selfportrait/detect/FaceDetect.java b/src/com/thundersoft/hz/selfportrait/detect/FaceDetect.java index 99eb33ec8..6577b9388 100644 --- a/src/com/thundersoft/hz/selfportrait/detect/FaceDetect.java +++ b/src/com/thundersoft/hz/selfportrait/detect/FaceDetect.java @@ -25,16 +25,22 @@ public class FaceDetect { private static final String TAG = "FaceDetect"; private long mHandle = 0; + private static boolean mLibLoaded; + private static FaceDetect mInstance; static { try { System.loadLibrary("ts_detected_face_jni"); + mLibLoaded = true; } catch (UnsatisfiedLinkError e) { e.printStackTrace(); + mLibLoaded = false; Log.e(TAG, "ts_detected_face_jni library not found!"); } } + private FaceDetect() {} + /** * initialize method,MUST called at first time. */ @@ -42,6 +48,16 @@ public class FaceDetect { mHandle = native_create(); } + public static FaceDetect getInstance() { + if (mInstance == null) + mInstance = new FaceDetect(); + return mInstance; + } + + public boolean isLibLoaded() { + return mLibLoaded; + } + /** * uninitialize method,MUST called at last time. */ diff --git a/src/com/thundersoft/hz/selfportrait/makeup/engine/MakeupEngine.java b/src/com/thundersoft/hz/selfportrait/makeup/engine/MakeupEngine.java index d33dc7f91..1ddb2383f 100644 --- a/src/com/thundersoft/hz/selfportrait/makeup/engine/MakeupEngine.java +++ b/src/com/thundersoft/hz/selfportrait/makeup/engine/MakeupEngine.java @@ -25,18 +25,25 @@ public class MakeupEngine { static { try { System.loadLibrary("ts_face_beautify_jni"); + mLibLoaded = true; } catch (UnsatisfiedLinkError e) { e.printStackTrace(); + mLibLoaded = false; Log.e(MakeupEngine.class.getName(), "ts_face_beautify_jni library not found!"); } } + private static boolean mLibLoaded; private static MakeupEngine mInstance; private MakeupEngine() { } + public boolean isLibLoaded() { + return mLibLoaded; + } + public static MakeupEngine getMakeupObj() { if(mInstance == null) { mInstance = new MakeupEngine(); |