summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/AndroidCameraManagerImpl.java
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2016-01-05 23:02:12 +0100
committerDaniel Hillenbrand <codeworkx@cyanogenmod.org>2016-01-05 14:43:27 -0800
commit42b5564ae11cd2c068d57802ed3735def1342c0f (patch)
tree2821782c2603c5e58912c485e22cf10cfc14a521 /src/com/android/camera/AndroidCameraManagerImpl.java
parentc544747c2892b3984357a86b4116e1faa2be2210 (diff)
downloadandroid_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
Diffstat (limited to 'src/com/android/camera/AndroidCameraManagerImpl.java')
-rw-r--r--src/com/android/camera/AndroidCameraManagerImpl.java26
1 files changed, 22 insertions, 4 deletions
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;