summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CameraManager.java
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-09-16 14:25:35 -0700
committerAngus Kong <shkong@google.com>2013-09-17 14:50:53 -0700
commit4f795b878843e59810ec1dca05b7cdb37b5614c5 (patch)
tree24f810cea8691c797a69a1595c931de44cc4c5f0 /src/com/android/camera/CameraManager.java
parent5bee41c6d727c730c7b10fba886862284a489257 (diff)
downloadandroid_packages_apps_Snap-4f795b878843e59810ec1dca05b7cdb37b5614c5.tar.gz
android_packages_apps_Snap-4f795b878843e59810ec1dca05b7cdb37b5614c5.tar.bz2
android_packages_apps_Snap-4f795b878843e59810ec1dca05b7cdb37b5614c5.zip
Show dialog when camera device is not connected.
bug:10726516 Change-Id: I3d3433d0b2eced54027b19910473fd55135d0e1c
Diffstat (limited to 'src/com/android/camera/CameraManager.java')
-rw-r--r--src/com/android/camera/CameraManager.java51
1 files changed, 46 insertions, 5 deletions
diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java
index 4a8057d3f..07b8150ca 100644
--- a/src/com/android/camera/CameraManager.java
+++ b/src/com/android/camera/CameraManager.java
@@ -101,12 +101,49 @@ public interface CameraManager {
}
/**
+ * An interface to be called for any exception caught when opening the
+ * camera device. This error callback is different from the one defined
+ * in the framework, {@link android.hardware.Camera.ErrorCallback}, which
+ * is used after the camera is opened.
+ */
+ public interface CameraOpenErrorCallback {
+ /**
+ * Callback when {@link com.android.camera.CameraDisabledException} is
+ * caught.
+ *
+ * @param cameraId The disabled camera.
+ */
+ public void onCameraDisabled(int cameraId);
+
+ /**
+ * Callback when {@link com.android.camera.CameraHardwareException} is
+ * caught.
+ *
+ * @param cameraId The camera with the hardware failure.
+ */
+ public void onDeviceOpenFailure(int cameraId);
+
+ /**
+ * Callback when {@link java.io.IOException} is caught during
+ * {@link android.hardware.Camera#reconnect()}.
+ *
+ * @param mgr The {@link com.android.camera.CameraManager}
+ * with the reconnect failure.
+ */
+ public void onReconnectionFailure(CameraManager mgr);
+ }
+
+ /**
* Opens the camera of the specified ID synchronously.
*
- * @param cameraId The camera ID to open.
+ * @param handler The {@link android.os.Handler} in which the callback
+ * was handled.
+ * @param callback The callback when any error happens.
+ * @param cameraId The camera ID to open.
* @return An instance of {@link CameraProxy} on success. null on failure.
*/
- public CameraProxy cameraOpen(int cameraId);
+ public CameraProxy cameraOpen(
+ Handler handler, int cameraId, CameraOpenErrorCallback callback);
/**
* An interface that takes camera operation requests and post messages to the
@@ -132,10 +169,14 @@ public interface CameraManager {
/**
* Reconnects to the camera device.
- *
* @see android.hardware.Camera#reconnect()
+ *
+ * @param handler The {@link android.os.Handler} in which the callback
+ * was handled.
+ * @param cb The callback when any error happens.
+ * @return {@code false} on errors.
*/
- public void reconnect() throws IOException;
+ public boolean reconnect(Handler handler, CameraOpenErrorCallback cb);
/**
* Unlocks the camera device.
@@ -180,7 +221,7 @@ public interface CameraManager {
/**
* Sets the callback for preview data.
*
- * @param handler handler in which the callback was handled.
+ * @param handler The {@link android.os.Handler} in which the callback was handled.
* @param cb The callback to be invoked when the preview data is available.
* @see android.hardware.Camera#setPreviewCallback(android.hardware.Camera.PreviewCallback)
*/