Revert "Propagate errors correctly and retry on camera-specific errors"
This reverts commit 62ccfe4630239c38e91fd591cdd9fd253cef48b1.
Reason for revert: Breaks tests on certain platforms
Change-Id: I96ff7df3548eb7660f1bc14e2f3ded4af8ccc01b
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/CameraBackend.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/CameraBackend.kt
index 6b1be6e..df87e19 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/CameraBackend.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/CameraBackend.kt
@@ -40,7 +40,7 @@
}
class CameraAvailable(val cameraId: CameraId) : CameraStatus() {
- override fun toString(): String = "CameraAvailable(camera=$cameraId)"
+ override fun toString(): String = "CameraAvailable(camera=$cameraId"
}
}
}
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Camera2CameraController.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Camera2CameraController.kt
index de4d5aa..a18ec53 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Camera2CameraController.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Camera2CameraController.kt
@@ -94,8 +94,11 @@
}
lastCameraError = null
val camera =
- virtualCameraManager.open(config.camera, config.sharedCameraIds, graphListener) { _
- ->
+ virtualCameraManager.open(
+ config.camera,
+ config.sharedCameraIds,
+ graphListener,
+ ) { _ ->
isForeground
}
if (camera == null) {
@@ -117,7 +120,7 @@
cameraSurfaceManager,
timeSource,
config.flags,
- scope,
+ scope
)
currentSession = session
@@ -170,22 +173,10 @@
ControllerState.ERROR ->
if (
cameraStatus is CameraStatus.CameraAvailable &&
- lastCameraError != CameraError.ERROR_GRAPH_CONFIG
+ lastCameraError == CameraError.ERROR_CAMERA_DEVICE
) {
shouldRestart = true
}
- ControllerState.STARTED ->
- if (cameraStatus is CameraStatus.CameraAvailable) {
- // On certain platforms with non-compliant camera HALs, we don't get
- // onError() or onDisconnected() callbacks. Therefore, we should still retry
- // when we (unexpectedly) get notified that a camera is available.
- //
- // Please see b/340583179 for details.
- Log.warn {
- "Got $cameraStatus when controller is started, attempting restart"
- }
- shouldRestart = true
- }
}
if (!shouldRestart) {
Log.debug {
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Exceptions.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Exceptions.kt
index f7532e5..8039abf 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Exceptions.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/Exceptions.kt
@@ -55,19 +55,9 @@
} catch (e: Exception) {
Log.warn { "Unexpected error: " + e.message }
when (e) {
- is CameraAccessException -> {
- cameraErrorListener.onCameraError(
- cameraId,
- CameraError.from(e),
- // CameraAccessException indicates the task failed because the camera is
- // unavailable, such as when the camera is in use or disconnected. Such errors
- // can be recovered when the camera becomes available.
- willAttemptRetry = true,
- )
- return null
- }
is IllegalArgumentException,
is IllegalStateException,
+ is CameraAccessException,
is SecurityException,
is UnsupportedOperationException,
is NullPointerException -> {