Use SimpleFeatureEntryPoint when possible.

This commit is contained in:
Benoit Marty
2025-09-15 12:20:44 +02:00
parent 2ffb0f8581
commit a29878a170
10 changed files with 15 additions and 39 deletions

View File

@@ -454,8 +454,7 @@ class LoggedInFlowNode(
.build()
}
NavTarget.Ftue -> {
ftueEntryPoint.nodeBuilder(this, buildContext)
.build()
ftueEntryPoint.createNode(this, buildContext)
}
NavTarget.RoomDirectorySearch -> {
roomDirectoryEntryPoint.nodeBuilder(this, buildContext)

View File

@@ -7,14 +7,6 @@
package io.element.android.features.ftue.api
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import io.element.android.libraries.architecture.FeatureEntryPoint
import io.element.android.libraries.architecture.SimpleFeatureEntryPoint
interface FtueEntryPoint : FeatureEntryPoint {
fun nodeBuilder(parentNode: Node, buildContext: BuildContext): NodeBuilder
interface NodeBuilder {
fun build(): Node
}
}
interface FtueEntryPoint : SimpleFeatureEntryPoint

View File

@@ -9,7 +9,6 @@ package io.element.android.features.ftue.impl
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
@@ -19,13 +18,7 @@ import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class)
@Inject
class DefaultFtueEntryPoint : FtueEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): FtueEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>()
return object : FtueEntryPoint.NodeBuilder {
override fun build(): Node {
return parentNode.createNode<FtueFlowNode>(buildContext, plugins)
}
}
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<FtueFlowNode>(buildContext)
}
}

View File

@@ -53,8 +53,7 @@ class DefaultFtueEntryPointTest {
},
)
}
val result = entryPoint.nodeBuilder(parentNode, BuildContext.root(null))
.build()
val result = entryPoint.createNode(parentNode, BuildContext.root(null))
assertThat(result).isInstanceOf(FtueFlowNode::class.java)
}
}

View File

@@ -7,9 +7,6 @@
package io.element.android.features.licenses.api
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import io.element.android.libraries.architecture.SimpleFeatureEntryPoint
interface OpenSourceLicensesEntryPoint {
fun getNode(node: Node, buildContext: BuildContext): Node
}
interface OpenSourceLicensesEntryPoint : SimpleFeatureEntryPoint

View File

@@ -18,7 +18,7 @@ import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class)
@Inject
class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint {
override fun getNode(node: Node, buildContext: BuildContext): Node {
return node.createNode<DependenciesFlowNode>(buildContext)
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<DependenciesFlowNode>(buildContext)
}
}

View File

@@ -31,7 +31,7 @@ class DefaultOpenSourcesLicensesEntryPointTest {
plugins = plugins,
)
}
val result = entryPoint.getNode(parentNode, BuildContext.root(null))
val result = entryPoint.createNode(parentNode, BuildContext.root(null))
assertThat(result).isInstanceOf(DependenciesFlowNode::class.java)
}
}

View File

@@ -7,10 +7,6 @@
package io.element.android.features.poll.api.history
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import io.element.android.libraries.architecture.FeatureEntryPoint
import io.element.android.libraries.architecture.SimpleFeatureEntryPoint
interface PollHistoryEntryPoint : FeatureEntryPoint {
fun createNode(parentNode: Node, buildContext: BuildContext): Node
}
interface PollHistoryEntryPoint : SimpleFeatureEntryPoint

View File

@@ -261,7 +261,7 @@ class PreferencesFlowNode(
.build()
}
is NavTarget.OssLicenses -> {
openSourceLicensesEntryPoint.getNode(this, buildContext)
openSourceLicensesEntryPoint.createNode(this, buildContext)
}
NavTarget.AccountDeactivation -> {
accountDeactivationEntryPoint.createNode(this, buildContext)

View File

@@ -56,7 +56,7 @@ class DefaultPreferencesEntryPointTest {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext) = lambdaError()
},
openSourceLicensesEntryPoint = object : OpenSourceLicensesEntryPoint {
override fun getNode(node: Node, buildContext: BuildContext) = lambdaError()
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()
},
accountDeactivationEntryPoint = object : AccountDeactivationEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext) = lambdaError()