camera2: Add more camera device states, make #openCamera async.
* Move CAMERA_IN_USE, MAX_CAMERAS_IN_USE to StateListener#onError
* Copy CAMERA_DISABLED to StateListener#onError
Bug: 10360518
Change-Id: Idd8cf42e1511d12682018588b2b413116cf65116
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java
index 995555a..efbd769 100644
--- a/core/java/android/hardware/camera2/impl/CameraDevice.java
+++ b/core/java/android/hardware/camera2/impl/CameraDevice.java
@@ -55,7 +55,7 @@
private final Object mLock = new Object();
private final CameraDeviceCallbacks mCallbacks = new CameraDeviceCallbacks();
- private CameraDeviceListener mDeviceListener;
+ private StateListener mDeviceListener;
private Handler mDeviceHandler;
private final SparseArray<CaptureListenerHolder> mCaptureListenerMap =
@@ -292,7 +292,7 @@
}
@Override
- public void setDeviceListener(CameraDeviceListener listener, Handler handler) {
+ public void setDeviceListener(StateListener listener, Handler handler) {
synchronized (mLock) {
mDeviceListener = listener;
mDeviceHandler = handler;
@@ -314,7 +314,7 @@
}
@Override
- public void close() throws Exception {
+ public void close() {
// TODO: every method should throw IllegalStateException after close has been called
@@ -325,7 +325,7 @@
mRemoteDevice.disconnect();
}
} catch (CameraRuntimeException e) {
- throw e.asChecked();
+ Log.e(TAG, "Exception while closing: ", e.asChecked());
} catch (RemoteException e) {
// impossible
}
@@ -339,8 +339,6 @@
protected void finalize() throws Throwable {
try {
close();
- } catch (CameraRuntimeException e) {
- Log.e(TAG, "Got error while trying to finalize, ignoring: " + e.getMessage());
}
finally {
super.finalize();