From d5bcc6bf262edfc2bc736e5ed1d636b30a1c44fe Mon Sep 17 00:00:00 2001 From: Owen Lin Date: Tue, 24 Jul 2012 14:34:07 +0800 Subject: Avoid using class defined in API level 14. Change-Id: Ia6385f98b048292de70c6e8aa628a2e6fc629485 --- .../com/android/gallery3d/common/ApiHelper.java | 33 ++++++++++------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'gallerycommon/src/com') diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java index d586ca47f..2937ed2cd 100644 --- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java +++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java @@ -20,7 +20,6 @@ import android.app.Activity; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.hardware.Camera; -import android.hardware.Camera.FaceDetectionListener; import android.os.Build; import android.provider.MediaStore.MediaColumns; import android.view.View; @@ -82,12 +81,21 @@ public class ApiHelper { public static final boolean HAS_SET_SYSTEM_UI_VISIBILITY = hasMethod(View.class, "setSystemUiVisibility", int.class); - public static final boolean HAS_FACE_DETECTION = - hasClass(Camera.class, "android.hardware.Camera$FaceDetectionListener") && - hasMethod(Camera.class, "setFaceDetectionListener", FaceDetectionListener.class) && - hasMethod(Camera.class, "startFaceDetection") && - hasMethod(Camera.class, "stopFaceDetection") && - hasMethod(Camera.Parameters.class, "getMaxNumDetectedFaces"); + public static final boolean HAS_FACE_DETECTION; + static { + boolean hasFaceDetection = false; + try { + Class listenerClass = Class.forName( + "android.hardware.Camera$FaceDetectionListener"); + hasFaceDetection = + hasMethod(Camera.class, "setFaceDetectionListener", listenerClass) && + hasMethod(Camera.class, "startFaceDetection") && + hasMethod(Camera.class, "stopFaceDetection") && + hasMethod(Camera.Parameters.class, "getMaxNumDetectedFaces"); + } catch (Throwable t) { + } + HAS_FACE_DETECTION = hasFaceDetection; + } public static final boolean HAS_GET_CAMERA_DISABLED = hasMethod(DevicePolicyManager.class, "getCameraDisabled", ComponentName.class); @@ -146,15 +154,4 @@ public class ApiHelper { return false; } } - - private static boolean hasClass(Class klass, String className) { - Class[] klasses = klass.getClasses(); - for (int i = 0; i < klasses.length; ++i) { - if (klasses[i].getName().equals(className)) { - return true; - } - } - return false; - } - } -- cgit v1.2.3