From cfc148d8373ab69d352c274374ffb34caf4a8d2c Mon Sep 17 00:00:00 2001 From: ztenghui Date: Mon, 28 Oct 2013 15:27:02 -0700 Subject: Fix crash when trying to reopen the camera. In this case, another app is using the Camera, such that the camera.open will hit an exception. We should show an dialog here. bug:11258139 Change-Id: I0bd2d05fe4d4d9c5e4b87b39f3ef48910cfb7111 --- src/com/android/camera/AndroidCameraManagerImpl.java | 10 ++++++++-- src/com/android/camera/PhotoModule.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index ac9b7eb4e..e26b6a90e 100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -329,8 +329,14 @@ class AndroidCameraManagerImpl implements CameraManager { } mCamera = null; } else if (mCamera == null) { - Log.w(TAG, "Cannot handle message, mCamera is null."); - return; + if (msg.what == OPEN_CAMERA) { + if (msg.obj != null) { + ((CameraOpenErrorCallback) msg.obj).onDeviceOpenFailure(msg.arg1); + } + } else { + Log.w(TAG, "Cannot handle message, mCamera is null."); + } + return; } throw e; } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index aeca3ddef..2d82b57a6 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1466,7 +1466,7 @@ public class PhotoModule // This can only be called by UI Thread. private void startPreview() { - if (mPaused) { + if (mPaused || mCameraDevice == null) { return; } SurfaceTexture st = mUI.getSurfaceTexture(); -- cgit v1.2.3