summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraErrorCallback.java11
-rw-r--r--src/com/android/camera/PhotoModule.java1
-rw-r--r--src/com/android/camera/VideoModule.java2
-rw-r--r--src/com/android/camera/WideAnglePanoramaModule.java2
4 files changed, 13 insertions, 3 deletions
diff --git a/src/com/android/camera/CameraErrorCallback.java b/src/com/android/camera/CameraErrorCallback.java
index 7029ac427..71fa9cefd 100644
--- a/src/com/android/camera/CameraErrorCallback.java
+++ b/src/com/android/camera/CameraErrorCallback.java
@@ -21,6 +21,11 @@ import android.util.Log;
public class CameraErrorCallback
implements android.hardware.Camera.ErrorCallback {
private static final String TAG = "CameraErrorCallback";
+ public CameraActivity mActivity = null;
+
+ public void setActivity(CameraActivity activity) {
+ mActivity = activity;
+ }
@Override
public void onError(int error, android.hardware.Camera camera) {
@@ -30,7 +35,11 @@ public class CameraErrorCallback
// We are not sure about the current state of the app (in preview or
// snapshot or recording). Closing the app is better than creating a
// new Camera object.
- throw new RuntimeException("Media server died.");
+ if (mActivity != null) {
+ mActivity.finish();
+ } else {
+ throw new RuntimeException("Media server died.");
+ }
}
}
}
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 3d6481a29..b23a99783 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2613,6 +2613,7 @@ public class PhotoModule
Log.w(TAG, "startPreview: parameters for preview are not ready.");
return;
}
+ mErrorCallback.setActivity(mActivity);
mCameraDevice.setErrorCallback(mErrorCallback);
// ICS camera frameworks has a bug. Face detection state is not cleared 1589
// after taking a picture. Stop the preview to work around it. The bug
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 51487ca52..ed2fd3aef 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -1073,7 +1073,7 @@ public class VideoModule implements CameraModule,
mStartPrevPending = false;
return;
}
-
+ mErrorCallback.setActivity(mActivity);
mCameraDevice.setErrorCallback(mErrorCallback);
if (mPreviewing == true) {
stopPreview();
diff --git a/src/com/android/camera/WideAnglePanoramaModule.java b/src/com/android/camera/WideAnglePanoramaModule.java
index f7432bfb0..c5adde802 100644
--- a/src/com/android/camera/WideAnglePanoramaModule.java
+++ b/src/com/android/camera/WideAnglePanoramaModule.java
@@ -1033,7 +1033,7 @@ public class WideAnglePanoramaModule
// UI is not ready.
return;
}
-
+ mErrorCallback.setActivity(mActivity);
mCameraDevice.setErrorCallback(mErrorCallback);
// This works around a driver issue. startPreview may fail if