Set isForeground to true by default

The fallback for active resume on devices between SDK levels Q and S_V2
is activated when CameraPipe thinks it's in foreground. Currently this
value is only changed in the integration layer, meaning vanilla
CameraPipe apps won't have the active resume fallback activated. Set
isForeground to true by default so that we'll have the fallback on
suitable SDK levels by default.

Bug: 344752133
Test: Unit tests
Change-Id: I33ea6495a62839bc355df30651959988d0b92149
diff --git a/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/testing/FakeCameraGraph.kt b/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/testing/FakeCameraGraph.kt
index 60b565d..b9371a1 100644
--- a/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/testing/FakeCameraGraph.kt
+++ b/camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/testing/FakeCameraGraph.kt
@@ -46,7 +46,7 @@
     override val graphState: StateFlow<GraphState>
         get() = throw NotImplementedError("Not used in testing")
 
-    override var isForeground = false
+    override var isForeground = true
     private var audioRestrictionMode = AUDIO_RESTRICTION_NONE
 
     override suspend fun acquireSession(): CameraGraph.Session {
diff --git a/camera/camera-camera2-pipe-testing/src/main/java/androidx/camera/camera2/pipe/testing/CameraControllerSimulator.kt b/camera/camera-camera2-pipe-testing/src/main/java/androidx/camera/camera2/pipe/testing/CameraControllerSimulator.kt
index f2d268a..95327a1 100644
--- a/camera/camera-camera2-pipe-testing/src/main/java/androidx/camera/camera2/pipe/testing/CameraControllerSimulator.kt
+++ b/camera/camera-camera2-pipe-testing/src/main/java/androidx/camera/camera2/pipe/testing/CameraControllerSimulator.kt
@@ -52,7 +52,7 @@
     override val cameraGraphId: CameraGraphId
         get() = graphId
 
-    override var isForeground: Boolean = false
+    override var isForeground: Boolean = true
 
     private val lock = Any()
     private var currentSurfaceMap: Map<StreamId, Surface> = emptyMap()
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 0c41ed2..25f3c89 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
@@ -74,7 +74,7 @@
         get() = synchronized(lock) { _isForeground }
         set(value) = synchronized(lock) { _isForeground = value }
 
-    @GuardedBy("lock") private var _isForeground: Boolean = false
+    @GuardedBy("lock") private var _isForeground: Boolean = true
 
     @GuardedBy("lock") private var controllerState: ControllerState = ControllerState.STOPPED
 
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/ExternalRequestProcessor.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/ExternalRequestProcessor.kt
index 15425cb..a62030b 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/ExternalRequestProcessor.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/ExternalRequestProcessor.kt
@@ -59,7 +59,7 @@
     override val cameraGraphId: CameraGraphId
         get() = graphId
 
-    override var isForeground: Boolean = false
+    override var isForeground: Boolean = true
 
     override fun start() {
         if (started.compareAndSet(expect = false, update = true)) {
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpener.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpener.kt
index 29dbf0f..b2925ad 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpener.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpener.kt
@@ -314,7 +314,7 @@
             attempts: Int,
             elapsedNs: DurationNs,
             camerasDisabledByDevicePolicy: Boolean,
-            isForeground: Boolean = false,
+            isForeground: Boolean = true,
             cameraOpenRetryMaxTimeoutNs: DurationNs? = null
         ): Boolean {
             val shouldActiveResume = shouldActivateActiveResume(isForeground, errorCode)
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/graph/CameraGraphImpl.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/graph/CameraGraphImpl.kt
index 9a75783..29abff6 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/graph/CameraGraphImpl.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/graph/CameraGraphImpl.kt
@@ -119,11 +119,9 @@
     override val graphState: StateFlow<GraphState>
         get() = graphProcessor.graphState
 
-    private var _isForeground = false
-    override var isForeground: Boolean
-        get() = _isForeground
+    override var isForeground: Boolean = true
         set(value) {
-            _isForeground = value
+            field = value
             cameraController.isForeground = value
         }
 
diff --git a/camera/camera-camera2-pipe/src/test/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpenerTest.kt b/camera/camera-camera2-pipe/src/test/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpenerTest.kt
index dce35b4..152c73a 100644
--- a/camera/camera-camera2-pipe/src/test/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpenerTest.kt
+++ b/camera/camera-camera2-pipe/src/test/java/androidx/camera/camera2/pipe/compat/RetryingCameraStateOpenerTest.kt
@@ -162,7 +162,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -174,9 +174,9 @@
                 RetryingCameraStateOpener.shouldRetry(
                     ERROR_CAMERA_IN_USE,
                     1,
-                    DurationNs(30_000_000_000L), // 30 seconds
+                    DurationNs(3600_000_000_000L), // 3600 seconds (60 minutes)
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isFalse()
@@ -190,7 +190,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -202,7 +202,7 @@
                 2,
                 DurationNs(1_000_000_001L),
                 camerasDisabledByDevicePolicy = false,
-                isForeground = false,
+                isForeground = true,
             )
         assertThat(secondRetry).isFalse()
     }
@@ -215,7 +215,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -227,7 +227,7 @@
                 2,
                 DurationNs(1_000_000_001L),
                 camerasDisabledByDevicePolicy = false,
-                isForeground = false,
+                isForeground = true,
             )
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
             assertThat(secondRetry).isFalse()
@@ -244,7 +244,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -256,7 +256,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -270,7 +270,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = true,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -282,7 +282,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = true,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isFalse()
@@ -296,7 +296,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -308,7 +308,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -322,7 +322,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -334,7 +334,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -348,7 +348,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -360,7 +360,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -374,7 +374,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -386,7 +386,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -400,7 +400,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -412,7 +412,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -426,7 +426,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isTrue()
@@ -438,7 +438,7 @@
                     2,
                     DurationNs(1_000_000_001L),
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isFalse()
@@ -452,7 +452,7 @@
                     1,
                     DurationNs(1_000_000_000L), // 1 second
                     camerasDisabledByDevicePolicy = false,
-                    isForeground = false,
+                    isForeground = true,
                 )
             )
             .isFalse()