summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CaptureModule.java
diff options
context:
space:
mode:
authorzafir <zafir@google.com>2015-03-25 17:57:58 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-25 17:57:59 +0000
commit6d58416b7d82f4755246e671b08d300b5b5496ea (patch)
tree44b02970413e1237d1a0b3628b21ecd25cb6ef50 /src/com/android/camera/CaptureModule.java
parentd10cbf43dc137eebde6970445dbd8becc1c27959 (diff)
parent8d84a7c1bb9df49aa21396f98b371875c816ed42 (diff)
downloadandroid_packages_apps_Camera2-6d58416b7d82f4755246e671b08d300b5b5496ea.tar.gz
android_packages_apps_Camera2-6d58416b7d82f4755246e671b08d300b5b5496ea.tar.bz2
android_packages_apps_Camera2-6d58416b7d82f4755246e671b08d300b5b5496ea.zip
Merge "Show error dialog when camera is unavailable." into ub-camera-haleakala
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rw-r--r--src/com/android/camera/CaptureModule.java33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 970bd513a..614b06994 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -154,6 +154,11 @@ public class CaptureModule extends CameraModule implements
private boolean mHdrSceneEnabled = false;
private boolean mHdrPlusEnabled = false;
private final Object mSurfaceTextureLock = new Object();
+ /**
+ * Flag that is used when Fatal Error Handler is running and the app should
+ * not continue execution
+ */
+ private boolean mShowErrorAndFinish;
private TouchCoordinate mLastShutterTouchCoordinate = null;
private FocusController mFocusController;
@@ -377,14 +382,16 @@ public class CaptureModule extends CameraModule implements
guard.stop();
}
- private void updateCameraCharacteristics() {
+ private boolean updateCameraCharacteristics() {
try {
CameraId cameraId = mOneCameraManager.findFirstCameraFacing(mCameraFacing);
- mCameraCharacteristics = mOneCameraManager.getOneCameraCharacteristics(cameraId);
- } catch (OneCameraAccessException ocae) {
+ if (cameraId != null && cameraId.getValue() != null) {
+ mCameraCharacteristics = mOneCameraManager.getOneCameraCharacteristics(cameraId);
+ return mCameraCharacteristics != null;
+ }
+ } catch (OneCameraAccessException ignored) { }
mAppController.getFatalErrorHandler().onGenericCameraAccessFailure();
- return;
- }
+ return false;
}
@Override
@@ -404,7 +411,10 @@ public class CaptureModule extends CameraModule implements
mDisplayRotation = CameraUtil.getDisplayRotation();
mCameraFacing = getFacingFromCameraId(
mSettingsManager.getInteger(mAppController.getModuleScope(), Keys.KEY_CAMERA_ID));
- updateCameraCharacteristics();
+ mShowErrorAndFinish = !updateCameraCharacteristics();
+ if (mShowErrorAndFinish) {
+ return;
+ }
mUI = new CaptureModuleUI(activity, mAppController.getModuleLayoutRoot(), mUIListener);
mAppController.setPreviewStatusListener(mPreviewStatusListener);
synchronized (mSurfaceTextureLock) {
@@ -636,6 +646,9 @@ public class CaptureModule extends CameraModule implements
@Override
public void resume() {
+ if (mShowErrorAndFinish) {
+ return;
+ }
Profile guard = mProfiler.create("CaptureModule.resume").start();
// We'll transition into 'ready' once the preview is started.
@@ -690,6 +703,9 @@ public class CaptureModule extends CameraModule implements
@Override
public void pause() {
+ if (mShowErrorAndFinish) {
+ return;
+ }
mPaused = true;
mHeadingSensor.deactivate();
@@ -1103,7 +1119,7 @@ public class CaptureModule extends CameraModule implements
Log.d(TAG, "Start to switch camera. cameraId=" + cameraId);
mCameraFacing = getFacingFromCameraId(cameraId);
- updateCameraCharacteristics();
+ mShowErrorAndFinish = !updateCameraCharacteristics();
switchCamera();
}
};
@@ -1453,6 +1469,9 @@ public class CaptureModule extends CameraModule implements
* Re-initialize the camera if e.g. the HDR mode or facing property changed.
*/
private void switchCamera() {
+ if (mShowErrorAndFinish) {
+ return;
+ }
if (mPaused) {
return;
}