diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-05-07 04:43:44 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-05-07 04:43:44 -0700 |
commit | 4a7636efec4a1dacfe6e70cfd119675270f46f75 (patch) | |
tree | ba7a694bcbe2d1131cdc2595076f5dcf5ccf44ac | |
parent | 90518958ceb2b1ef18f11aeacd02c7db7557e3b9 (diff) | |
parent | f81e1bc06bdf26b0f89c14753016a02f6998a57a (diff) | |
download | android_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.java | 19 |
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; |