Skip to content

Commit 82ca010

Browse files
authored
Merge pull request #1336 from square/ray/activity-workflowContentView
Introduces Activity.workflowContentView, workflowContentViewOrNull
2 parents 9c01f44 + de3966d commit 82ca010

File tree

19 files changed

+82
-114
lines changed

19 files changed

+82
-114
lines changed

benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoetryActivity.kt

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.squareup.benchmarks.performance.complex.poetry
22

33
import android.content.pm.ApplicationInfo
4-
import android.os.Build
54
import android.os.Bundle
65
import android.os.Handler
76
import android.os.Looper
@@ -26,9 +25,9 @@ import com.squareup.workflow1.WorkflowInterceptor
2625
import com.squareup.workflow1.ui.Screen
2726
import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY
2827
import com.squareup.workflow1.ui.ViewRegistry
29-
import com.squareup.workflow1.ui.WorkflowLayout
3028
import com.squareup.workflow1.ui.renderWorkflowIn
3129
import com.squareup.workflow1.ui.withEnvironment
30+
import com.squareup.workflow1.ui.workflowContentView
3231
import kotlinx.coroutines.flow.StateFlow
3332
import kotlinx.coroutines.flow.map
3433
import kotlinx.coroutines.flow.onEach
@@ -97,13 +96,9 @@ class PerformancePoetryActivity : AppCompatActivity() {
9796
model.renderings
9897
}
9998

100-
setContentView(
101-
WorkflowLayout(this).apply {
102-
take(
103-
lifecycle,
104-
instrumentedRenderings.map { it.withEnvironment(viewEnvironment) }
105-
)
106-
}
99+
workflowContentView.take(
100+
lifecycle,
101+
instrumentedRenderings.map { it.withEnvironment(viewEnvironment) }
107102
)
108103

109104
// We can report this here as the first rendering from the Workflow is rendered synchronously.
@@ -125,7 +120,7 @@ class PerformancePoetryActivity : AppCompatActivity() {
125120
val traceMain = intent.getBooleanExtra(EXTRA_TRACE_ALL_MAIN_THREAD_MESSAGES, false)
126121
val traceSelectOnTimeout = intent.getBooleanExtra(EXTRA_TRACE_SELECT_TIMEOUTS, false)
127122
val areTracingViaMainLooperCurrently = traceMain || traceSelectOnTimeout
128-
val ableToTrace = Build.VERSION.SDK_INT != 28 && (debuggable || profileable)
123+
val ableToTrace = debuggable || profileable
129124

130125
if (areTracingViaMainLooperCurrently && ableToTrace) {
131126
// Add main message tracing to see everything happening in Perfetto.

samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingActivity.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import com.squareup.workflow1.mapRendering
1515
import com.squareup.workflow1.ui.Screen
1616
import com.squareup.workflow1.ui.ViewEnvironment
1717
import com.squareup.workflow1.ui.ViewRegistry
18-
import com.squareup.workflow1.ui.WorkflowLayout
1918
import com.squareup.workflow1.ui.compose.withComposeInteropSupport
2019
import com.squareup.workflow1.ui.plus
2120
import com.squareup.workflow1.ui.renderWorkflowIn
2221
import com.squareup.workflow1.ui.withEnvironment
22+
import com.squareup.workflow1.ui.workflowContentView
2323
import kotlinx.coroutines.flow.StateFlow
2424

2525
private val viewEnvironment =
@@ -37,13 +37,9 @@ class HelloBindingActivity : AppCompatActivity() {
3737
super.onCreate(savedInstanceState)
3838

3939
val model: HelloBindingModel by viewModels()
40-
setContentView(
41-
WorkflowLayout(this).apply {
42-
take(
43-
lifecycle = lifecycle,
44-
renderings = model.renderings,
45-
)
46-
}
40+
workflowContentView.take(
41+
lifecycle = lifecycle,
42+
renderings = model.renderings,
4743
)
4844
}
4945

samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowActivity.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@ import com.squareup.workflow1.config.AndroidRuntimeConfigTools
1313
import com.squareup.workflow1.mapRendering
1414
import com.squareup.workflow1.ui.Screen
1515
import com.squareup.workflow1.ui.ViewEnvironment
16-
import com.squareup.workflow1.ui.WorkflowLayout
1716
import com.squareup.workflow1.ui.compose.withComposeInteropSupport
1817
import com.squareup.workflow1.ui.renderWorkflowIn
1918
import com.squareup.workflow1.ui.withEnvironment
19+
import com.squareup.workflow1.ui.workflowContentView
2020
import kotlinx.coroutines.flow.StateFlow
2121

2222
class HelloComposeWorkflowActivity : AppCompatActivity() {
2323
override fun onCreate(savedInstanceState: Bundle?) {
2424
super.onCreate(savedInstanceState)
2525
val model: HelloComposeModel by viewModels()
26-
setContentView(
27-
WorkflowLayout(this).apply { take(lifecycle, model.renderings) }
28-
)
26+
workflowContentView.take(lifecycle, model.renderings)
2927
}
3028

3129
class HelloComposeModel(savedState: SavedStateHandle) : ViewModel() {

samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingActivity.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import com.squareup.workflow1.config.AndroidRuntimeConfigTools
1313
import com.squareup.workflow1.mapRendering
1414
import com.squareup.workflow1.ui.Screen
1515
import com.squareup.workflow1.ui.ViewEnvironment
16-
import com.squareup.workflow1.ui.WorkflowLayout
1716
import com.squareup.workflow1.ui.compose.withComposeInteropSupport
1817
import com.squareup.workflow1.ui.renderWorkflowIn
1918
import com.squareup.workflow1.ui.withEnvironment
19+
import com.squareup.workflow1.ui.workflowContentView
2020
import kotlinx.coroutines.flow.StateFlow
2121

2222
/**
@@ -27,9 +27,7 @@ class InlineRenderingActivity : AppCompatActivity() {
2727
super.onCreate(savedInstanceState)
2828

2929
val model: HelloBindingModel by viewModels()
30-
setContentView(
31-
WorkflowLayout(this).apply { take(lifecycle, model.renderings) }
32-
)
30+
workflowContentView.take(lifecycle, model.renderings)
3331
}
3432

3533
class HelloBindingModel(savedState: SavedStateHandle) : ViewModel() {

samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/NestedRenderingsActivity.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import com.squareup.workflow1.mapRendering
1616
import com.squareup.workflow1.ui.Screen
1717
import com.squareup.workflow1.ui.ViewEnvironment
1818
import com.squareup.workflow1.ui.ViewRegistry
19-
import com.squareup.workflow1.ui.WorkflowLayout
2019
import com.squareup.workflow1.ui.compose.withComposeInteropSupport
2120
import com.squareup.workflow1.ui.plus
2221
import com.squareup.workflow1.ui.renderWorkflowIn
2322
import com.squareup.workflow1.ui.withEnvironment
23+
import com.squareup.workflow1.ui.workflowContentView
2424
import kotlinx.coroutines.flow.StateFlow
2525

2626
private val viewRegistry = ViewRegistry(RecursiveComposableFactory)
@@ -38,14 +38,7 @@ class NestedRenderingsActivity : AppCompatActivity() {
3838
super.onCreate(savedInstanceState)
3939

4040
val model: NestedRenderingsModel by viewModels()
41-
setContentView(
42-
WorkflowLayout(this).apply {
43-
take(
44-
lifecycle = lifecycle,
45-
renderings = model.renderings,
46-
)
47-
}
48-
)
41+
workflowContentView.take(lifecycle = lifecycle, renderings = model.renderings)
4942
}
5043

5144
class NestedRenderingsModel(savedState: SavedStateHandle) : ViewModel() {

samples/containers/app-poetry/src/main/java/com/squareup/sample/poetryapp/PoetryActivity.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ import com.squareup.sample.poetry.model.Poem
1515
import com.squareup.workflow1.WorkflowExperimentalRuntime
1616
import com.squareup.workflow1.config.AndroidRuntimeConfigTools
1717
import com.squareup.workflow1.ui.Screen
18-
import com.squareup.workflow1.ui.WorkflowLayout
1918
import com.squareup.workflow1.ui.navigation.reportNavigation
2019
import com.squareup.workflow1.ui.renderWorkflowIn
2120
import com.squareup.workflow1.ui.withRegistry
21+
import com.squareup.workflow1.ui.workflowContentView
2222
import kotlinx.coroutines.flow.Flow
2323
import kotlinx.coroutines.flow.map
2424
import timber.log.Timber
@@ -30,11 +30,7 @@ class PoetryActivity : AppCompatActivity() {
3030
super.onCreate(savedInstanceState)
3131

3232
val model: PoetryModel by viewModels()
33-
setContentView(
34-
WorkflowLayout(this).apply {
35-
take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
36-
}
37-
)
33+
workflowContentView.take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
3834
}
3935

4036
companion object {

samples/containers/app-raven/src/main/java/com/squareup/sample/ravenapp/RavenActivity.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ import com.squareup.sample.poetry.model.Raven
1515
import com.squareup.workflow1.WorkflowExperimentalRuntime
1616
import com.squareup.workflow1.config.AndroidRuntimeConfigTools
1717
import com.squareup.workflow1.ui.Screen
18-
import com.squareup.workflow1.ui.WorkflowLayout
1918
import com.squareup.workflow1.ui.navigation.reportNavigation
2019
import com.squareup.workflow1.ui.renderWorkflowIn
2120
import com.squareup.workflow1.ui.withRegistry
21+
import com.squareup.workflow1.ui.workflowContentView
2222
import kotlinx.coroutines.Job
2323
import kotlinx.coroutines.flow.Flow
2424
import kotlinx.coroutines.flow.map
@@ -32,11 +32,7 @@ class RavenActivity : AppCompatActivity() {
3232
super.onCreate(savedInstanceState)
3333

3434
val model: RavenModel by viewModels()
35-
setContentView(
36-
WorkflowLayout(this).apply {
37-
take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
38-
}
39-
)
35+
workflowContentView.take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
4036

4137
lifecycleScope.launch {
4238
model.waitForExit()

samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonActivity.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import com.squareup.sample.container.SampleContainers
1313
import com.squareup.workflow1.WorkflowExperimentalRuntime
1414
import com.squareup.workflow1.config.AndroidRuntimeConfigTools
1515
import com.squareup.workflow1.ui.Screen
16-
import com.squareup.workflow1.ui.WorkflowLayout
1716
import com.squareup.workflow1.ui.navigation.reportNavigation
1817
import com.squareup.workflow1.ui.renderWorkflowIn
1918
import com.squareup.workflow1.ui.withRegistry
19+
import com.squareup.workflow1.ui.workflowContentView
2020
import kotlinx.coroutines.Job
2121
import kotlinx.coroutines.flow.Flow
2222
import kotlinx.coroutines.flow.map
@@ -30,11 +30,7 @@ class HelloBackButtonActivity : AppCompatActivity() {
3030
super.onCreate(savedInstanceState)
3131

3232
val model: HelloBackButtonModel by viewModels()
33-
setContentView(
34-
WorkflowLayout(this).apply {
35-
take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
36-
}
37-
)
33+
workflowContentView.take(lifecycle, model.renderings.map { it.withRegistry(viewRegistry) })
3834

3935
lifecycleScope.launch {
4036
model.waitForExit()

samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonActivity.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.squareup.sample.dungeon
33
import android.os.Bundle
44
import androidx.activity.viewModels
55
import androidx.appcompat.app.AppCompatActivity
6-
import com.squareup.workflow1.ui.WorkflowLayout
76
import com.squareup.workflow1.ui.withRegistry
7+
import com.squareup.workflow1.ui.workflowContentView
88
import kotlinx.coroutines.flow.map
99

1010
class DungeonActivity : AppCompatActivity() {
@@ -16,9 +16,7 @@ class DungeonActivity : AppCompatActivity() {
1616
val component = Component(this)
1717
val model: TimeMachineModel by viewModels { component.timeMachineModelFactory }
1818

19-
val contentView = WorkflowLayout(this).apply {
20-
take(lifecycle, model.renderings.map { it.withRegistry(component.viewRegistry) })
21-
}
22-
setContentView(contentView)
19+
workflowContentView
20+
.take(lifecycle, model.renderings.map { it.withRegistry(component.viewRegistry) })
2321
}
2422
}

samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflowActivity.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import androidx.lifecycle.ViewModel
1010
import androidx.lifecycle.viewModelScope
1111
import com.squareup.workflow1.WorkflowExperimentalRuntime
1212
import com.squareup.workflow1.config.AndroidRuntimeConfigTools
13-
import com.squareup.workflow1.ui.WorkflowLayout
1413
import com.squareup.workflow1.ui.renderWorkflowIn
14+
import com.squareup.workflow1.ui.workflowContentView
1515
import kotlinx.coroutines.flow.StateFlow
1616

1717
class HelloWorkflowActivity : AppCompatActivity() {
@@ -22,9 +22,7 @@ class HelloWorkflowActivity : AppCompatActivity() {
2222
// by the first call to viewModels(), and that original instance is returned by
2323
// succeeding calls.
2424
val model: HelloViewModel by viewModels()
25-
setContentView(
26-
WorkflowLayout(this).apply { take(lifecycle, model.renderings) }
27-
)
25+
workflowContentView.take(lifecycle, model.renderings)
2826
}
2927
}
3028

0 commit comments

Comments
 (0)