Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb8c78b8

Browse files
committed
Make PapaSafeTrace isTraceable configurable
Change PapaSafeTrace from delegating to SafeTrace.isTraceable toaccepting isTraceable as a constructor parameter. This gives clientsdirect control over whether tracing is enabled, removing the implicitdependency on SafeTrace.isTraceable, which will be removed soon.Update WorkflowPapaTracer's default to explicitly pass isTraceable=false toavoid overhead. Add tests to verify the new configuration capability for bothPapaSafeTrace and WorkflowPapaTracer.
1 parent14d657e commitb8c78b8

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

‎workflow-tracing-papa/api/workflow-tracing-papa.api‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
public 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

‎workflow-tracing-papa/src/main/java/com/squareup/workflow1/tracing/papa/PapaSafeTrace.kt‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff 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-
classPapaSafeTrace :SafeTraceInterface {
10-
overrideval isTraceable:Boolean
11-
get()=SafeTrace.isTraceable
12+
classPapaSafeTrace(
13+
overridevalisTraceable:Boolean =false
14+
) : SafeTraceInterface {
1215

1316
overrideval isCurrentlyTracing:Boolean
1417
get()=SafeTrace.isCurrentlyTracing

‎workflow-tracing-papa/src/main/java/com/squareup/workflow1/tracing/papa/WorkflowPapaTracer.kt‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff 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
*/
3436
classWorkflowPapaTracer(
35-
privatevalsafeTrace:SafeTraceInterface =PapaSafeTrace()
37+
privatevalsafeTrace:SafeTraceInterface =PapaSafeTrace(isTraceable = false)
3638
) : WorkflowRuntimeTracer() {
3739

3840
privatedata classNameAndCookie(

‎workflow-tracing-papa/src/test/java/com/squareup/workflow1/tracing/papa/WorkflowPapaTracerTest.kt‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff 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()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp