Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class FakeAutoDataCaptureBehavior(
private val endStartupWithAppReady: Boolean = false,
private val enableStateCapture: Boolean = false,
private val networkCallbackConnectivityServiceEnabled: Boolean = false,
private val navigationStateCaptureEnabled: Boolean = true,
) : AutoDataCaptureBehavior {

override fun isThermalStatusCaptureEnabled(): Boolean = thermalStatusCaptureEnabled
Expand All @@ -33,4 +34,5 @@ class FakeAutoDataCaptureBehavior(
override fun isEndStartupWithAppReadyEnabled(): Boolean = endStartupWithAppReady
override fun isStateCaptureEnabled(): Boolean = enableStateCapture
override fun isNetworkCallbackConnectivityServiceEnabled(): Boolean = networkCallbackConnectivityServiceEnabled
override fun isNavigationStateCaptureEnabled(): Boolean = navigationStateCaptureEnabled
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,9 @@ interface AutoDataCaptureBehavior {
* Whether the NetworkCallback-based connectivity service implementation is enabled
*/
fun isNetworkCallbackConnectivityServiceEnabled(): Boolean

/**
* Whether navigation state capture is enabled
*/
fun isNavigationStateCaptureEnabled(): Boolean
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,7 @@ class AutoDataCaptureBehaviorImpl(

override fun isNetworkCallbackConnectivityServiceEnabled(): Boolean =
thresholdCheck.isBehaviorEnabled(remote?.pctNetworkCallbackConnectivityServiceEnabled) ?: false

override fun isNavigationStateCaptureEnabled(): Boolean =
thresholdCheck.isBehaviorEnabled(remote?.pctNavigationStateCaptureEnabled) ?: true
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ internal class AutoDataCaptureBehaviorImplTest {
assertFalse(isEndStartupWithAppReadyEnabled())
assertFalse(isStateCaptureEnabled())
assertFalse(isNetworkCallbackConnectivityServiceEnabled())
assertTrue(isNavigationStateCaptureEnabled())
}
}

Expand Down Expand Up @@ -187,9 +188,34 @@ internal class AutoDataCaptureBehaviorImplTest {
)
}

@Test
fun `navigation state capture enabled by default when remote pct is null`() {
assertTrue(
createBehavior(remote = RemoteConfig()).isNavigationStateCaptureEnabled()
)
}

@Test
fun `navigation state capture enabled when pct is 100`() {
assertTrue(
createBehavior(
remote = RemoteConfig(pctNavigationStateCaptureEnabled = 100.0f)
).isNavigationStateCaptureEnabled()
)
}

@Test
fun `navigation state capture disabled when pct is 0`() {
assertFalse(
createBehavior(
remote = RemoteConfig(pctNavigationStateCaptureEnabled = 0.0f)
).isNavigationStateCaptureEnabled()
)
}

private fun createBehavior(
localUiLoadTracingEnabled: Boolean,
localUiLoadTracingTraceAllEnabled: Boolean,
localUiLoadTracingEnabled: Boolean = true,
localUiLoadTracingTraceAllEnabled: Boolean = true,
stateCaptureEnabled: Boolean = false,
remote: RemoteConfig,
) = AutoDataCaptureBehaviorImpl(
Expand All @@ -198,7 +224,7 @@ internal class AutoDataCaptureBehaviorImplTest {
enabledFeatures = FakeEnabledFeatureConfig(
uiLoadTracingTraceAll = localUiLoadTracingTraceAllEnabled,
uiLoadTracingEnabled = localUiLoadTracingEnabled,
stateCaptureEnabled = stateCaptureEnabled
stateCaptureEnabled = stateCaptureEnabled,
)
),
remote = remote
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,7 @@ data class RemoteConfig(
*/
@Json(name = "pct_network_callback_connectivity_service_enabled")
val pctNetworkCallbackConnectivityServiceEnabled: Float? = null,

@Json(name = "pct_navigation_state_capture_enabled")
val pctNavigationStateCaptureEnabled: Float? = null,
)