diff options
author | ztenghui <ztenghui@google.com> | 2013-10-28 15:27:02 -0700 |
---|---|---|
committer | ztenghui <ztenghui@google.com> | 2013-10-28 15:47:01 -0700 |
commit | cfc148d8373ab69d352c274374ffb34caf4a8d2c (patch) | |
tree | 6c1d1ecabb8300fff1fb9b51a36320814b56b2cd /src/com | |
parent | e1aa59ba7b3a9fb578995ee8ffcd232c11a97842 (diff) | |
download | android_packages_apps_Snap-cfc148d8373ab69d352c274374ffb34caf4a8d2c.tar.gz android_packages_apps_Snap-cfc148d8373ab69d352c274374ffb34caf4a8d2c.tar.bz2 android_packages_apps_Snap-cfc148d8373ab69d352c274374ffb34caf4a8d2c.zip |
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
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/camera/AndroidCameraManagerImpl.java | 10 | ||||
-rw-r--r-- | 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(); |