summaryrefslogtreecommitdiffstats
path: root/src/com
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 /src/com
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
Diffstat (limited to 'src/com')
-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();