Skip to content

//workflow/com.squareup.workflow1.ui/DecorativeViewFactory/DecorativeViewFactory

DecorativeViewFactory

[androidJvm]
Content
fun <OuterT : Any, InnerT : Any> DecorativeViewFactory(type: KClass<OuterT>, map: (OuterT) -> InnerT, initializeView: View.() -> Unit = { showFirstRendering() }, doShowRendering: (view: View, ViewShowRendering<InnerT>, OuterT, env: ViewEnvironment) -> Unit = { _, innerShowRendering, outerRendering, viewEnvironment -> innerShowRendering(map(outerRendering), viewEnvironment) })
More info

Convenience constructor for cases requiring no changes to the ViewEnvironment.

[androidJvm]
Content
fun <OuterT : Any, InnerT : Any> DecorativeViewFactory(type: KClass<OuterT>, map: (OuterT, ViewEnvironment) -> Pair<InnerT, ViewEnvironment>, initializeView: View.() -> Unit = { showFirstRendering() }, doShowRendering: (view: View, ViewShowRendering<InnerT>, OuterT, env: ViewEnvironment) -> Unit = { _, innerShowRendering, outerRendering, viewEnvironment -> val (innerRendering, processedEnv) = map(outerRendering, viewEnvironment) innerShowRendering(innerRendering, processedEnv) })
More info

Parameters

androidJvm

map

called to convert instances of OuterT to InnerT, and to allow ViewEnvironment to be transformed.

initializeView

Optional function invoked immediately after the View is created (that is, immediately after the call to ViewFactory.buildView). showRendering, getRendering and environment are all available when this is called. Defaults to a call to View.showFirstRendering.

doShowRendering

called to apply the ViewShowRendering function for InnerT, allowing pre- and post-processing. Default implementation simply uses map to extract the InnerT instance from OuterT and makes the function call.