summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Newberger <alann@google.com>2015-06-25 13:58:33 -0700
committerAlan Newberger <alann@google.com>2015-06-25 13:58:33 -0700
commitef22af43f7769ce6975f674351d29d5fa0df5e07 (patch)
treec20cb699d7e141bb21e70e1a54bf679ab325c3e1 /src
parent2399038f488c5ae0a4cd6fb45301ff8747a29be1 (diff)
downloadandroid_packages_apps_Camera2-ef22af43f7769ce6975f674351d29d5fa0df5e07.tar.gz
android_packages_apps_Camera2-ef22af43f7769ce6975f674351d29d5fa0df5e07.tar.bz2
android_packages_apps_Camera2-ef22af43f7769ce6975f674351d29d5fa0df5e07.zip
Ensure CaptureModule/API2 works without front camera
Add a check in both first run dialogs, and the generated HardwareSpec, so that front cameras are only used if detected. BUG=21781461 Change-Id: I6844655b2fd3df90b649f5dfd6a006ef68dbf1da
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/CaptureModule.java2
-rw-r--r--src/com/android/camera/app/FirstRunDialog.java13
-rw-r--r--src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java3
3 files changed, 12 insertions, 6 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index a3f728c9d..640da4fd5 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -773,7 +773,7 @@ public class CaptureModule extends CameraModule implements
return new HardwareSpec() {
@Override
public boolean isFrontCameraSupported() {
- return true;
+ return mOneCameraManager.hasCameraFacing(Facing.FRONT);
}
@Override
diff --git a/src/com/android/camera/app/FirstRunDialog.java b/src/com/android/camera/app/FirstRunDialog.java
index c3a3f889b..d810c4b7a 100644
--- a/src/com/android/camera/app/FirstRunDialog.java
+++ b/src/com/android/camera/app/FirstRunDialog.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.view.ViewGroup;
+import com.android.camera.device.CameraId;
import com.android.camera.exif.Rational;
import com.android.camera.one.OneCamera.Facing;
import com.android.camera.one.OneCameraAccessException;
@@ -157,10 +158,14 @@ public class FirstRunDialog {
public void onConfirm(Rational aspectRatio) {
// Change resolution setting based on the chosen aspect ratio.
try {
- mResolutionSetting.setPictureAspectRatio(
- mOneCameraManager.findFirstCameraFacing(Facing.BACK), aspectRatio);
- mResolutionSetting.setPictureAspectRatio(
- mOneCameraManager.findFirstCameraFacing(Facing.FRONT), aspectRatio);
+ CameraId backCameraId = mOneCameraManager.findFirstCameraFacing(Facing.BACK);
+ if (backCameraId != null) {
+ mResolutionSetting.setPictureAspectRatio(backCameraId, aspectRatio);
+ }
+ CameraId frontCameraId = mOneCameraManager.findFirstCameraFacing(Facing.FRONT);
+ if (frontCameraId != null) {
+ mResolutionSetting.setPictureAspectRatio(frontCameraId, aspectRatio);
+ }
} catch (OneCameraAccessException ex) {
mListener.onCameraAccessException();
return;
diff --git a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
index 0b766a5a8..a4b5a9b1d 100644
--- a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
+++ b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
@@ -99,7 +99,8 @@ public class Camera2OneCameraManagerImpl implements OneCameraManager {
@Override
public CameraId findFirstCameraFacing(@Nonnull Facing facing) {
- return CameraId.from(findCameraId(facing));
+ String cameraId = findCameraId(facing);
+ return (cameraId != null) ? CameraId.from(cameraId) : null;
}
@Override