Avoid using class defined in API level 14.
Change-Id: Ia6385f98b048292de70c6e8aa628a2e6fc629485
diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
index d586ca4..2937ed2 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.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 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 @@
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;
- }
-
}