diff options
author | codeworkx <codeworkx@cyanogenmod.org> | 2016-01-05 23:02:12 +0100 |
---|---|---|
committer | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2016-01-05 14:43:27 -0800 |
commit | 42b5564ae11cd2c068d57802ed3735def1342c0f (patch) | |
tree | 2821782c2603c5e58912c485e22cf10cfc14a521 | |
parent | c544747c2892b3984357a86b4116e1faa2be2210 (diff) | |
download | android_packages_apps_Snap-42b5564ae11cd2c068d57802ed3735def1342c0f.tar.gz android_packages_apps_Snap-42b5564ae11cd2c068d57802ed3735def1342c0f.tar.bz2 android_packages_apps_Snap-42b5564ae11cd2c068d57802ed3735def1342c0f.zip |
make openLegacy an option
Change-Id: Ia4142288ef0fafa62fa0ab855dc342b363b640cd
-rw-r--r-- | res/values/config.xml | 6 | ||||
-rw-r--r-- | src/com/android/camera/AndroidCameraManagerImpl.java | 26 |
2 files changed, 28 insertions, 4 deletions
diff --git a/res/values/config.xml b/res/values/config.xml index f137782fe..c1d4df2bb 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -29,6 +29,12 @@ of the fullscreen pano preview. --> <bool name="enable_warped_pano_preview">true</bool> + <!-- Opens back camera using openLegacy() --> + <bool name="back_camera_open_legacy">true</bool> + + <!-- Opens front camera using openLegacy() --> + <bool name="front_camera_open_legacy">true</bool> + <!-- Set's parameter "lge-camera" for LGE devices. --> <bool name="lge_camera">false</bool> diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index a03631a89..abde14681 100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -17,14 +17,17 @@ package com.android.camera; import static com.android.camera.util.CameraUtil.Assert; +import com.android.camera.app.CameraApp; import java.io.IOException; import android.annotation.TargetApi; +import android.content.Context; import android.graphics.SurfaceTexture; import android.hardware.Camera; import android.hardware.Camera.AutoFocusCallback; import android.hardware.Camera.AutoFocusMoveCallback; +import android.hardware.Camera.CameraInfo; import android.hardware.Camera.ErrorCallback; import android.hardware.Camera.FaceDetectionListener; import android.hardware.Camera.OnZoomChangeListener; @@ -44,6 +47,8 @@ import android.hardware.Camera.CameraMetaDataCallback; import com.android.camera.util.ApiHelper; import android.os.ConditionVariable; +import org.codeaurora.snapcam.R; + /** * A class to implement {@link CameraManager} of the Android camera framework. */ @@ -202,13 +207,26 @@ class AndroidCameraManagerImpl implements CameraManager { try { switch (msg.what) { case OPEN_CAMERA: + int cameraId = msg.arg1; try { - mCamera = android.hardware.Camera.openLegacy(msg.arg1, - android.hardware.Camera.CAMERA_HAL_API_VERSION_1_0); + Context context = CameraApp.getContext(); + + boolean backCameraOpenLegacy = context.getResources().getBoolean(R.bool.back_camera_open_legacy); + boolean frontCameraOpenLegacy = context.getResources().getBoolean(R.bool.front_camera_open_legacy); + + CameraInfo info = CameraHolder.instance().getCameraInfo()[cameraId]; + + if ((info.facing == CameraInfo.CAMERA_FACING_BACK && backCameraOpenLegacy) || + (info.facing == CameraInfo.CAMERA_FACING_FRONT && frontCameraOpenLegacy)) { + mCamera = android.hardware.Camera.openLegacy(cameraId, + android.hardware.Camera.CAMERA_HAL_API_VERSION_1_0); + } else { + mCamera = android.hardware.Camera.open(cameraId); + } } catch (RuntimeException e) { /* Retry with open if openLegacy fails */ Log.v(TAG, "openLegacy failed. Using open instead"); - mCamera = android.hardware.Camera.open(msg.arg1); + mCamera = android.hardware.Camera.open(cameraId); } if (mCamera != null) { mParametersIsDirty = true; @@ -219,7 +237,7 @@ class AndroidCameraManagerImpl implements CameraManager { } } else { if (msg.obj != null) { - ((CameraOpenErrorCallback) msg.obj).onDeviceOpenFailure(msg.arg1); + ((CameraOpenErrorCallback) msg.obj).onDeviceOpenFailure(cameraId); } } return; |