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 -> {