From 0ee6b1722913015e9224bf4e21bdaf3b63552578 Mon Sep 17 00:00:00 2001 From: Ray Ryan Date: Tue, 16 Nov 2021 16:52:52 -0800 Subject: [PATCH] Renames WithEnvironment to EnvironmentScreen. Fixes #585. --- .../workflow1/ui/AndroidViewEnvironment.kt | 8 +++---- .../squareup/workflow1/ui/WorkflowLayout.kt | 10 ++++----- ...ory.kt => EnvironmentScreenViewFactory.kt} | 4 ++-- workflow-ui/core-common/api/core-common.api | 12 +++++----- ...ithEnvironment.kt => EnvironmentScreen.kt} | 22 +++++++++---------- 5 files changed, 28 insertions(+), 28 deletions(-) rename workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/{WithEnvironmentViewFactory.kt => EnvironmentScreenViewFactory.kt} (80%) rename workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/{WithEnvironment.kt => EnvironmentScreen.kt} (70%) diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidViewEnvironment.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidViewEnvironment.kt index 1b07a68778..f8712bda1b 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidViewEnvironment.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidViewEnvironment.kt @@ -3,8 +3,8 @@ package com.squareup.workflow1.ui import android.view.View import com.squareup.workflow1.ui.container.BackStackScreen import com.squareup.workflow1.ui.container.BackStackScreenViewFactory -import com.squareup.workflow1.ui.container.WithEnvironmentViewFactory -import com.squareup.workflow1.ui.container.WithEnvironment +import com.squareup.workflow1.ui.container.EnvironmentScreenViewFactory +import com.squareup.workflow1.ui.container.EnvironmentScreen /** * It is usually more convenient to use [WorkflowViewStub] or [DecorativeScreenViewFactory] @@ -42,8 +42,8 @@ public fun BackStackScreenViewFactory as ScreenViewFactory } ?: (rendering as? NamedScreen<*>)?.let { NamedScreenViewFactory as ScreenViewFactory } - ?: (rendering as? WithEnvironment<*>)?.let { - WithEnvironmentViewFactory as ScreenViewFactory + ?: (rendering as? EnvironmentScreen<*>)?.let { + EnvironmentScreenViewFactory as ScreenViewFactory } ?: throw IllegalArgumentException( "A ScreenViewFactory should have been registered to display $rendering, " + diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt index 2f49c9893b..1cb6b2bcc7 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt @@ -10,7 +10,7 @@ import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.widget.FrameLayout -import com.squareup.workflow1.ui.container.WithEnvironment +import com.squareup.workflow1.ui.container.EnvironmentScreen import com.squareup.workflow1.ui.container.withEnvironment import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -22,7 +22,7 @@ import kotlinx.coroutines.flow.onEach /** * A view that can be driven by a stream of [Screen] renderings passed to its [take] method. - * To configure the [ViewEnvironment] in play, use [WithEnvironment] as your root rendering type. + * To configure the [ViewEnvironment] in play, use [EnvironmentScreen] as your root rendering type. * * [id][setId] defaults to [R.id.workflow_layout], as a convenience to ensure that * view persistence will work without requiring authors to be immersed in Android arcana. @@ -49,11 +49,11 @@ public class WorkflowLayout( /** * While this view is attached to a window, subscribes to [renderings] and display its values. * - * To configure the [ViewEnvironment], use [WithEnvironment] as your rendering type. + * To configure the [ViewEnvironment], use [EnvironmentScreen] as your rendering type. * For example, to customize the UI via [ViewRegistry] entries: * * val registry = ViewRegistry(MuchBetterViewForFooScreen) - * val renderings: Flow> = renderWorkflowIn(...).map { + * val renderings: Flow> = renderWorkflowIn(...).map { * it.withRegistry(registry) * } * workflowLayout.take(renderings) @@ -102,7 +102,7 @@ public class WorkflowLayout( } } - private fun show(rootScreen: WithEnvironment<*>) { + private fun show(rootScreen: EnvironmentScreen<*>) { showing.show(rootScreen.screen, rootScreen.viewEnvironment) restoredChildState?.let { restoredState -> restoredChildState = null diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/WithEnvironmentViewFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreenViewFactory.kt similarity index 80% rename from workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/WithEnvironmentViewFactory.kt rename to workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreenViewFactory.kt index 032b7874ef..c07a482b06 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/WithEnvironmentViewFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreenViewFactory.kt @@ -6,9 +6,9 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.updateFrom @WorkflowUiExperimentalApi -internal object WithEnvironmentViewFactory : ScreenViewFactory> +internal object EnvironmentScreenViewFactory : ScreenViewFactory> by DecorativeScreenViewFactory( - type = WithEnvironment::class, + type = EnvironmentScreen::class, map = { withEnvironment, inheritedEnvironment -> Pair( withEnvironment.screen, diff --git a/workflow-ui/core-common/api/core-common.api b/workflow-ui/core-common/api/core-common.api index 68fa18bcb5..93a706b240 100644 --- a/workflow-ui/core-common/api/core-common.api +++ b/workflow-ui/core-common/api/core-common.api @@ -132,16 +132,16 @@ public final class com/squareup/workflow1/ui/container/BackStackScreenKt { public static final fun toBackStackScreenOrNull (Ljava/util/List;)Lcom/squareup/workflow1/ui/container/BackStackScreen; } -public final class com/squareup/workflow1/ui/container/WithEnvironment : com/squareup/workflow1/ui/Compatible, com/squareup/workflow1/ui/Screen { +public final class com/squareup/workflow1/ui/container/EnvironmentScreen : com/squareup/workflow1/ui/Compatible, com/squareup/workflow1/ui/Screen { public fun getCompatibilityKey ()Ljava/lang/String; public final fun getScreen ()Lcom/squareup/workflow1/ui/Screen; public final fun getViewEnvironment ()Lcom/squareup/workflow1/ui/ViewEnvironment; } -public final class com/squareup/workflow1/ui/container/WithEnvironmentKt { - public static final fun plus (Lcom/squareup/workflow1/ui/container/WithEnvironment;Lcom/squareup/workflow1/ui/ViewEnvironment;)Lcom/squareup/workflow1/ui/container/WithEnvironment; - public static final fun withEnvironment (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewEnvironment;)Lcom/squareup/workflow1/ui/container/WithEnvironment; - public static synthetic fun withEnvironment$default (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewEnvironment;ILjava/lang/Object;)Lcom/squareup/workflow1/ui/container/WithEnvironment; - public static final fun withRegistry (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewRegistry;)Lcom/squareup/workflow1/ui/container/WithEnvironment; +public final class com/squareup/workflow1/ui/container/EnvironmentScreenKt { + public static final fun plus (Lcom/squareup/workflow1/ui/container/EnvironmentScreen;Lcom/squareup/workflow1/ui/ViewEnvironment;)Lcom/squareup/workflow1/ui/container/EnvironmentScreen; + public static final fun withEnvironment (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewEnvironment;)Lcom/squareup/workflow1/ui/container/EnvironmentScreen; + public static synthetic fun withEnvironment$default (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewEnvironment;ILjava/lang/Object;)Lcom/squareup/workflow1/ui/container/EnvironmentScreen; + public static final fun withRegistry (Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewRegistry;)Lcom/squareup/workflow1/ui/container/EnvironmentScreen; } diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/WithEnvironment.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreen.kt similarity index 70% rename from workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/WithEnvironment.kt rename to workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreen.kt index 698bef7a6c..1cd93bc9de 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/WithEnvironment.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/container/EnvironmentScreen.kt @@ -16,7 +16,7 @@ import com.squareup.workflow1.ui.updateFrom * Use [withEnvironment] or [withRegistry] to create or update instances. */ @WorkflowUiExperimentalApi -public class WithEnvironment internal constructor( +public class EnvironmentScreen internal constructor( public val screen: V, public val viewEnvironment: ViewEnvironment = ViewEnvironment() ) : Compatible, Screen { @@ -24,38 +24,38 @@ public class WithEnvironment internal constructor( * Ensures that we make the decision to update or replace the root view based on * the wrapped [screen]. */ - override val compatibilityKey: String = Compatible.keyFor(screen, "WithEnvironment") + override val compatibilityKey: String = Compatible.keyFor(screen, "EnvironmentScreen") } @WorkflowUiExperimentalApi -public operator fun WithEnvironment.plus( +public operator fun EnvironmentScreen.plus( environment: ViewEnvironment -): WithEnvironment { +): EnvironmentScreen { return when { environment.map.isEmpty() -> this - else -> WithEnvironment(screen, viewEnvironment.updateFrom(environment)) + else -> EnvironmentScreen(screen, viewEnvironment.updateFrom(environment)) } } /** - * Returns a [WithEnvironment] derived from the receiver, whose [ViewEnvironment] + * Returns a [EnvironmentScreen] derived from the receiver, whose [ViewEnvironment] * includes a [ViewRegistry] updated from the given [viewRegistry]. */ @WorkflowUiExperimentalApi -public fun Screen.withRegistry(viewRegistry: ViewRegistry): WithEnvironment<*> { +public fun Screen.withRegistry(viewRegistry: ViewRegistry): EnvironmentScreen<*> { return withEnvironment(ViewEnvironment(mapOf(ViewRegistry to viewRegistry))) } /** - * Returns a [WithEnvironment] derived from the receiver, whose [ViewEnvironment] + * Returns a [EnvironmentScreen] derived from the receiver, whose [ViewEnvironment] * is [updated][updateFrom] the given [viewEnvironment]. */ @WorkflowUiExperimentalApi public fun Screen.withEnvironment( viewEnvironment: ViewEnvironment = ViewEnvironment() -): WithEnvironment<*> { +): EnvironmentScreen<*> { return when (this) { - is WithEnvironment<*> -> this + viewEnvironment - else -> WithEnvironment(this, viewEnvironment) + is EnvironmentScreen<*> -> this + viewEnvironment + else -> EnvironmentScreen(this, viewEnvironment) } }