File tree Expand file tree Collapse file tree 4 files changed +27
-4
lines changed
main/java/com/squareup/workflow1/tracing/papa
test/java/com/squareup/workflow1/tracing/papa Expand file tree Collapse file tree 4 files changed +27
-4
lines changed Original file line number Diff line number Diff line change 11public final class com/squareup/workflow1/tracing/papa/PapaSafeTrace : com/squareup/workflow1/tracing/SafeTraceInterface {
22 public fun <init> ()V
3+ public fun <init> (Z)V
4+ public synthetic fun <init> (ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
35 public fun beginAsyncSection (Ljava/lang/String;I)V
46 public fun beginSection (Ljava/lang/String;)V
57 public fun endAsyncSection (Ljava/lang/String;I)V
Original file line number Diff line number Diff line change @@ -5,10 +5,13 @@ import papa.SafeTrace
55
66/* *
77 * Production implementation of [SafeTraceInterface] that delegates to the actual [SafeTrace].
8+ *
9+ * @param isTraceable Whether tracing is enabled. Clients should configure this directly.
10+ * Defaults to false for backwards compatibility.
811 */
9- class PapaSafeTrace : SafeTraceInterface {
10- override val isTraceable: Boolean
11- get() = SafeTrace .isTraceable
12+ class PapaSafeTrace (
13+ override val isTraceable : Boolean = false
14+ ) : SafeTraceInterface {
1215
1316 override val isCurrentlyTracing: Boolean
1417 get() = SafeTrace .isCurrentlyTracing
Original file line number Diff line number Diff line change @@ -30,9 +30,11 @@ import kotlin.reflect.KType
3030 * [WorkflowRuntimeTracer] plugin to add [SafeTraceInterface] traces.
3131 * By default this uses [PapaSafeTrace] which will use [androidx.tracing.Trace] calls that
3232 * will be received by the system and included in Perfetto traces.
33+ *
34+ * @param safeTrace The [SafeTraceInterface] implementation to use for tracing.
3335 */
3436class WorkflowPapaTracer (
35- private val safeTrace : SafeTraceInterface = PapaSafeTrace ()
37+ private val safeTrace : SafeTraceInterface = PapaSafeTrace (isTraceable = false )
3638) : WorkflowRuntimeTracer() {
3739
3840 private data class NameAndCookie (
Original file line number Diff line number Diff line change @@ -102,6 +102,22 @@ internal class WorkflowPapaTracerTest {
102102 assertNotNull(papaTracer)
103103 }
104104
105+ @Test
106+ fun `PapaSafeTrace can be configured with isTraceable` () {
107+ val traceableTrace = PapaSafeTrace (isTraceable = true )
108+ assertEquals(true , traceableTrace.isTraceable)
109+
110+ val nonTraceableTrace = PapaSafeTrace (isTraceable = false )
111+ assertEquals(false , nonTraceableTrace.isTraceable)
112+ }
113+
114+ @Test
115+ fun `WorkflowPapaTracer can be configured with custom SafeTrace` () {
116+ val customTrace = FakeSafeTrace (isTraceable = true )
117+ val tracer = WorkflowPapaTracer (safeTrace = customTrace)
118+ assertNotNull(tracer)
119+ }
120+
105121 @Test
106122 fun `onPropsChanged delegates to proceed function` () {
107123 val testWorkflow = TestWorkflow ()
You can’t perform that action at this time.
0 commit comments