Issue #489 : allow request of front camera again

This commit is contained in:
Sean Owen 2015-11-02 14:02:21 +00:00
parent a92f9040b3
commit d1615ccb67

View file

@ -33,8 +33,9 @@ public final class OpenCameraInterface {
* Opens the requested camera with {@link Camera#open(int)}, if one exists. * Opens the requested camera with {@link Camera#open(int)}, if one exists.
* *
* @param cameraId camera ID of the camera to use. A negative value * @param cameraId camera ID of the camera to use. A negative value
* or {@link #NO_REQUESTED_CAMERA} means "no preference" * or {@link #NO_REQUESTED_CAMERA} means "no preference", in which case a rear-facing
* @return handle to {@link Camera} that was opened * camera is returned if possible or else any camera
* @return handle to {@link OpenCamera} that was opened
*/ */
public static OpenCamera open(int cameraId) { public static OpenCamera open(int cameraId) {
@ -47,9 +48,14 @@ public final class OpenCameraInterface {
boolean explicitRequest = cameraId >= 0; boolean explicitRequest = cameraId >= 0;
Camera.CameraInfo selectedCameraInfo = null; Camera.CameraInfo selectedCameraInfo = null;
int index = 0; int index;
if (explicitRequest) {
index = cameraId;
selectedCameraInfo = new Camera.CameraInfo();
Camera.getCameraInfo(index, selectedCameraInfo);
} else {
index = 0;
while (index < numCameras) { while (index < numCameras) {
if (cameraId == NO_REQUESTED_CAMERA || index == cameraId) {
Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
Camera.getCameraInfo(index, cameraInfo); Camera.getCameraInfo(index, cameraInfo);
CameraFacing reportedFacing = CameraFacing.values()[cameraInfo.facing]; CameraFacing reportedFacing = CameraFacing.values()[cameraInfo.facing];
@ -57,9 +63,9 @@ public final class OpenCameraInterface {
selectedCameraInfo = cameraInfo; selectedCameraInfo = cameraInfo;
break; break;
} }
}
index++; index++;
} }
}
Camera camera; Camera camera;
if (index < numCameras) { if (index < numCameras) {