diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt index 74ce546b33..d5cbb32ca1 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt @@ -27,7 +27,7 @@ class MaybeLoadingGatekeeperWorkflow( override fun render( renderProps: Unit, renderState: IsLoading, - context: RenderContext + context: RenderContext ): MayBeLoadingScreen { context.runningWorker(isLoading.asTraceableWorker("GatekeeperLoading")) { action("GatekeeperLoading") { diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt index 4cf26dc7c9..670d60ea5d 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt @@ -96,7 +96,7 @@ class PerformancePoemWorkflow( override fun render( renderProps: Poem, renderState: State, - context: RenderContext + context: RenderContext ): OverviewDetailScreen<*> { if (simulatedPerfConfig.simultaneousActions > 0) { repeat(simulatedPerfConfig.simultaneousActions) { index -> diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt index da2ab87b42..d2923bce78 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt @@ -86,7 +86,7 @@ class PerformancePoemsBrowserWorkflow( override fun render( renderProps: ConfigAndPoems, renderState: State, - context: RenderContext + context: RenderContext ): OverviewDetailScreen<*> { when (renderState) { is Recurse -> { diff --git a/design-docs/compose-based-workflows-design.md b/design-docs/compose-based-workflows-design.md index c5f3e8c3d4..85a21101f0 100644 --- a/design-docs/compose-based-workflows-design.md +++ b/design-docs/compose-based-workflows-design.md @@ -282,7 +282,7 @@ A more interesting, comprehensive example that ties this in with the First Primi ```kotlin class IdentityWorkflow( private val child: Workflow -) : StatelessWorkflow { override fun render(props: Props, context: RenderContext): Rendering { return context.renderComposable { renderWorkflow(child, props, onOutput = { output -> @@ -379,8 +379,7 @@ public abstract class ComposeWorkflow< To implement the `Workflow` interface, we need to have a function that returns a `StatefulWorkflow` with the actual implementation. That's trivial: we just return a really simple workflow that does nothing but call `renderComposable` from above in its render method: ```kotlin - private inner class ComposeWorkflowWrapper : - StatefulWorkflow() { + inner class ComposeWorkflowWrapper : StatefulWorkflow() { override fun initialState( props: PropsT, @@ -392,7 +391,7 @@ To implement the `Workflow` interface, we need to have a function that returns a override fun render( renderProps: PropsT, renderState: Unit, - context: RenderContext + context: StatefulWorkflow.RenderContext ): RenderingT = context.renderComposable { // Explicitly remember the output function since we know that actionSink // is stable even though Compose might not know that. diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeWorkflow.kt index a48773a48c..be2c003e72 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeWorkflow.kt @@ -32,7 +32,7 @@ object HelloComposeWorkflow : StatefulWorkflow ): HelloComposeScreen = HelloComposeScreen( message = renderState.name, onClick = { context.actionSink.send(helloAction) } diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt index b54341da4c..38877504f9 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt @@ -39,7 +39,7 @@ object HelloWorkflow : StatefulWorkflow() { override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): Rendering { return Rendering( message = renderState.name, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt index 54a2a75f48..55825e7cc3 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt @@ -59,7 +59,7 @@ internal class ComposeWorkflowImpl( override fun render( renderProps: PropsT, renderState: State, - context: RenderContext + context: RenderContext, OutputT> ): ComposeScreen { // The first render pass needs to cache the sink. The sink is reusable, so we can just pass the // same one every time. diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt index a73b930a3f..d0f65892af 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt @@ -37,7 +37,7 @@ object HelloWorkflow : StatefulWorkflow() { override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): ComposeScreen = context.renderChild(HelloComposeWorkflow, renderState.name) { helloAction } diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt index 8ce4577dc1..a3dd0d3787 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt @@ -35,7 +35,7 @@ object InlineRenderingWorkflow : StatefulWorkflow() override fun render( renderProps: Unit, renderState: Int, - context: RenderContext + context: RenderContext ): ComposeScreen { val onClick = context.eventHandler("increment") { state += 1 } return ComposeScreen { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt index 8cff8fcb7d..8e5fb1eeec 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt @@ -57,7 +57,7 @@ object RecursiveWorkflow : StatefulWorkflow() { override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): Rendering { return Rendering( children = List(renderState.children) { i -> diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt index d55a13fb65..80c38e4d1a 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt @@ -33,7 +33,7 @@ object TextInputWorkflow : StatefulWorkflow() { override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): Rendering = Rendering( textController = if (renderState.showingTextA) renderState.textA else renderState.textB, onSwapText = { context.actionSink.send(swapText) } diff --git a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt index 685d5feead..98eac1d4e8 100644 --- a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt +++ b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt @@ -30,8 +30,7 @@ import kotlinx.parcelize.Parcelize * Wraps [HelloBackButtonWorkflow] to (sometimes) pop a confirmation alert when the back * button is pressed. */ -object AreYouSureWorkflow : - StatefulWorkflow() { +object AreYouSureWorkflow : StatefulWorkflow() { override fun initialState( props: Unit, snapshot: Snapshot? @@ -64,7 +63,7 @@ object AreYouSureWorkflow : override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): Rendering { val ableBakerCharlie = context.renderChild(HelloBackButtonWorkflow, Unit) { noAction() } diff --git a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonWorkflow.kt b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonWorkflow.kt index 474e0a1888..01c0960f02 100644 --- a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonWorkflow.kt +++ b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonWorkflow.kt @@ -28,7 +28,7 @@ object HelloBackButtonWorkflow : StatefulWorkflow ): HelloBackButtonScreen { return HelloBackButtonScreen( message = "$renderState", diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListWorkflow.kt index c68cd62572..1d394b4fac 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListWorkflow.kt @@ -16,7 +16,7 @@ object PoemListWorkflow : StatelessWorkflow() { override fun render( renderProps: Props, - context: RenderContext + context: RenderContext ): PoemListScreen { return PoemListScreen( poems = renderProps.poems, diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt index 88d29dc097..465249f367 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt @@ -38,7 +38,7 @@ class RealPoemWorkflow : PoemWorkflow, override fun render( renderProps: Poem, renderState: SelectedStanza, - context: RenderContext + context: RenderContext ): OverviewDetailScreen<*> { val previousStanzas: List = if (renderState == NO_SELECTED_STANZA) { diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt index fbed22bf4c..4e991a573f 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt @@ -37,7 +37,7 @@ class RealPoemsBrowserWorkflow( override fun render( renderProps: ConfigAndPoems, renderState: SelectedPoem, - context: RenderContext + context: RenderContext ): OverviewDetailScreen<*> { val poems = context.renderChild(PoemListWorkflow, Props(poems = renderProps.second)) { selected -> diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListWorkflow.kt index cea6f73d6a..0b9a832167 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListWorkflow.kt @@ -22,7 +22,7 @@ object StanzaListWorkflow : StatelessWorkflow ): StanzaListScreen { val poem = renderProps.poem return StanzaListScreen( diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaWorkflow.kt index c0cc446e99..8406d862ef 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaWorkflow.kt @@ -23,7 +23,7 @@ object StanzaWorkflow : StatelessWorkflow() { override fun render( renderProps: Props, - context: RenderContext + context: RenderContext ): StanzaScreen { with(renderProps) { val onGoBack: (() -> Unit)? = when (index) { diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt index 6f09c390f5..c093b655bb 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt @@ -41,7 +41,7 @@ class DungeonAppWorkflow( override fun render( renderProps: Props, renderState: State, - context: RenderContext + context: RenderContext ): BodyAndOverlaysScreen = when (renderState) { LoadingBoardList -> { context.runningWorker(boardLoader.loadAvailableBoards()) { displayBoards(it) } diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt index 9d3a2daea3..45b0ab8bdd 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt @@ -51,7 +51,7 @@ class GameSessionWorkflow( override fun render( renderProps: Props, renderState: State, - context: RenderContext + context: RenderContext ): BodyAndOverlaysScreen = when (renderState) { Loading -> { context.runningWorker(boardLoader.loadBoard(renderProps.boardPath)) { StartRunning(it) } diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt index acbdec950d..339ffdcf5c 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt @@ -30,7 +30,7 @@ class TimeMachineAppWorkflow( override fun render( renderProps: BoardPath, - context: RenderContext + context: RenderContext ): ShakeableTimeMachineScreen { val propsFactory = PropsFactory { recording -> Props(paused = !recording) diff --git a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/AiWorkflow.kt b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/AiWorkflow.kt index 3a6f64126f..af2ed14b5a 100644 --- a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/AiWorkflow.kt +++ b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/AiWorkflow.kt @@ -54,7 +54,7 @@ class AiWorkflow( override fun render( renderProps: ActorProps, renderState: State, - context: RenderContext + context: RenderContext ): ActorRendering { context.runningWorker(renderState.directionTicker) { updateDirection } diff --git a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt index 6e3cd6e941..5655f27be6 100644 --- a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt +++ b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt @@ -93,7 +93,7 @@ class GameWorkflow( override fun render( renderProps: Props, renderState: State, - context: RenderContext + context: RenderContext ): GameRendering { val running = !renderProps.paused && !renderState.game.isPlayerEaten // Stop actors from ticking if the game is paused or finished. diff --git a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/PlayerWorkflow.kt b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/PlayerWorkflow.kt index fa5a5b9481..e9351365f0 100644 --- a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/PlayerWorkflow.kt +++ b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/PlayerWorkflow.kt @@ -47,7 +47,7 @@ class PlayerWorkflow( override fun render( renderProps: ActorProps, renderState: Movement, - context: RenderContext + context: RenderContext ): Rendering = Rendering( actorRendering = ActorRendering(avatar = avatar, movement = renderState), onStartMoving = { context.actionSink.send(StartMoving(it)) }, diff --git a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt index cc002a1f74..e8a8d461fd 100644 --- a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt +++ b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt @@ -54,7 +54,7 @@ class ShakeableTimeMachineWorkflow( override fun render( renderProps: PropsFactory

, renderState: State, - context: RenderContext + context: RenderContext, State, O> ): ShakeableTimeMachineScreen { // Only listen to shakes when recording. if (renderState === Recording) context.runningWorker(shakeWorker) { onShake } diff --git a/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/RecorderWorkflow.kt b/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/RecorderWorkflow.kt index b100b820c1..d8ba83fc25 100644 --- a/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/RecorderWorkflow.kt +++ b/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/RecorderWorkflow.kt @@ -76,7 +76,7 @@ internal class RecorderWorkflow( override fun render( renderProps: RecorderProps, renderState: Recording, - context: RenderContext + context: RenderContext, Recording, Nothing> ): TimeMachineRendering { val value = when (renderProps) { is RecordValue -> renderProps.value diff --git a/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/TimeMachineWorkflow.kt b/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/TimeMachineWorkflow.kt index 05b10483de..1ede19acd4 100644 --- a/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/TimeMachineWorkflow.kt +++ b/samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/TimeMachineWorkflow.kt @@ -68,7 +68,7 @@ class TimeMachineWorkflow( override fun render( renderProps: TimeMachineProps

, - context: RenderContext + context: RenderContext, O> ): TimeMachineRendering { // Always render the delegate, even if in playback mode, to keep it alive. val delegateRendering = diff --git a/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/BlinkingCursorWorkflow.kt b/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/BlinkingCursorWorkflow.kt index f23c462f0a..b850705f24 100644 --- a/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/BlinkingCursorWorkflow.kt +++ b/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/BlinkingCursorWorkflow.kt @@ -35,7 +35,7 @@ class BlinkingCursorWorkflow( override fun render( renderProps: Unit, renderState: Boolean, - context: RenderContext + context: RenderContext ): String { context.runningWorker(intervalWorker) { setCursorShowing(it) } return if (renderState) cursorString else "" diff --git a/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/HelloTerminalWorkflow.kt b/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/HelloTerminalWorkflow.kt index ed55261ebc..fd4626e841 100644 --- a/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/HelloTerminalWorkflow.kt +++ b/samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/HelloTerminalWorkflow.kt @@ -37,7 +37,7 @@ class HelloTerminalWorkflow : TerminalWorkflow, override fun render( renderProps: TerminalProps, renderState: State, - context: RenderContext + context: StatefulWorkflow.RenderContext ): TerminalRendering { val (rows, columns) = renderProps.size val header = """ diff --git a/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/EditTextWorkflow.kt b/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/EditTextWorkflow.kt index e6310a5e6c..3b5a7030b5 100644 --- a/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/EditTextWorkflow.kt +++ b/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/EditTextWorkflow.kt @@ -49,7 +49,7 @@ class EditTextWorkflow : StatefulWorkflow ): String { context.runningWorker( renderProps.terminalProps.keyStrokes diff --git a/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/TodoWorkflow.kt b/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/TodoWorkflow.kt index ddfe59eb11..e5dd7baef3 100644 --- a/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/TodoWorkflow.kt +++ b/samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/TodoWorkflow.kt @@ -63,7 +63,7 @@ class TodoWorkflow : TerminalWorkflow, override fun render( renderProps: TerminalProps, renderState: TodoList, - context: RenderContext + context: StatefulWorkflow.RenderContext ): TerminalRendering { context.runningWorker(renderProps.keyStrokes) { onKeystroke(it) } diff --git a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflow.kt b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflow.kt index b396aa7bed..62d65d3c4a 100644 --- a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflow.kt +++ b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflow.kt @@ -23,7 +23,7 @@ object HelloWorkflow : StatefulWorkflow() override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): HelloRendering { return HelloRendering( message = renderState.name, diff --git a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflow.kt b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflow.kt index 6666667940..812d943b6c 100644 --- a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflow.kt +++ b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflow.kt @@ -23,7 +23,7 @@ object HelloWorkflow : StatefulWorkflow() override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): HelloRendering { return HelloRendering( message = renderState.name, diff --git a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt index f539aec486..f5a277881b 100644 --- a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt +++ b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt @@ -25,7 +25,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow() override fun render( renderProps: Unit, renderState: State, - context: RenderContext + context: RenderContext ): Screen { if (renderState.nuked) { return ButtonBar(Button(R.string.reset, context.eventHandler("reset") { state = State() })) @@ -126,7 +126,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow() override fun snapshotState(state: State) = null - private fun RenderContext.topBottomBar( + private fun RenderContext.topBottomBar( top: Boolean, renderState: State ): ButtonBar { @@ -145,7 +145,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow() ) } - private fun RenderContext.toggleInnerSheetButton( + private fun RenderContext.toggleInnerSheetButton( name: String, renderState: State ) = diff --git a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityWorkflow.kt b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityWorkflow.kt index 0799c5fc92..1c2877cfd0 100644 --- a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityWorkflow.kt +++ b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityWorkflow.kt @@ -25,7 +25,7 @@ object StubVisibilityWorkflow : StatefulWorkflow ): OuterRendering = when (renderState) { HideBottom -> OuterRendering( top = ClickyTextRendering(message = "Click to show footer") { diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt index a2b405988b..9c0c8ddf04 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt @@ -68,7 +68,7 @@ class RealAuthWorkflow(private val authService: AuthService) : AuthWorkflow, override fun render( renderProps: Unit, renderState: AuthState, - context: RenderContext + context: RenderContext ): BackStackScreen<*> = when (renderState) { is LoginPrompt -> { BackStackScreen( diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt index 5dbcca2c92..6040990877 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt @@ -73,7 +73,7 @@ class RealRunGameWorkflow( override fun render( renderProps: Unit, renderState: RunGameState, - context: RenderContext + context: RenderContext ): RunGameRendering = when (renderState) { is NewGame -> { @@ -189,12 +189,14 @@ class RealRunGameWorkflow( } } - private fun RenderContext.playAgain() = safeEventHandler("playAgain") { oldState -> + private fun RenderContext.playAgain() = safeEventHandler( + "playAgain" + ) { oldState -> val (x, o) = oldState.playerInfo state = NewGame(x, o) } - private fun RenderContext.trySaveAgain() = + private fun RenderContext.trySaveAgain() = safeEventHandler("trySaveAgain") { oldState -> check(oldState.syncState == SAVE_FAILED) { "Should only fire trySaveAgain in syncState $SAVE_FAILED, " + diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/TakeTurnsWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/TakeTurnsWorkflow.kt index 10b086a9ba..7ef48eb5d5 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/TakeTurnsWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/TakeTurnsWorkflow.kt @@ -69,7 +69,7 @@ class RealTakeTurnsWorkflow : TakeTurnsWorkflow, override fun render( renderProps: TakeTurnsProps, renderState: Turn, - context: RenderContext + context: RenderContext ): GamePlayScreen = GamePlayScreen( playerInfo = renderProps.playerInfo, gameState = renderState, diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt index 2f41d9ffd3..13a4663475 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt @@ -52,7 +52,7 @@ class TicTacToeWorkflow( override fun render( renderProps: Unit, renderState: MainState, - context: RenderContext + context: RenderContext ): BodyAndOverlaysScreen, *> { val bodyAndOverlays: BodyAndOverlaysScreen<*, *> = when (renderState) { is Authenticating -> { diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt index d5cb84d903..ded5756889 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt @@ -24,8 +24,7 @@ sealed class TodoEditorOutput { * in this sample but would be inadequate in real life. To change that, * add an implementation of [onPropsChanged]. */ -class TodoEditorWorkflow : - StatefulWorkflow() { +class TodoEditorWorkflow : StatefulWorkflow() { override fun initialState( props: TodoList, snapshot: Snapshot? @@ -36,7 +35,7 @@ class TodoEditorWorkflow : override fun render( renderProps: TodoList, renderState: TodoEditingSession, - context: RenderContext + context: StatefulWorkflow.RenderContext ): TodoEditorScreen { // Monitor the title and each row for text changes. context.runningWorker(renderState.title.onTextChanged.asWorker(), "title") { textChanged } diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt index 77c0ec800f..384e195f64 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt @@ -61,7 +61,7 @@ object TodoListsAppWorkflow : override fun render( renderProps: Unit, renderState: TodoListsAppState, - context: RenderContext + context: RenderContext ): OverviewDetailScreen<*> { val listOfLists: TodoListsScreen = context.renderChild( listsWorkflow, diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsWorkflow.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsWorkflow.kt index 369163ab6b..37f5ba63c0 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsWorkflow.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsWorkflow.kt @@ -13,7 +13,7 @@ import com.squareup.workflow1.StatelessWorkflow class TodoListsWorkflow : StatelessWorkflow, Int, TodoListsScreen>() { override fun render( renderProps: List, - context: RenderContext + context: RenderContext, Int> ): TodoListsScreen { return TodoListsScreen( lists = renderProps, diff --git a/workflow-core/api/workflow-core.api b/workflow-core/api/workflow-core.api index d82fd02f93..0cd0067580 100644 --- a/workflow-core/api/workflow-core.api +++ b/workflow-core/api/workflow-core.api @@ -240,9 +240,9 @@ public final class com/squareup/workflow1/Snapshots { } public abstract class com/squareup/workflow1/StatefulWorkflow : com/squareup/workflow1/IdCacheable, com/squareup/workflow1/Workflow { + public static final field Companion Lcom/squareup/workflow1/StatefulWorkflow$Companion; public fun ()V public final fun asStatefulWorkflow ()Lcom/squareup/workflow1/StatefulWorkflow; - public final fun defaultOnFailedCast (Ljava/lang/String;Lkotlin/reflect/KClass;Ljava/lang/Object;)V public fun getCachedIdentifier ()Lcom/squareup/workflow1/WorkflowIdentifier; public abstract fun initialState (Ljava/lang/Object;Lcom/squareup/workflow1/Snapshot;)Ljava/lang/Object; public fun initialState (Ljava/lang/Object;Lcom/squareup/workflow1/Snapshot;Lkotlinx/coroutines/CoroutineScope;)Ljava/lang/Object; @@ -252,6 +252,10 @@ public abstract class com/squareup/workflow1/StatefulWorkflow : com/squareup/wor public abstract fun snapshotState (Ljava/lang/Object;)Lcom/squareup/workflow1/Snapshot; } +public final class com/squareup/workflow1/StatefulWorkflow$Companion { + public final fun defaultOnFailedCast (Ljava/lang/String;Lkotlin/reflect/KClass;Ljava/lang/Object;)V +} + public final class com/squareup/workflow1/StatefulWorkflow$RenderContext : com/squareup/workflow1/BaseRenderContext { public final fun eventHandler (Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function0; public static synthetic fun eventHandler$default (Lcom/squareup/workflow1/StatefulWorkflow$RenderContext;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlin/jvm/functions/Function0; diff --git a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/SessionWorkflow.kt b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/SessionWorkflow.kt index 2462103ad2..4032ef68b4 100644 --- a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/SessionWorkflow.kt +++ b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/SessionWorkflow.kt @@ -19,7 +19,7 @@ import kotlinx.coroutines.CoroutineScope * [CoroutineScope] must be implemented. */ @WorkflowExperimentalApi -public abstract class SessionWorkflow< +abstract class SessionWorkflow< PropsT, StateT, OutputT, @@ -150,7 +150,7 @@ public inline fun Workflow.Companion.sessi override fun render( renderProps: PropsT, renderState: StateT, - context: RenderContext + context: StatefulWorkflow.RenderContext ): RenderingT = render(context, renderProps, renderState) override fun snapshotState(state: StateT) = snapshot(state) diff --git a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatefulWorkflow.kt b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatefulWorkflow.kt index 242be5f99e..8bd4d231e2 100644 --- a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatefulWorkflow.kt +++ b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatefulWorkflow.kt @@ -5,8 +5,6 @@ package com.squareup.workflow1 import com.squareup.workflow1.RuntimeConfigOptions.STABLE_EVENT_HANDLERS -import com.squareup.workflow1.StatefulWorkflow.RenderContext -import com.squareup.workflow1.WorkflowAction.Companion.toString import kotlinx.coroutines.CoroutineScope import kotlin.jvm.JvmMultifileClass import kotlin.jvm.JvmName @@ -75,7 +73,7 @@ public abstract class StatefulWorkflow< out RenderingT > : Workflow, IdCacheable { - public inner class RenderContext internal constructor( + public class RenderContext internal constructor( baseContext: BaseRenderContext ) : BaseRenderContext by baseContext { @PublishedApi @@ -748,15 +746,6 @@ public abstract class StatefulWorkflow< ?: onFailedCast(name, CurrentStateT::class, state) } - @PublishedApi - internal fun defaultOnFailedCast( - name: String, - expectedType: KClass<*>, - state: StateT - ) { - println("$name expected state of type ${expectedType.simpleName}, got $state") - } - /** * Called from [RenderContext.renderChild] when the state machine is first started, to get the * initial state. @@ -829,7 +818,7 @@ public abstract class StatefulWorkflow< public abstract fun render( renderProps: PropsT, renderState: StateT, - context: RenderContext + context: RenderContext ): RenderingT /** @@ -861,6 +850,18 @@ public abstract class StatefulWorkflow< */ final override fun asStatefulWorkflow(): StatefulWorkflow = this + + companion object { + + @PublishedApi + internal fun defaultOnFailedCast( + name: String, + expectedType: KClass<*>, + state: StateT + ) { + println("$name expected state of type ${expectedType.simpleName}, got $state") + } + } } /** @@ -870,21 +871,16 @@ public abstract class StatefulWorkflow< public fun RenderContext( baseContext: BaseRenderContext, workflow: StatefulWorkflow -): StatefulWorkflow.RenderContext = - (baseContext as? StatefulWorkflow.RenderContext) - ?: workflow.RenderContext(baseContext) +): StatefulWorkflow.RenderContext = + (baseContext as? StatefulWorkflow.RenderContext) + ?: StatefulWorkflow.RenderContext(baseContext) /** * Returns a stateful [Workflow] implemented via the given functions. */ public inline fun Workflow.Companion.stateful( crossinline initialState: (PropsT, Snapshot?) -> StateT, - crossinline render: StatefulWorkflow< - PropsT, - StateT, - OutputT, - * - >.RenderContext.( + crossinline render: StatefulWorkflow.RenderContext.( props: PropsT, state: StateT ) -> RenderingT, @@ -910,7 +906,7 @@ public inline fun Workflow.Companion.state override fun render( renderProps: PropsT, renderState: StateT, - context: RenderContext + context: RenderContext ): RenderingT = render(context, renderProps, renderState) override fun snapshotState(state: StateT) = snapshot(state) @@ -921,12 +917,9 @@ public inline fun Workflow.Companion.state */ public inline fun Workflow.Companion.stateful( crossinline initialState: (Snapshot?) -> StateT, - crossinline render: StatefulWorkflow< - Unit, - StateT, - OutputT, - * - >.RenderContext.(state: StateT) -> RenderingT, + crossinline render: StatefulWorkflow.RenderContext.( + state: StateT + ) -> RenderingT, crossinline snapshot: (StateT) -> Snapshot? ): StatefulWorkflow = stateful( { _, initialSnapshot -> initialState(initialSnapshot) }, @@ -941,7 +934,7 @@ public inline fun Workflow.Companion.stateful( */ public inline fun Workflow.Companion.stateful( crossinline initialState: (PropsT) -> StateT, - crossinline render: StatefulWorkflow.RenderContext.( + crossinline render: StatefulWorkflow.RenderContext.( props: PropsT, state: StateT ) -> RenderingT, @@ -964,12 +957,11 @@ public inline fun Workflow.Companion.state */ public inline fun Workflow.Companion.stateful( initialState: StateT, - crossinline render: StatefulWorkflow< + crossinline render: StatefulWorkflow.RenderContext< Unit, StateT, - OutputT, - * - >.RenderContext.(state: StateT) -> RenderingT + OutputT + >.(state: StateT) -> RenderingT ): StatefulWorkflow = stateful( { initialState }, { _, state -> render(state) } diff --git a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatelessWorkflow.kt b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatelessWorkflow.kt index c9945b2af4..d96ab4e284 100644 --- a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatelessWorkflow.kt +++ b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/StatelessWorkflow.kt @@ -29,7 +29,7 @@ public abstract class StatelessWorkflow : Workflow, IdCacheable { @Suppress("UNCHECKED_CAST") - public inner class RenderContext internal constructor( + public class RenderContext internal constructor( baseContext: BaseRenderContext ) : BaseRenderContext by baseContext as BaseRenderContext { @@ -235,14 +235,14 @@ public abstract class StatelessWorkflow : * render() is called. */ private var cachedStatelessRenderContext: - StatelessWorkflow.RenderContext? = null + StatelessWorkflow.RenderContext? = null /** * We must know if the RenderContext we are passed (which is a StatefulWorkflow.RenderContext) * has changed, so keep track of it. */ private var canonicalStatefulRenderContext: - StatefulWorkflow.RenderContext? = null + StatefulWorkflow.RenderContext? = null override fun initialState( props: PropsT, @@ -252,7 +252,7 @@ public abstract class StatelessWorkflow : override fun render( renderProps: PropsT, renderState: Unit, - context: RenderContext + context: RenderContext ): RenderingT { // The `RenderContext` used *might* change - primarily in the case of our tests. E.g., The // `RenderTester` uses a special NoOp context to render twice to test for idempotency. @@ -306,7 +306,7 @@ public abstract class StatelessWorkflow : */ public abstract fun render( renderProps: PropsT, - context: RenderContext + context: RenderContext ): RenderingT /** @@ -332,9 +332,9 @@ public abstract class StatelessWorkflow : public fun RenderContext( baseContext: BaseRenderContext, workflow: StatelessWorkflow -): StatelessWorkflow.RenderContext = - (baseContext as? StatelessWorkflow.RenderContext) - ?: workflow.RenderContext(baseContext) +): StatelessWorkflow.RenderContext = + (baseContext as? StatelessWorkflow.RenderContext) + ?: StatelessWorkflow.RenderContext(baseContext) /** * Returns a stateless [Workflow] via the given [render] function. @@ -344,16 +344,12 @@ public fun RenderContext( * their own internal state. */ public inline fun Workflow.Companion.stateless( - crossinline render: StatelessWorkflow< - PropsT, - OutputT, - RenderingT - >.RenderContext.(props: PropsT) -> RenderingT + crossinline render: StatelessWorkflow.RenderContext.(props: PropsT) -> RenderingT ): Workflow = object : StatelessWorkflow() { override fun render( renderProps: PropsT, - context: RenderContext + context: RenderContext ): RenderingT = render(context, renderProps) } diff --git a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/WorkerWorkflow.kt b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/WorkerWorkflow.kt index 51c06d2c0c..64c2cd0122 100644 --- a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/WorkerWorkflow.kt +++ b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/WorkerWorkflow.kt @@ -57,7 +57,7 @@ internal class WorkerWorkflow( override fun render( renderProps: Worker, renderState: Int, - context: RenderContext + context: RenderContext, Int, OutputT> ) { // Scope the side effect coroutine to the state value, so the worker will be re-started when // it changes (such that doesSameWorkAs returns false above). diff --git a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/Workflow.kt b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/Workflow.kt index cb49a961f7..e5b9a8b48c 100644 --- a/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/Workflow.kt +++ b/workflow-core/src/commonMain/kotlin/com/squareup/workflow1/Workflow.kt @@ -124,7 +124,7 @@ public fun override fun render( renderProps: PropsT, - context: RenderContext + context: RenderContext ): ToRenderingT { val rendering = context.renderChild(this@mapRendering, renderProps) { output -> action({ "mapRendering" }) { setOutput(output) } diff --git a/workflow-runtime/src/commonMain/kotlin/com/squareup/workflow1/WorkflowInterceptor.kt b/workflow-runtime/src/commonMain/kotlin/com/squareup/workflow1/WorkflowInterceptor.kt index 1b27b28071..c1a598328d 100644 --- a/workflow-runtime/src/commonMain/kotlin/com/squareup/workflow1/WorkflowInterceptor.kt +++ b/workflow-runtime/src/commonMain/kotlin/com/squareup/workflow1/WorkflowInterceptor.kt @@ -347,7 +347,7 @@ internal fun WorkflowInterceptor.intercept( /** * Render context that we are passed. */ - private var canonicalRenderContext: StatefulWorkflow.RenderContext? = null + private var canonicalRenderContext: StatefulWorkflow.RenderContext? = null /** * Render context interceptor that we are passed. @@ -357,7 +357,7 @@ internal fun WorkflowInterceptor.intercept( /** * Cache of the intercepted render context. */ - private var cachedInterceptedRenderContext: StatefulWorkflow.RenderContext? = null + private var cachedInterceptedRenderContext: StatefulWorkflow.RenderContext? = null override fun initialState( props: P, @@ -374,7 +374,7 @@ internal fun WorkflowInterceptor.intercept( override fun render( renderProps: P, renderState: S, - context: RenderContext + context: RenderContext ): R = onRender( renderProps, renderState, diff --git a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowInterceptorTest.kt b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowInterceptorTest.kt index 2500b7c260..f25b97636c 100644 --- a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowInterceptorTest.kt +++ b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowInterceptorTest.kt @@ -200,7 +200,7 @@ internal class WorkflowInterceptorTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): String = "$renderProps|$renderState" override fun snapshotState(state: String): Snapshot = Snapshot.of(state) @@ -216,7 +216,7 @@ internal class WorkflowInterceptorTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): TestRendering { return TestRendering( onEvent = { @@ -245,7 +245,7 @@ internal class WorkflowInterceptorTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): String { context.runningSideEffect("sideEffectKey") { if (expectContextElementInSideEffect) assertNotNull(coroutineContext[TestElement.key]) diff --git a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowOperatorsTest.kt b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowOperatorsTest.kt index 1bc5bc0c2f..2a003ea9af 100644 --- a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowOperatorsTest.kt +++ b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/WorkflowOperatorsTest.kt @@ -23,7 +23,7 @@ class WorkflowOperatorsTest { override fun toString(): String = "ChildWorkflow" override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Nothing = fail() } val mappedWorkflow = workflow.mapRendering { fail() } @@ -225,7 +225,7 @@ class WorkflowOperatorsTest { override fun render( renderProps: Unit, renderState: T, - context: RenderContext + context: RenderContext ): T { // Listen to the flow to trigger a re-render when it updates. context.runningWorker(rerenderWorker) { output: T -> diff --git a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/RealRenderContextTest.kt b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/RealRenderContextTest.kt index 4350ab9f28..fea8ba5939 100644 --- a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/RealRenderContextTest.kt +++ b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/RealRenderContextTest.kt @@ -83,7 +83,7 @@ internal class RealRenderContextTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: StatefulWorkflow.RenderContext ): Rendering { fail("This shouldn't actually be called.") } diff --git a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/SubtreeManagerTest.kt b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/SubtreeManagerTest.kt index 3a98c77f5e..909bfff5c7 100644 --- a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/SubtreeManagerTest.kt +++ b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/SubtreeManagerTest.kt @@ -52,7 +52,7 @@ internal class SubtreeManagerTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: StatefulWorkflow.RenderContext ): Rendering { return Rendering( renderProps, @@ -82,7 +82,7 @@ internal class SubtreeManagerTest { override fun render( renderProps: Unit, renderState: Unit, - context: RenderContext + context: RenderContext ) { } diff --git a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/WorkflowNodeTest.kt b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/WorkflowNodeTest.kt index 79834616b7..616630284a 100644 --- a/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/WorkflowNodeTest.kt +++ b/workflow-runtime/src/commonTest/kotlin/com/squareup/workflow1/internal/WorkflowNodeTest.kt @@ -57,7 +57,7 @@ import kotlin.test.fail @Suppress("UNCHECKED_CAST") internal class WorkflowNodeTest { - private abstract class StringWorkflow : StatefulWorkflow() { + abstract class StringWorkflow : StatefulWorkflow() { override fun snapshotState(state: String): Snapshot = fail("not expected") } @@ -87,7 +87,7 @@ internal class WorkflowNodeTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: StatefulWorkflow.RenderContext ): String { return """ props:$renderProps @@ -168,7 +168,7 @@ internal class WorkflowNodeTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): (String) -> Unit { return context.eventHandler("") { event -> setOutput(event) } } @@ -210,7 +210,7 @@ internal class WorkflowNodeTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): (String) -> Unit { return context.eventHandler("") { event -> setOutput(event) } } @@ -261,7 +261,7 @@ internal class WorkflowNodeTest { override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): String { sink = context.actionSink return "" diff --git a/workflow-testing/src/test/java/com/squareup/workflow1/TreeWorkflow.kt b/workflow-testing/src/test/java/com/squareup/workflow1/TreeWorkflow.kt index 5632e3fb7a..ca7ddcd09e 100644 --- a/workflow-testing/src/test/java/com/squareup/workflow1/TreeWorkflow.kt +++ b/workflow-testing/src/test/java/com/squareup/workflow1/TreeWorkflow.kt @@ -38,7 +38,7 @@ internal class TreeWorkflow( override fun render( renderProps: String, renderState: String, - context: RenderContext + context: RenderContext ): Rendering { val childRenderings = children .mapIndexed { index, child -> diff --git a/workflow-testing/src/test/java/com/squareup/workflow1/testing/RealRenderTesterTest.kt b/workflow-testing/src/test/java/com/squareup/workflow1/testing/RealRenderTesterTest.kt index 1dae9c2cd6..c7ccfa5b1a 100644 --- a/workflow-testing/src/test/java/com/squareup/workflow1/testing/RealRenderTesterTest.kt +++ b/workflow-testing/src/test/java/com/squareup/workflow1/testing/RealRenderTesterTest.kt @@ -600,7 +600,7 @@ internal class RealRenderTesterTest { class Child : OutputNothingChild, StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ) { // Nothing to do. } @@ -647,7 +647,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Int = 42 } val workflow = Workflow.stateless { @@ -671,7 +671,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Int = 42 } val workflow = Workflow.stateless { @@ -706,7 +706,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Wrapper = Wrapper(42) } val workflow = Workflow.stateless { @@ -734,7 +734,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Wrapper = Wrapper(42) } val workflow = Workflow.stateless { @@ -769,7 +769,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Wrapper = Wrapper(42) } val workflow = Workflow.stateless { @@ -802,7 +802,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Wrapper = Wrapper(42) } val workflow = Workflow.stateless { @@ -838,7 +838,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow, Int>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext> ): Int = 42 } val workflow = Workflow.stateless { @@ -871,7 +871,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow, Int>() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext> ): Int = 42 } val workflow = Workflow.stateless { @@ -903,7 +903,7 @@ internal class RealRenderTesterTest { val child = object : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Int = 42 } val workflow = Workflow.stateless { @@ -1217,7 +1217,7 @@ internal class RealRenderTesterTest { val child = object : OutputNothingChild, StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ) { // Do nothing. } @@ -1658,7 +1658,7 @@ internal class RealRenderTesterTest { } @Test fun `enforces frozen failures on late renderChild call`() { - lateinit var capturedContext: StatelessWorkflow.RenderContext + lateinit var capturedContext: StatelessWorkflow.RenderContext val workflow = Workflow.stateless { capturedContext = this } workflow.testRender(Unit) @@ -1670,7 +1670,7 @@ internal class RealRenderTesterTest { } @Test fun `enforces frozen failures on late runningSideEffect call`() { - lateinit var capturedContext: StatelessWorkflow.RenderContext + lateinit var capturedContext: StatelessWorkflow.RenderContext val workflow = Workflow.stateless { capturedContext = this } workflow.testRender(Unit) @@ -1682,7 +1682,7 @@ internal class RealRenderTesterTest { } @Test fun `enforces frozen failures on late remember call`() { - lateinit var capturedContext: StatelessWorkflow.RenderContext + lateinit var capturedContext: StatelessWorkflow.RenderContext val workflow = Workflow.stateless { capturedContext = this } workflow.testRender(Unit) @@ -1844,7 +1844,7 @@ internal class RealRenderTesterTest { override fun render( renderProps: String, renderState: Double, - context: RenderContext + context: RenderContext ) = throw NotImplementedError() override fun snapshotState(state: Double): Snapshot = throw NotImplementedError() @@ -1862,7 +1862,7 @@ internal class RealRenderTesterTest { val workflow = object : StatelessWorkflow() { override fun render( renderProps: String, - context: RenderContext + context: RenderContext ) = throw NotImplementedError() } val invocation = createRenderChildInvocation(workflow, "props", "key") @@ -1884,7 +1884,7 @@ internal class RealRenderTesterTest { override fun render( renderProps: String, renderState: Double, - context: RenderContext + context: RenderContext ) = throw NotImplementedError() override fun snapshotState(state: Double): Snapshot = throw NotImplementedError() @@ -1904,7 +1904,7 @@ internal class RealRenderTesterTest { class TestWorkflow : StatelessWorkflow() { override fun render( renderProps: String, - context: RenderContext + context: RenderContext ) = throw NotImplementedError() } @@ -1922,7 +1922,7 @@ internal class RealRenderTesterTest { class ChildWorkflow : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Int = fail() } @@ -1942,7 +1942,7 @@ internal class RealRenderTesterTest { class ChildWorkflow : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Int = fail() } diff --git a/workflow-tracing/src/test/java/com/squareup/workflow1/diagnostic/tracing/TracingWorkflowInterceptorTest.kt b/workflow-tracing/src/test/java/com/squareup/workflow1/diagnostic/tracing/TracingWorkflowInterceptorTest.kt index ecac0fc2a7..0ba23d2c40 100644 --- a/workflow-tracing/src/test/java/com/squareup/workflow1/diagnostic/tracing/TracingWorkflowInterceptorTest.kt +++ b/workflow-tracing/src/test/java/com/squareup/workflow1/diagnostic/tracing/TracingWorkflowInterceptorTest.kt @@ -87,7 +87,7 @@ internal class TracingWorkflowInterceptorTest { assertEquals(expected, buffer.readUtf8().removeActionHashCodes()) } - private inner class TestWorkflow : StatefulWorkflow() { + inner class TestWorkflow : StatefulWorkflow() { private val channel = Channel(UNLIMITED) @@ -119,7 +119,7 @@ internal class TracingWorkflowInterceptorTest { override fun render( renderProps: Int, renderState: String, - context: RenderContext + context: StatefulWorkflow.RenderContext ): String { if (renderProps == 0) return "initial" if (renderProps in 1..6) context.renderChild(this, 0) { bubbleUp(it) } diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt index f10a54dd61..9887231217 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt @@ -359,8 +359,7 @@ internal class RenderAsStateTest { } // Seems to be a problem accessing Workflow.stateful. - private class SnapshottingWorkflow : - StatefulWorkflow() { + private class SnapshottingWorkflow : StatefulWorkflow() { data class SnapshottedRendering( val string: String, @@ -375,7 +374,7 @@ internal class RenderAsStateTest { override fun render( renderProps: Unit, renderState: String, - context: RenderContext + context: RenderContext ) = SnapshottedRendering( string = renderState, updateString = { newString -> context.actionSink.send(updateString(newString)) } diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt index 1f4753cda1..9f93db7471 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt @@ -77,7 +77,7 @@ internal class AndroidRenderWorkflowInTest { object SomeWorkflow : StatelessWorkflow() { override fun render( renderProps: Unit, - context: RenderContext + context: RenderContext ): Screen { return SomeScreen }