Use context parameter for the parentNode

This commit is contained in:
Benoit Marty
2025-10-30 13:02:20 +01:00
committed by Benoit Marty
parent 566515ca88
commit 05c5f3c914
138 changed files with 450 additions and 375 deletions

View File

@@ -17,7 +17,8 @@ import io.element.android.libraries.matrix.api.core.RoomId
interface ShareEntryPoint : FeatureEntryPoint {
data class Params(val intent: Intent)
fun createNode(parentNode: Node, buildContext: BuildContext, params: Params, callback: Callback): Node
context(parentNode: Node)
fun createNode(buildContext: BuildContext, params: Params, callback: Callback): Node
interface Callback : Plugin {
fun onDone(roomIds: List<RoomId>)

View File

@@ -16,7 +16,8 @@ import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class)
class DefaultShareEntryPoint : ShareEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, params: ShareEntryPoint.Params, callback: ShareEntryPoint.Callback): Node {
context(parentNode: Node)
override fun createNode(buildContext: BuildContext, params: ShareEntryPoint.Params, callback: ShareEntryPoint.Callback): Node {
return parentNode.createNode<ShareNode>(
buildContext = buildContext,
plugins = listOf(

View File

@@ -67,7 +67,6 @@ class ShareNode(
}
return roomSelectEntryPoint.createNode(
parentNode = this,
buildContext = buildContext,
params = RoomSelectEntryPoint.Params(mode = RoomSelectMode.Share),
callback = callback,

View File

@@ -38,8 +38,8 @@ class DefaultShareEntryPointTest {
plugins = plugins,
presenterFactory = { createSharePresenter() },
roomSelectEntryPoint = object : RoomSelectEntryPoint {
context(parentNode: Node)
override fun createNode(
parentNode: Node,
buildContext: BuildContext,
params: RoomSelectEntryPoint.Params,
callback: RoomSelectEntryPoint.Callback,
@@ -53,12 +53,13 @@ class DefaultShareEntryPointTest {
val params = ShareEntryPoint.Params(
intent = Intent(),
)
val result = entryPoint.createNode(
parentNode = parentNode,
buildContext = BuildContext.root(null),
params = params,
callback = callback,
)
val result = with(parentNode) {
entryPoint.createNode(
buildContext = BuildContext.root(null),
params = params,
callback = callback,
)
}
assertThat(result).isInstanceOf(ShareNode::class.java)
assertThat(result.plugins).contains(ShareNode.Inputs(params.intent))
assertThat(result.plugins).contains(callback)