summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--res/values/config.xml6
-rw-r--r--src/com/android/camera/AndroidCameraManagerImpl.java26
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;