diff options
author | zafir <zafir@google.com> | 2015-03-25 17:57:58 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-03-25 17:57:59 +0000 |
commit | 6d58416b7d82f4755246e671b08d300b5b5496ea (patch) | |
tree | 44b02970413e1237d1a0b3628b21ecd25cb6ef50 /src/com/android/camera/CaptureModule.java | |
parent | d10cbf43dc137eebde6970445dbd8becc1c27959 (diff) | |
parent | 8d84a7c1bb9df49aa21396f98b371875c816ed42 (diff) | |
download | android_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.java | 33 |
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; } |