summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-05-07 04:43:44 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-05-07 04:43:44 -0700
commit4a7636efec4a1dacfe6e70cfd119675270f46f75 (patch)
treeba7a694bcbe2d1131cdc2595076f5dcf5ccf44ac
parent90518958ceb2b1ef18f11aeacd02c7db7557e3b9 (diff)
parentf81e1bc06bdf26b0f89c14753016a02f6998a57a (diff)
downloadandroid_packages_apps_Snap-4a7636efec4a1dacfe6e70cfd119675270f46f75.tar.gz
android_packages_apps_Snap-4a7636efec4a1dacfe6e70cfd119675270f46f75.tar.bz2
android_packages_apps_Snap-4a7636efec4a1dacfe6e70cfd119675270f46f75.zip
Merge "SnapdragonCamera: Use java reflection to call openLegacy."
-rw-r--r--src/com/android/camera/AndroidCameraManagerImpl.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java
index b2d7c7681..1a9e2a7dc 100644
--- a/src/com/android/camera/AndroidCameraManagerImpl.java
+++ b/src/com/android/camera/AndroidCameraManagerImpl.java
@@ -43,6 +43,7 @@ import android.hardware.Camera.CameraDataCallback;
import android.hardware.Camera.CameraMetaDataCallback;
import com.android.camera.util.ApiHelper;
import android.os.ConditionVariable;
+import java.lang.reflect.Method;
/**
* A class to implement {@link CameraManager} of the Android camera framework.
@@ -96,6 +97,10 @@ class AndroidCameraManagerImpl implements CameraManager {
//LONGSHOT
private static final int SET_LONGSHOT = 701;
private static final int SET_AUTO_HDR_MODE = 801;
+
+ //HAL1 version code
+ private static final int CAMERA_HAL_API_VERSION_1_0 = 0x100;
+
private CameraHandler mCameraHandler;
private android.hardware.Camera mCamera;
@@ -202,13 +207,17 @@ class AndroidCameraManagerImpl implements CameraManager {
switch (msg.what) {
case OPEN_CAMERA:
try {
- mCamera = android.hardware.Camera.openLegacy(msg.arg1,
- android.hardware.Camera.CAMERA_HAL_API_VERSION_1_0);
- } catch (RuntimeException e) {
- /* Retry with open if openLegacy fails */
- Log.v(TAG, "openLegacy failed. Using open instead");
+ Method openMethod = Class.forName("android.hardware.Camera").getMethod(
+ "openLegacy", int.class, int.class);
+ mCamera = (android.hardware.Camera) openMethod.invoke(
+ null, msg.arg1, CAMERA_HAL_API_VERSION_1_0);
+ } catch (Exception e) {
+ /* Retry with open if openLegacy doesn't exist/fails */
+ Log.v(TAG, "openLegacy failed due to " + e.getMessage()
+ + ", using open instead");
mCamera = android.hardware.Camera.open(msg.arg1);
}
+
if (mCamera != null) {
mParametersIsDirty = true;