Skip to content

Commit c4f9884

Browse files
authored
Merge pull request #809 from square/ray/dialog-holder-713
Makes `OverlayDialogFactory` more consistent with `ScreenViewFactory`.
2 parents 0d766cd + fb67818 commit c4f9884

File tree

31 files changed

+753
-484
lines changed

31 files changed

+753
-484
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ class LegacyRunner(private val binding: LegacyViewBinding) : ScreenViewRunner<Le
2323

2424
override fun showRendering(
2525
rendering: LegacyRendering,
26-
viewEnvironment: ViewEnvironment
26+
environment: ViewEnvironment
2727
) {
28-
binding.stub.update(rendering.rendering, viewEnvironment)
28+
binding.stub.update(rendering.rendering, environment)
2929
}
3030

3131
companion object : ScreenViewFactory<LegacyRendering> by fromViewBinding(

samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainer.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ class OverviewDetailContainer(view: View) : ScreenViewRunner<OverviewDetailScree
4343

4444
override fun showRendering(
4545
rendering: OverviewDetailScreen,
46-
viewEnvironment: ViewEnvironment
46+
environment: ViewEnvironment
4747
) {
48-
if (singleStub == null) renderSplitView(rendering, viewEnvironment)
49-
else renderSingleView(rendering, viewEnvironment, singleStub)
48+
if (singleStub == null) renderSplitView(rendering, environment)
49+
else renderSingleView(rendering, environment, singleStub)
5050
}
5151

5252
private fun renderSplitView(

samples/containers/android/src/main/java/com/squareup/sample/container/panel/PanelOverlayDialogFactory.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,28 @@ package com.squareup.sample.container.panel
22

33
import android.app.Dialog
44
import android.graphics.Rect
5-
import android.view.View
65
import com.squareup.sample.container.R
6+
import com.squareup.workflow1.ui.Screen
7+
import com.squareup.workflow1.ui.ScreenViewHolder
78
import com.squareup.workflow1.ui.WorkflowUiExperimentalApi
89
import com.squareup.workflow1.ui.container.ScreenOverlayDialogFactory
9-
import com.squareup.workflow1.ui.container.setModalContent
10+
import com.squareup.workflow1.ui.container.setContent
1011

1112
/**
1213
* Android support for [PanelOverlay].
1314
*/
1415
@OptIn(WorkflowUiExperimentalApi::class)
15-
internal object PanelOverlayDialogFactory : ScreenOverlayDialogFactory<PanelOverlay<*>>(
16-
type = PanelOverlay::class
17-
) {
16+
internal object PanelOverlayDialogFactory :
17+
ScreenOverlayDialogFactory<Screen, PanelOverlay<Screen>>(
18+
type = PanelOverlay::class
19+
) {
1820
/**
1921
* Forks the default implementation to apply [R.style.PanelDialog], for
2022
* enter and exit animation.
2123
*/
22-
override fun buildDialogWithContentView(contentView: View): Dialog {
23-
return Dialog(contentView.context, R.style.PanelDialog).also {
24-
it.setModalContent(contentView)
24+
override fun buildDialogWithContent(content: ScreenViewHolder<Screen>): Dialog {
25+
return Dialog(content.view.context, R.style.PanelDialog).also {
26+
it.setContent(content)
2527
}
2628
}
2729

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ private class HelloBackButtonLayoutRunner(view: View) : ScreenViewRunner<HelloBa
2626

2727
override fun showRendering(
2828
rendering: HelloBackButtonScreen,
29-
viewEnvironment: ViewEnvironment
29+
environment: ViewEnvironment
3030
) {
3131
messageView.text = rendering.message
3232
messageView.setOnClickListener { rendering.onClick() }

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ private class PoemListLayoutRunner(view: View) : ScreenViewRunner<PoemListScreen
4949

5050
override fun showRendering(
5151
rendering: PoemListScreen,
52-
viewEnvironment: ViewEnvironment
52+
environment: ViewEnvironment
5353
) {
5454
adapter.rendering = rendering
55-
adapter.environment = viewEnvironment
55+
adapter.environment = environment
5656
adapter.notifyDataSetChanged()
5757
if (recyclerView.adapter == null) recyclerView.adapter = adapter
5858

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@ private class StanzaListLayoutRunner(view: View) : ScreenViewRunner<StanzaListSc
4242

4343
override fun showRendering(
4444
rendering: StanzaListScreen,
45-
viewEnvironment: ViewEnvironment
45+
environment: ViewEnvironment
4646
) {
4747
adapter.view = rendering
48-
adapter.environment = viewEnvironment
48+
adapter.environment = environment
4949
adapter.notifyDataSetChanged()
5050
if (recyclerView.adapter == null) recyclerView.adapter = adapter
5151
toolbar.title = rendering.title
5252
toolbar.subtitle = rendering.subtitle
5353

54-
if (viewEnvironment[BackStackConfig] == Other) {
54+
if (environment[BackStackConfig] == Other) {
5555
toolbar.setNavigationOnClickListener { rendering.onExit() }
5656
toolbar.backPressedHandler = rendering.onExit
5757
} else {

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ private class StanzaLayoutRunner(private val view: View) : ScreenViewRunner<Stan
5151

5252
override fun showRendering(
5353
rendering: StanzaScreen,
54-
viewEnvironment: ViewEnvironment
54+
environment: ViewEnvironment
5555
) {
56-
if (viewEnvironment[OverviewDetailConfig] == Detail) {
56+
if (environment[OverviewDetailConfig] == Detail) {
5757
toolbar.title = "Stanza ${rendering.stanzaNumber}"
5858
toolbar.subtitle = null
5959
} else {
@@ -85,16 +85,16 @@ private class StanzaLayoutRunner(private val view: View) : ScreenViewRunner<Stan
8585
goBack.visibility = View.INVISIBLE
8686
}
8787

88-
if (viewEnvironment[OverviewDetailConfig] != Detail &&
89-
viewEnvironment[BackStackConfig] != None
88+
if (environment[OverviewDetailConfig] != Detail &&
89+
environment[BackStackConfig] != None
9090
) {
9191
toolbar.setNavigationOnClickListener { rendering.onGoUp.invoke() }
9292
} else {
9393
toolbar.navigationIcon = null
9494
}
9595

9696
view.backPressedHandler = rendering.onGoBack
97-
?: rendering.onGoUp.takeIf { viewEnvironment[OverviewDetailConfig] != Detail }
97+
?: rendering.onGoUp.takeIf { environment[OverviewDetailConfig] != Detail }
9898
}
9999

100100
private fun TextView.setTabulatedText(lines: List<String>) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ class BoardsListLayoutRunner(rootView: View) : ScreenViewRunner<DisplayBoardsLis
7373

7474
override fun showRendering(
7575
rendering: DisplayBoardsListScreen,
76-
viewEnvironment: ViewEnvironment
76+
environment: ViewEnvironment
7777
) {
7878
// Associate the viewEnvironment and event handler to each item because it needs to be used when
7979
// binding the RecyclerView item above.
8080
// Recycler is configured with a DataSource, which effectively (and often in practice) a simple
8181
// wrapper around a List.
8282
recycler.update {
83-
data = rendering.toDataSource(viewEnvironment)
83+
data = rendering.toDataSource(environment)
8484
}
8585
}
8686

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ class GameLayoutRunner(view: View) : ScreenViewRunner<GameRendering> {
4141

4242
override fun showRendering(
4343
rendering: GameRendering,
44-
viewEnvironment: ViewEnvironment
44+
environment: ViewEnvironment
4545
) {
46-
boardView.show(rendering.board, viewEnvironment)
46+
boardView.show(rendering.board, environment)
4747
this.rendering = rendering
4848

4949
// Disable the views if we don't have an event handler, e.g. when the game has finished.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ internal class LoadingLayoutRunner<RenderingT : Screen>(
3939

4040
override fun showRendering(
4141
rendering: RenderingT,
42-
viewEnvironment: ViewEnvironment
42+
environment: ViewEnvironment
4343
) {
4444
// No-op.
4545
}

0 commit comments

Comments
 (0)