diff --git a/formula-android-compose/src/main/java/com/instacart/formula/android/compose/ComposeViewFactory.kt b/formula-android-compose/src/main/java/com/instacart/formula/android/compose/ComposeViewFactory.kt index 5d8cdf94..2f0237fc 100644 --- a/formula-android-compose/src/main/java/com/instacart/formula/android/compose/ComposeViewFactory.kt +++ b/formula-android-compose/src/main/java/com/instacart/formula/android/compose/ComposeViewFactory.kt @@ -1,7 +1,5 @@ package com.instacart.formula.android.compose -import android.view.LayoutInflater -import android.view.ViewGroup import androidx.compose.runtime.Composable import androidx.compose.runtime.rxjava3.subscribeAsState import androidx.compose.ui.platform.ComposeView @@ -10,17 +8,17 @@ import com.instacart.formula.android.FeatureView import com.instacart.formula.android.ViewFactory import com.jakewharton.rxrelay3.BehaviorRelay - abstract class ComposeViewFactory : ViewFactory { - override fun create(params: ViewFactory.Params): FeatureView { + final override fun create(params: ViewFactory.Params): FeatureView { val view = ComposeView(params.context) // Based-on: https://developer.android.com/develop/ui/compose/migrate/interoperability-apis/compose-in-views#compose-in-fragments view.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) val outputRelay = BehaviorRelay.create() + val initialModel = initialModel() view.setContent { - val model = outputRelay.subscribeAsState(null).value + val model = outputRelay.subscribeAsState(initialModel).value if (model != null) { Content(model) } @@ -32,6 +30,10 @@ abstract class ComposeViewFactory : ViewFactory ) } + open fun initialModel(): RenderModel? { + return null + } + @Composable abstract fun Content(model: RenderModel) } \ No newline at end of file