diff options
author | Alan Newberger <alann@google.com> | 2015-06-25 13:58:33 -0700 |
---|---|---|
committer | Alan Newberger <alann@google.com> | 2015-06-25 13:58:33 -0700 |
commit | ef22af43f7769ce6975f674351d29d5fa0df5e07 (patch) | |
tree | c20cb699d7e141bb21e70e1a54bf679ab325c3e1 /src | |
parent | 2399038f488c5ae0a4cd6fb45301ff8747a29be1 (diff) | |
download | android_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.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/app/FirstRunDialog.java | 13 | ||||
-rw-r--r-- | src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java | 3 |
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 |