summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorztenghui <ztenghui@google.com>2013-10-28 15:27:02 -0700
committerztenghui <ztenghui@google.com>2013-10-28 15:47:01 -0700
commitcfc148d8373ab69d352c274374ffb34caf4a8d2c (patch)
tree6c1d1ecabb8300fff1fb9b51a36320814b56b2cd
parente1aa59ba7b3a9fb578995ee8ffcd232c11a97842 (diff)
downloadandroid_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
-rw-r--r--src/com/android/camera/AndroidCameraManagerImpl.java10
-rw-r--r--src/com/android/camera/PhotoModule.java2
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();