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;
-    }
-
 }