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()