Skip to content

Commit bd4480b

Browse files
Update All RenderContext to include Type Parameters
1 parent 6a2c0e8 commit bd4480b

File tree

58 files changed

+110
-104
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+110
-104
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class MaybeLoadingGatekeeperWorkflow<T : Any>(
2727
override fun render(
2828
renderProps: Unit,
2929
renderState: IsLoading,
30-
context: RenderContext
30+
context: RenderContext<Unit, IsLoading, Unit>
3131
): MayBeLoadingScreen {
3232
context.runningWorker(isLoading.asTraceableWorker("GatekeeperLoading")) {
3333
action("GatekeeperLoading") {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class PerformancePoemWorkflow(
9696
override fun render(
9797
renderProps: Poem,
9898
renderState: State,
99-
context: RenderContext
99+
context: RenderContext<Poem, State, ClosePoem>
100100
): OverviewDetailScreen<*> {
101101
if (simulatedPerfConfig.simultaneousActions > 0) {
102102
repeat(simulatedPerfConfig.simultaneousActions) { index ->

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class PerformancePoemsBrowserWorkflow(
8686
override fun render(
8787
renderProps: ConfigAndPoems,
8888
renderState: State,
89-
context: RenderContext
89+
context: RenderContext<ConfigAndPoems, State, Unit>
9090
): OverviewDetailScreen<*> {
9191
when (renderState) {
9292
is Recurse -> {

design-docs/compose-based-workflows-design.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ A more interesting, comprehensive example that ties this in with the First Primi
282282
```kotlin
283283
class IdentityWorkflow(
284284
private val child: Workflow<Props, Output, Rendering>
285-
) : StatelessWorkflow<Props, Output, Rendering {
285+
) : StatelessWorkflow<Props, Output, Rendering> {
286286
override fun render(props: Props, context: RenderContext): Rendering {
287287
return context.renderComposable {
288288
renderWorkflow(child, props, onOutput = { output ->
@@ -379,8 +379,7 @@ public abstract class ComposeWorkflow<
379379
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:
380380

381381
```kotlin
382-
private inner class ComposeWorkflowWrapper :
383-
StatefulWorkflow<PropsT, Unit, OutputT, RenderingT>() {
382+
inner class ComposeWorkflowWrapper : StatefulWorkflow<PropsT, Unit, OutputT, RenderingT>() {
384383

385384
override fun initialState(
386385
props: PropsT,
@@ -392,7 +391,7 @@ To implement the `Workflow` interface, we need to have a function that returns a
392391
override fun render(
393392
renderProps: PropsT,
394393
renderState: Unit,
395-
context: RenderContext
394+
context: StatefulWorkflow.RenderContext<PropsT,Unit,OutputT>
396395
): RenderingT = context.renderComposable {
397396
// Explicitly remember the output function since we know that actionSink
398397
// is stable even though Compose might not know that.

samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ object HelloComposeWorkflow : StatefulWorkflow<Unit, State, Nothing, HelloCompos
3232
override fun render(
3333
renderProps: Unit,
3434
renderState: State,
35-
context: RenderContext
35+
context: RenderContext<Unit, State, Nothing>
3636
): HelloComposeScreen = HelloComposeScreen(
3737
message = renderState.name,
3838
onClick = { context.actionSink.send(helloAction) }

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ object HelloWorkflow : StatefulWorkflow<Unit, State, Nothing, Rendering>() {
3939
override fun render(
4040
renderProps: Unit,
4141
renderState: State,
42-
context: RenderContext
42+
context: RenderContext<Unit, State, Nothing>
4343
): Rendering {
4444
return Rendering(
4545
message = renderState.name,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ internal class ComposeWorkflowImpl<PropsT, OutputT : Any>(
5959
override fun render(
6060
renderProps: PropsT,
6161
renderState: State<PropsT, OutputT>,
62-
context: RenderContext
62+
context: RenderContext<PropsT, State<PropsT, OutputT>, OutputT>
6363
): ComposeScreen {
6464
// The first render pass needs to cache the sink. The sink is reusable, so we can just pass the
6565
// same one every time.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ object HelloWorkflow : StatefulWorkflow<Unit, State, Nothing, ComposeScreen>() {
3737
override fun render(
3838
renderProps: Unit,
3939
renderState: State,
40-
context: RenderContext
40+
context: RenderContext<Unit, State, Nothing>
4141
): ComposeScreen =
4242
context.renderChild(HelloComposeWorkflow, renderState.name) { helloAction }
4343

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object InlineRenderingWorkflow : StatefulWorkflow<Unit, Int, Nothing, Screen>()
3535
override fun render(
3636
renderProps: Unit,
3737
renderState: Int,
38-
context: RenderContext
38+
context: RenderContext<Unit, Int, Nothing>
3939
): ComposeScreen {
4040
val onClick = context.eventHandler("increment") { state += 1 }
4141
return ComposeScreen {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ object RecursiveWorkflow : StatefulWorkflow<Unit, State, Nothing, Screen>() {
5757
override fun render(
5858
renderProps: Unit,
5959
renderState: State,
60-
context: RenderContext
60+
context: RenderContext<Unit, State, Nothing>
6161
): Rendering {
6262
return Rendering(
6363
children = List(renderState.children) { i ->

samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ object TextInputWorkflow : StatefulWorkflow<Unit, State, Nothing, Rendering>() {
3333
override fun render(
3434
renderProps: Unit,
3535
renderState: State,
36-
context: RenderContext
36+
context: RenderContext<Unit, State, Nothing>
3737
): Rendering = Rendering(
3838
textController = if (renderState.showingTextA) renderState.textA else renderState.textB,
3939
onSwapText = { context.actionSink.send(swapText) }

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ import kotlinx.parcelize.Parcelize
3030
* Wraps [HelloBackButtonWorkflow] to (sometimes) pop a confirmation alert when the back
3131
* button is pressed.
3232
*/
33-
object AreYouSureWorkflow :
34-
StatefulWorkflow<Unit, State, Finished, Rendering>() {
33+
object AreYouSureWorkflow : StatefulWorkflow<Unit, State, Finished, Rendering>() {
3534
override fun initialState(
3635
props: Unit,
3736
snapshot: Snapshot?
@@ -64,7 +63,7 @@ object AreYouSureWorkflow :
6463
override fun render(
6564
renderProps: Unit,
6665
renderState: State,
67-
context: RenderContext
66+
context: RenderContext<Unit, State, Finished>
6867
): Rendering {
6968
val ableBakerCharlie = context.renderChild(HelloBackButtonWorkflow, Unit) { noAction() }
7069

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object HelloBackButtonWorkflow : StatefulWorkflow<Unit, State, Nothing, HelloBac
2828
override fun render(
2929
renderProps: Unit,
3030
renderState: State,
31-
context: RenderContext
31+
context: RenderContext<Unit, State, Nothing>
3232
): HelloBackButtonScreen {
3333
return HelloBackButtonScreen(
3434
message = "$renderState",

samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ object PoemListWorkflow : StatelessWorkflow<Props, Int, PoemListScreen>() {
1616

1717
override fun render(
1818
renderProps: Props,
19-
context: RenderContext
19+
context: RenderContext<Props, Int>
2020
): PoemListScreen {
2121
return PoemListScreen(
2222
poems = renderProps.poems,

samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class RealPoemWorkflow : PoemWorkflow,
3838
override fun render(
3939
renderProps: Poem,
4040
renderState: SelectedStanza,
41-
context: RenderContext
41+
context: RenderContext<Poem, SelectedStanza, ClosePoem>
4242
): OverviewDetailScreen<*> {
4343
val previousStanzas: List<StanzaScreen> =
4444
if (renderState == NO_SELECTED_STANZA) {

samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class RealPoemsBrowserWorkflow(
3737
override fun render(
3838
renderProps: ConfigAndPoems,
3939
renderState: SelectedPoem,
40-
context: RenderContext
40+
context: RenderContext<ConfigAndPoems, SelectedPoem, Unit>
4141
): OverviewDetailScreen<*> {
4242
val poems =
4343
context.renderChild(PoemListWorkflow, Props(poems = renderProps.second)) { selected ->

samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ object StanzaListWorkflow : StatelessWorkflow<Props, SelectedStanza, StanzaListS
2222

2323
override fun render(
2424
renderProps: Props,
25-
context: RenderContext
25+
context: RenderContext<Props, SelectedStanza>
2626
): StanzaListScreen {
2727
val poem = renderProps.poem
2828
return StanzaListScreen(

samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ object StanzaWorkflow : StatelessWorkflow<Props, Output, StanzaScreen>() {
2323

2424
override fun render(
2525
renderProps: Props,
26-
context: RenderContext
26+
context: RenderContext<Props, Output>
2727
): StanzaScreen {
2828
with(renderProps) {
2929
val onGoBack: (() -> Unit)? = when (index) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class DungeonAppWorkflow(
4141
override fun render(
4242
renderProps: Props,
4343
renderState: State,
44-
context: RenderContext
44+
context: RenderContext<Props, State, Nothing>
4545
): BodyAndOverlaysScreen<Screen, Overlay> = when (renderState) {
4646
LoadingBoardList -> {
4747
context.runningWorker(boardLoader.loadAvailableBoards()) { displayBoards(it) }

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class GameSessionWorkflow(
5151
override fun render(
5252
renderProps: Props,
5353
renderState: State,
54-
context: RenderContext
54+
context: RenderContext<Props, State, Nothing>
5555
): BodyAndOverlaysScreen<Screen, Overlay> = when (renderState) {
5656
Loading -> {
5757
context.runningWorker(boardLoader.loadBoard(renderProps.boardPath)) { StartRunning(it) }

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class TimeMachineAppWorkflow(
3030

3131
override fun render(
3232
renderProps: BoardPath,
33-
context: RenderContext
33+
context: RenderContext<BoardPath, Nothing>
3434
): ShakeableTimeMachineScreen {
3535
val propsFactory = PropsFactory { recording ->
3636
Props(paused = !recording)

samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/AiWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class AiWorkflow(
5454
override fun render(
5555
renderProps: ActorProps,
5656
renderState: State,
57-
context: RenderContext
57+
context: RenderContext<ActorProps, State, Nothing>
5858
): ActorRendering {
5959
context.runningWorker(renderState.directionTicker) { updateDirection }
6060

samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class GameWorkflow(
9393
override fun render(
9494
renderProps: Props,
9595
renderState: State,
96-
context: RenderContext
96+
context: RenderContext<Props, State, Output>
9797
): GameRendering {
9898
val running = !renderProps.paused && !renderState.game.isPlayerEaten
9999
// Stop actors from ticking if the game is paused or finished.

samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/PlayerWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class PlayerWorkflow(
4747
override fun render(
4848
renderProps: ActorProps,
4949
renderState: Movement,
50-
context: RenderContext
50+
context: RenderContext<ActorProps, Movement, Nothing>
5151
): Rendering = Rendering(
5252
actorRendering = ActorRendering(avatar = avatar, movement = renderState),
5353
onStartMoving = { context.actionSink.send(StartMoving(it)) },

samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class ShakeableTimeMachineWorkflow<P, O : Any, out R : Screen>(
5454
override fun render(
5555
renderProps: PropsFactory<P>,
5656
renderState: State,
57-
context: RenderContext
57+
context: RenderContext<PropsFactory<P>, State, O>
5858
): ShakeableTimeMachineScreen {
5959
// Only listen to shakes when recording.
6060
if (renderState === Recording) context.runningWorker(shakeWorker) { onShake }

samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/RecorderWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ internal class RecorderWorkflow<T>(
7676
override fun render(
7777
renderProps: RecorderProps<T>,
7878
renderState: Recording<T>,
79-
context: RenderContext
79+
context: RenderContext<RecorderProps<T>, Recording<T>, Nothing>
8080
): TimeMachineRendering<T> {
8181
val value = when (renderProps) {
8282
is RecordValue -> renderProps.value

samples/dungeon/timemachine/src/main/java/com/squareup/sample/timemachine/TimeMachineWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class TimeMachineWorkflow<P, O : Any, out R>(
6868

6969
override fun render(
7070
renderProps: TimeMachineProps<P>,
71-
context: RenderContext
71+
context: RenderContext<TimeMachineProps<P>, O>
7272
): TimeMachineRendering<R> {
7373
// Always render the delegate, even if in playback mode, to keep it alive.
7474
val delegateRendering =

samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/BlinkingCursorWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class BlinkingCursorWorkflow(
3535
override fun render(
3636
renderProps: Unit,
3737
renderState: Boolean,
38-
context: RenderContext
38+
context: RenderContext<Unit, Boolean, Nothing>
3939
): String {
4040
context.runningWorker(intervalWorker) { setCursorShowing(it) }
4141
return if (renderState) cursorString else ""

samples/hello-terminal/hello-terminal-app/src/main/java/com/squareup/sample/helloterminal/HelloTerminalWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class HelloTerminalWorkflow : TerminalWorkflow,
3737
override fun render(
3838
renderProps: TerminalProps,
3939
renderState: State,
40-
context: RenderContext
40+
context: StatefulWorkflow.RenderContext<TerminalProps, State, ExitCode>
4141
): TerminalRendering {
4242
val (rows, columns) = renderProps.size
4343
val header = """

samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/EditTextWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class EditTextWorkflow : StatefulWorkflow<EditTextProps, EditTextState, String,
4949
override fun render(
5050
renderProps: EditTextProps,
5151
renderState: EditTextState,
52-
context: RenderContext
52+
context: StatefulWorkflow.RenderContext<EditTextProps, EditTextState, String>
5353
): String {
5454
context.runningWorker(
5555
renderProps.terminalProps.keyStrokes

samples/hello-terminal/todo-terminal-app/src/main/java/com/squareup/sample/hellotodo/TodoWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class TodoWorkflow : TerminalWorkflow,
6363
override fun render(
6464
renderProps: TerminalProps,
6565
renderState: TodoList,
66-
context: RenderContext
66+
context: StatefulWorkflow.RenderContext<TerminalProps, TodoList, ExitCode>
6767
): TerminalRendering {
6868
context.runningWorker(renderProps.keyStrokes) { onKeystroke(it) }
6969

samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ object HelloWorkflow : StatefulWorkflow<Unit, State, Nothing, HelloRendering>()
2323
override fun render(
2424
renderProps: Unit,
2525
renderState: State,
26-
context: RenderContext
26+
context: RenderContext<Unit, State, Nothing>
2727
): HelloRendering {
2828
return HelloRendering(
2929
message = renderState.name,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ object HelloWorkflow : StatefulWorkflow<Unit, State, Nothing, HelloRendering>()
2323
override fun render(
2424
renderProps: Unit,
2525
renderState: State,
26-
context: RenderContext
26+
context: RenderContext<Unit, State, Nothing>
2727
): HelloRendering {
2828
return HelloRendering(
2929
message = renderState.name,

samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow<Unit, State, Nothing, Screen>()
2525
override fun render(
2626
renderProps: Unit,
2727
renderState: State,
28-
context: RenderContext
28+
context: RenderContext<Unit, State, Nothing>
2929
): Screen {
3030
if (renderState.nuked) {
3131
return ButtonBar(Button(R.string.reset, context.eventHandler("reset") { state = State() }))
@@ -126,7 +126,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow<Unit, State, Nothing, Screen>()
126126

127127
override fun snapshotState(state: State) = null
128128

129-
private fun RenderContext.topBottomBar(
129+
private fun RenderContext<Unit, State, Nothing>.topBottomBar(
130130
top: Boolean,
131131
renderState: State
132132
): ButtonBar {
@@ -145,7 +145,7 @@ object NestedOverlaysWorkflow : StatefulWorkflow<Unit, State, Nothing, Screen>()
145145
)
146146
}
147147

148-
private fun RenderContext.toggleInnerSheetButton(
148+
private fun RenderContext<Unit, State, Nothing>.toggleInnerSheetButton(
149149
name: String,
150150
renderState: State
151151
) =

samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ object StubVisibilityWorkflow : StatefulWorkflow<Unit, State, Nothing, OuterRend
2525
override fun render(
2626
renderProps: Unit,
2727
renderState: State,
28-
context: RenderContext
28+
context: RenderContext<Unit, State, Nothing>
2929
): OuterRendering = when (renderState) {
3030
HideBottom -> OuterRendering(
3131
top = ClickyTextRendering(message = "Click to show footer") {

samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class RealAuthWorkflow(private val authService: AuthService) : AuthWorkflow,
6868
override fun render(
6969
renderProps: Unit,
7070
renderState: AuthState,
71-
context: RenderContext
71+
context: RenderContext<Unit, AuthState, AuthResult>
7272
): BackStackScreen<*> = when (renderState) {
7373
is LoginPrompt -> {
7474
BackStackScreen(

samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class RealRunGameWorkflow(
7373
override fun render(
7474
renderProps: Unit,
7575
renderState: RunGameState,
76-
context: RenderContext
76+
context: RenderContext<Unit, RunGameState, RunGameResult>
7777
): RunGameRendering =
7878
when (renderState) {
7979
is NewGame -> {
@@ -189,12 +189,14 @@ class RealRunGameWorkflow(
189189
}
190190
}
191191

192-
private fun RenderContext.playAgain() = safeEventHandler<GameOver>("playAgain") { oldState ->
192+
private fun RenderContext<Unit, RunGameState, RunGameResult>.playAgain() = safeEventHandler<GameOver>(
193+
"playAgain"
194+
) { oldState ->
193195
val (x, o) = oldState.playerInfo
194196
state = NewGame(x, o)
195197
}
196198

197-
private fun RenderContext.trySaveAgain() =
199+
private fun RenderContext<Unit, RunGameState, RunGameResult>.trySaveAgain() =
198200
safeEventHandler<GameOver>("trySaveAgain") { oldState ->
199201
check(oldState.syncState == SAVE_FAILED) {
200202
"Should only fire trySaveAgain in syncState $SAVE_FAILED, " +

0 commit comments

Comments
 (0)